updated cmake for version-1.0 and including MPI
This commit is contained in:
parent
d0aa5af792
commit
1696340ada
|
@ -1,52 +1,66 @@
|
|||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
# set the project name and version
|
||||
project(phasicFlow VERSION 0.1 )
|
||||
project(phasicFlow VERSION 1.0 )
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
set(CMAKE_INSTALL_PREFIX ${phasicFlow_SOURCE_DIR} CACHE PATH "Install path of phasicFlow" FORCE)
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "build type" FORCE)
|
||||
set(BUILD_SHARED_LIBS ON CACHE BOOL "Build using shared libraries" FORCE)
|
||||
mark_as_advanced(FORCE var BUILD_SHARED_LIBS)
|
||||
|
||||
message(STATUS ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA_LAMBDA)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_OPENMP)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_SERIAL)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA_LAMBDA)
|
||||
mark_as_advanced(FORCE var BUILD_SHARED_LIBS)
|
||||
include(cmake/globals.cmake)
|
||||
|
||||
option(USE_STD_PARALLEL_ALG "Use TTB std parallel algorithms" ON)
|
||||
#Kokkos directory to be included
|
||||
set(Kokkos_Source_DIR)
|
||||
|
||||
if(DEFINED ENV{Kokkos_DIR})
|
||||
set(Kokkos_Source_DIR $ENV{Kokkos_DIR})
|
||||
else()
|
||||
set(Kokkos_Source_DIR $ENV{HOME}/Kokkos/kokkos)
|
||||
endif()
|
||||
message(STATUS "Kokkos source directory is ${Kokkos_Source_DIR}")
|
||||
add_subdirectory(${Kokkos_Source_DIR} ${phasicFlow_BINARY_DIR}/kokkos)
|
||||
Kokkos_cmake_settings()
|
||||
|
||||
|
||||
option(pFlow_STD_Parallel_Alg "Use TTB std parallel algorithms" ON)
|
||||
option(pFlow_Build_Serial "Build phasicFlow and backends for serial execution" OFF)
|
||||
option(pFlow_Build_OpenMP "Build phasicFlow and backends for OpenMP execution" OFF)
|
||||
option(pFlow_Build_Cuda "Build phasicFlow and backends for Cuda execution" OFF)
|
||||
option(pFlow_Build_Double "Build phasicFlow with double precision variables" ON)
|
||||
option(pFlow_Build_Double "Build phasicFlow with double precision floating-oint variables" ON)
|
||||
option(pFlow_Build_MPI "Build for MPI parallelization. This will enable multi-gpu run, CPU run on clusters (distributed memory machine). Use this combination Cuda+MPI, OpenMP + MPI or Serial+MPI " OFF)
|
||||
|
||||
set(BUILD_SHARED_LIBS ON CACHE BOOL "Build using shared libraries" FORCE)
|
||||
|
||||
if(pFlow_Build_Serial)
|
||||
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE)
|
||||
set(Kokkos_ENABLE_OPENMP OFF CACHE BOOL "OpenMP execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "Cuda execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA_LAMBDA OFF CACHE BOOL "Cuda execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA_CONSTEXPR OFF CACHE BOOL "Enable constexpr on cuda code" FORCE)
|
||||
elseif(pFlow_Build_OpenMP )
|
||||
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE)
|
||||
set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "OpenMP execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "Cuda execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA_LAMBDA OFF CACHE BOOL "Cuda execution" FORCE)
|
||||
set(Kokkos_DEFAULT_HOST_PARALLEL_EXECUTION_SPACE SERIAL CACHE STRING "" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA_CONSTEXPR OFF CACHE BOOL "Enable constexpr on cuda code" FORCE)
|
||||
elseif(pFlow_Build_Cuda)
|
||||
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE)
|
||||
set(Kokkos_ENABLE_OPENMP OFF CACHE BOOL "OpenMP execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA ON CACHE BOOL "Cuda execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA_LAMBDA ON CACHE BOOL "Cuda execution" FORCE)
|
||||
set(Kokkos_ENABLE_CUDA_CONSTEXPR ON CACHE BOOL "Enable constexpr on cuda code" FORCE)
|
||||
endif()
|
||||
|
||||
if(pFlow_Build_MPI)
|
||||
find_package(MPI REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
include(cmake/globals.cmake)
|
||||
message(STATUS "Valid file extensions are ${validFiles}")
|
||||
|
||||
include(cmake/makeLibraryGlobals.cmake)
|
||||
include(cmake/makeExecutableGlobals.cmake)
|
||||
|
||||
|
@ -55,20 +69,6 @@ configure_file(phasicFlowConfig.H.in phasicFlowConfig.H)
|
|||
#add a global include directory
|
||||
include_directories(src/setHelpers src/demComponent "${PROJECT_BINARY_DIR}")
|
||||
|
||||
#main subdirectories of the code
|
||||
set(Kokkos_Source_DIR)
|
||||
|
||||
if(DEFINED ENV{Kokkos_DIR})
|
||||
set(Kokkos_Source_DIR $ENV{Kokkos_DIR})
|
||||
# add_subdirectory($ENV{Kokkos_DIR} ${phasicFlow_BINARY_DIR}/kokkos)
|
||||
# message(STATUS "Kokkos directory is $ENV{Kokkos_DIR}")
|
||||
else()
|
||||
# add_subdirectory($ENV{HOME}/Kokkos/kokkos ${phasicFlow_BINARY_DIR}/kokkos)
|
||||
set(Kokkos_Source_DIR $ENV{HOME}/Kokkos/kokkos)
|
||||
endif()
|
||||
|
||||
message(STATUS "Kokkos source directory is ${Kokkos_Source_DIR}")
|
||||
add_subdirectory(${Kokkos_Source_DIR} ${phasicFlow_BINARY_DIR}/kokkos)
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
|
@ -79,10 +79,8 @@ add_subdirectory(utilities)
|
|||
add_subdirectory(DEMSystems)
|
||||
#add_subdirectory(testIO)
|
||||
|
||||
|
||||
install(FILES "${PROJECT_BINARY_DIR}/phasicFlowConfig.H"
|
||||
DESTINATION include
|
||||
)
|
||||
DESTINATION include)
|
||||
|
||||
include(InstallRequiredSystemLibraries)
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
export pFlow_PROJECT_VERSION=v0.1
|
||||
export pFlow_PROJECT_VERSION=v-1.0
|
||||
|
||||
export pFlow_PROJECT=phasicFlow
|
||||
|
||||
|
|
|
@ -2,3 +2,52 @@
|
|||
set(validFiles)
|
||||
list(APPEND validFiles *.C *.cpp *.cxx *.c *.cu *.H *.hpp *.hxx *.h *.cuh)
|
||||
|
||||
macro(Kokkos_cmake_settings)
|
||||
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA_LAMBDA)
|
||||
mark_as_advanced(FORCE var Kokkos_CXX_STANDARD)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA_CONSTEXPR)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_OPENMP)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_SERIAL)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_HIP)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_BENCHMARKS)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_COMPILE_AS_CMAKE_LANGUAGE)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA_LDG_INTRINSIC)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_CUDA_UVM)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_DEPRECATED_CODE_3)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_DEPRECATED_CODE_4)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_DEPRECATION_WARNINGS)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_DESUL_ATOMICS_EXTERNAL)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_EXAMPLES)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_HEADER_SELF_CONTAINMENT_TESTS)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_HIP_MULTIPLE_KERNEL_INSTANTIATIONS)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_HIP_RELOCATABLE_DEVICE_CODE)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_HPX)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_HWLOC)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_IMPL_HPX_ASYNC_DISPATCH)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_LARGE_MEM_TESTS)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_DEBUG_DUALVIEW_MODIFY_CHECK)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_LIBQUADMATH)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_LIBRT)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_MEMKIND)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_ONEDPL)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_OPENACC)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_OPENMPTARGET)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_ROCM)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_SYCL)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_TESTS)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_THREADS)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_TUNING)
|
||||
mark_as_advanced(FORCE var Kokkos_ENABLE_UNSUPPORTED_ARCHS)
|
||||
mark_as_advanced(FORCE var Kokkos_HPX_DIR)
|
||||
mark_as_advanced(FORCE var Kokkos_HWLOC_DIR)
|
||||
mark_as_advanced(FORCE var Kokkos_MEMKIND_DIR)
|
||||
mark_as_advanced(FORCE var Kokkos_ROCM_DIR)
|
||||
mark_as_advanced(FORCE var Kokkos_THREADS_DIR)
|
||||
|
||||
endmacro()
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ target_include_directories(${target_name}
|
|||
|
||||
message(STATUS "\nCreating make file for executable ${target_name}")
|
||||
message(STATUS " ${target_name} link libraries are: ${${target_link_libs}}")
|
||||
message(STATUS " ${target_name} source files are: ${source_files}")
|
||||
message(STATUS " ${target_name} source files are: ${${source_files}}")
|
||||
message(STATUS " ${target_name} include dirs are: ${includeDirs}\n")
|
||||
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ target_include_directories(${target_name}
|
|||
message(STATUS "\nCreating make file for library ${target_name}")
|
||||
message(STATUS " ${target_name} link libraries are: ${${target_link_libs}}")
|
||||
message(STATUS " ${target_name} source files are: ${source_files}")
|
||||
message(STATUS " ${target_name} include dirs are: ${includeDirs}\n")
|
||||
message(STATUS " ${target_name} include dirs are: ${includeDirs}\n \n")
|
||||
|
||||
install(TARGETS ${target_name} DESTINATION lib)
|
||||
install(FILES ${includeFiles} DESTINATION include/${target_name})
|
||||
|
|
|
@ -5,5 +5,6 @@
|
|||
#cmakedefine pFlow_Build_Serial
|
||||
#cmakedefine pFlow_Build_OpenMP
|
||||
#cmakedefine pFlow_Build_Cuda
|
||||
#cmakedefine USE_STD_PARALLEL_ALG
|
||||
#cmakedefine pFlow_Build_Double
|
||||
#cmakedefine pFlow_STD_Parallel_Alg
|
||||
#cmakedefine pFlow_Build_Double
|
||||
#cmakedefine pFlow_Build_MPI
|
||||
|
|
Loading…
Reference in New Issue