diff --git a/3rdParty/MuParser/CMakeLists.txt b/3rdParty/MuParser/CMakeLists.txt index a77276825e3280ae298eced80ea0b498e27d4bf2..1634a2f15a71aeec53bd0ffb5f14c22aec7893aa 100644 --- a/3rdParty/MuParser/CMakeLists.txt +++ b/3rdParty/MuParser/CMakeLists.txt @@ -44,7 +44,9 @@ add_library(muparser src/muParserTokenReader.cpp ) -linkOpenMP(muparser) +if(BUILD_USE_OPENMP) + target_link_libraries(muparser PUBLIC OpenMP::OpenMP_CXX) +endif() target_include_directories(muparser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) # this compiles the "DLL" interface (C API) @@ -60,7 +62,7 @@ if (CMAKE_BUILD_TYPE STREQUAL Debug) target_compile_definitions(muparser PRIVATE _DEBUG) endif () -if(USE_OPENMP) +if(BUILD_USE_OPENMP) target_compile_definitions(muparser PRIVATE MUP_USE_OPENMP) endif() set_target_properties(muparser PROPERTIES diff --git a/CMake/3rd.cmake b/CMake/3rd.cmake index 5ec921758c1b335c1cc9d78a4441d44c9bfe6de3..781146111d48739671b35c98bb96ebff358809b4 100644 --- a/CMake/3rd.cmake +++ b/CMake/3rd.cmake @@ -1,4 +1,2 @@ include(${VF_CMAKE_DIR}/3rd/boost.cmake) include(${VF_CMAKE_DIR}/3rd/gmock.cmake) -include(${VF_CMAKE_DIR}/3rd/mpi.cmake) -include(${VF_CMAKE_DIR}/3rd/OpenMP.cmake) \ No newline at end of file diff --git a/CMake/3rd/OpenMP.cmake b/CMake/3rd/OpenMP.cmake deleted file mode 100644 index 45465ba4bf43dd5cf7687b83ac1d368332614582..0000000000000000000000000000000000000000 --- a/CMake/3rd/OpenMP.cmake +++ /dev/null @@ -1,13 +0,0 @@ -function (linkOpenMP targetName) - - if(NOT USE_OPENMP) - return() - endif() - - find_package(OpenMP REQUIRED) - - if(OpenMP_CXX_FOUND) - target_link_libraries(${targetName} PUBLIC OpenMP::OpenMP_CXX) - endif() - -endfunction() \ No newline at end of file diff --git a/CMake/3rd/mpi.cmake b/CMake/3rd/mpi.cmake deleted file mode 100644 index cb5e279d568e9ae794498daaa5eac318d5510227..0000000000000000000000000000000000000000 --- a/CMake/3rd/mpi.cmake +++ /dev/null @@ -1,8 +0,0 @@ -function (linkMPI) - - find_package(MPI REQUIRED) - - vf_get_library_name(library_name) - target_link_libraries(${library_name} PUBLIC MPI::MPI_CXX) - -endfunction() \ No newline at end of file diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake index e2d7ba9674174f5e1f1fe0c0e45cc98437bedf95..debb5ee7826d7dc3d6499b3813070dcab4b94bd4 100644 --- a/CMake/VirtualFluidsMacros.cmake +++ b/CMake/VirtualFluidsMacros.cmake @@ -229,7 +229,7 @@ function(vf_add_library) target_include_directories(${library_name} PRIVATE "${VF_THIRD_DIR}/cuda_samples/") target_include_directories(${library_name} PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) endif() - + status("... configuring target: ${library_name} (type=${ARG_BUILDTYPE}) done") unset(CMAKE_CXX_CLANG_TIDY) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d743768918b108fcb5d68b6df89f01867c41c0c..efce16caaf8d40ae3f5a9ca9bcedd5c5a6767bf5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,7 @@ option(BUILD_VF_GPU "Build VirtualFluids gpu variant" OFF) option(BUILD_USE_OPENMP "Build VirtualFluids with openmp" ON) + # vf gpu option(BUILD_VF_GPU "Build VirtualFluids GPU" ON ) option(BUILD_VF_GKS "Build VirtualFluids GKS" OFF ) @@ -60,12 +61,11 @@ else() set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") endif() -option(USE_OPENMP "Include OpenMP support" ON) - option(BUILD_VF_PYTHON_BINDINGS "" OFF) option(BUILD_VF_DOUBLE_ACCURACY "Use double accuracy" OFF) + ################################################################################# # MACROS ################################################################################# @@ -79,6 +79,13 @@ ENDIF() ################################################################################# # COMMON LIBRARIES ################################################################################# +if(BUILD_USE_OPENMP) + find_package(OpenMP REQUIRED) +endif() + +find_package(MPI REQUIRED) + + add_subdirectory(src/basics) ################################################################################# diff --git a/apps/gpu/LBM/DrivenCavity/CMakeLists.txt b/apps/gpu/LBM/DrivenCavity/CMakeLists.txt index ef0a07772f945922e3b497330c329bc00c53b57d..031a3ec1543fe9241ed82a6bf9d8ec2c3bf99f5b 100644 --- a/apps/gpu/LBM/DrivenCavity/CMakeLists.txt +++ b/apps/gpu/LBM/DrivenCavity/CMakeLists.txt @@ -2,8 +2,6 @@ PROJECT(DrivenCavity LANGUAGES CUDA CXX) #LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-DOMPI_SKIP_MPICXX" ) -vf_add_library(BUILDTYPE binary PRIVATE_LINK basics VirtualFluids_GPU GridGenerator FILES DrivenCavity.cpp ) +vf_add_library(BUILDTYPE binary PRIVATE_LINK basics VirtualFluids_GPU GridGenerator MPI::MPI_CXX FILES DrivenCavity.cpp) set_source_files_properties(DrivenCavity.cpp PROPERTIES LANGUAGE CUDA) - -linkMPI() diff --git a/src/basics/CMakeLists.txt b/src/basics/CMakeLists.txt index 2eff85ba5c48ec475cd8690060520cc09b4a0cb6..1703d6269c1cebe36005226373da85b14c5515f6 100644 --- a/src/basics/CMakeLists.txt +++ b/src/basics/CMakeLists.txt @@ -1,7 +1,7 @@ include(Core/buildInfo.cmake) -vf_add_library(EXCLUDE buildInfo.in.cpp) +vf_add_library(PUBLIC_LINK MPI::MPI_CXX EXCLUDE buildInfo.in.cpp) vf_get_library_name (library_name) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Core) @@ -21,7 +21,4 @@ IF(MSVC) target_compile_definitions(${library_name} PUBLIC NOMINMAX) # Disable Min/Max-Macros ENDIF(MSVC) - -linkMPI() - -vf_add_tests() \ No newline at end of file +vf_add_tests() diff --git a/src/cpu/VirtualFluidsCore/CMakeLists.txt b/src/cpu/VirtualFluidsCore/CMakeLists.txt index e5e6ccfeb09e111c07ca35745707e94b2c2b74ce..8e0d20c0dcefdc1bc5c85b0b6578b293eaebbf06 100644 --- a/src/cpu/VirtualFluidsCore/CMakeLists.txt +++ b/src/cpu/VirtualFluidsCore/CMakeLists.txt @@ -23,15 +23,14 @@ IF(${USE_DEM_COUPLING}) INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/../DemCoupling/DemCoupling.cmake) ENDIF() -vf_add_library(BUILDTYPE static PUBLIC_LINK basics muparser ${CAB_ADDITIONAL_LINK_LIBRARIES}) - -vf_get_library_name(library_name) - if(BUILD_USE_OPENMP) - linkOpenMP(${library_name}) + list(APPEND CAB_ADDITIONAL_LINK_LIBRARIES OpenMP::OpenMP_CXX) endif() -linkMPI() +vf_add_library(BUILDTYPE static PUBLIC_LINK basics muparser MPI::MPI_CXX ${CAB_ADDITIONAL_LINK_LIBRARIES}) + +vf_get_library_name(library_name) + target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/BoundaryConditions) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Connectors) diff --git a/src/gpu/GksGpu/CMakeLists.txt b/src/gpu/GksGpu/CMakeLists.txt index facd4b663568210500ff783c4f603df10f81dcf9..b6e91a2cb6dbfabd61adf4fc20dd8dab5aa82e0c 100644 --- a/src/gpu/GksGpu/CMakeLists.txt +++ b/src/gpu/GksGpu/CMakeLists.txt @@ -1,8 +1,3 @@ project(GksGpu LANGUAGES CUDA CXX) -vf_add_library(BUILDTYPE shared PRIVATE_LINK basics GksMeshAdapter) - -linkMPI() - -vf_get_library_name(library_name) -linkOpenMP(${library_name}) +vf_add_library(BUILDTYPE shared PRIVATE_LINK basics GksMeshAdapter OpenMP::OpenMP_CXX MPI::MPI_CXX) diff --git a/src/gpu/GridGenerator/CMakeLists.txt b/src/gpu/GridGenerator/CMakeLists.txt index 57431eab6d66d5d81c6c4fbf04a5f44266856419..1ce294bf420f657f35397c427929f9f310d04556 100644 --- a/src/gpu/GridGenerator/CMakeLists.txt +++ b/src/gpu/GridGenerator/CMakeLists.txt @@ -1,12 +1,9 @@ project(GridGenerator LANGUAGES CUDA CXX) -vf_add_library(PRIVATE_LINK basics) -vf_get_library_name(library_name) - -linkOpenMP(${library_name}) - +vf_add_library(PRIVATE_LINK basics OpenMP::OpenMP_CXX) +vf_get_library_name(library_name) set_target_properties(${library_name} PROPERTIES CUDA_SEPARABLE_COMPILATION ON) # according to linker error when building static libraries. diff --git a/src/gpu/VirtualFluids_GPU/CMakeLists.txt b/src/gpu/VirtualFluids_GPU/CMakeLists.txt index 2df796f2fcbf7b0423e5e8c651bcf6e00e35ba81..95405b25864f506e5580fa6711a4389d39d8d7a7 100644 --- a/src/gpu/VirtualFluids_GPU/CMakeLists.txt +++ b/src/gpu/VirtualFluids_GPU/CMakeLists.txt @@ -1,16 +1,12 @@ project(VirtualFluids_GPU LANGUAGES CUDA CXX) -IF(MSVC) - set(libsToLink ws2_32 GridGenerator basics Traffic) # ws_32 throws an error on Phoenix -ELSE(MSVC) - #set(libsToLink GridGenerator VirtualFluidsBasics Core Traffic) - set(libsToLink GridGenerator basics) -ENDIF(MSVC) +set(additional_libraries "") +if(MSVC) + set(additional_libraries ws2_32 Traffic) # ws_32 throws an error on Phoenix +endif() +vf_add_library(PRIVATE_LINK ${additional_libraries} GridGenerator basics MPI::MPI_CXX) -vf_add_library(PRIVATE_LINK ${libsToLink}) - -linkMPI() linkBoost(COMPONENTS "serialization") #SET(TPN_WIN32 "/EHsc")