Skip to content
Snippets Groups Projects
Commit d26a21c1 authored by Soeren Peters's avatar Soeren Peters
Browse files

Move the find_package() OpenMP and MPI commands to the top level cmake list.

parent 03c7dd9a
No related branches found
No related tags found
1 merge request!22Clean Up CMake Files.
...@@ -44,7 +44,9 @@ add_library(muparser ...@@ -44,7 +44,9 @@ add_library(muparser
src/muParserTokenReader.cpp 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) target_include_directories(muparser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
# this compiles the "DLL" interface (C API) # this compiles the "DLL" interface (C API)
...@@ -60,7 +62,7 @@ if (CMAKE_BUILD_TYPE STREQUAL Debug) ...@@ -60,7 +62,7 @@ if (CMAKE_BUILD_TYPE STREQUAL Debug)
target_compile_definitions(muparser PRIVATE _DEBUG) target_compile_definitions(muparser PRIVATE _DEBUG)
endif () endif ()
if(USE_OPENMP) if(BUILD_USE_OPENMP)
target_compile_definitions(muparser PRIVATE MUP_USE_OPENMP) target_compile_definitions(muparser PRIVATE MUP_USE_OPENMP)
endif() endif()
set_target_properties(muparser PROPERTIES set_target_properties(muparser PROPERTIES
......
include(${VF_CMAKE_DIR}/3rd/boost.cmake) include(${VF_CMAKE_DIR}/3rd/boost.cmake)
include(${VF_CMAKE_DIR}/3rd/gmock.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
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
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
...@@ -229,7 +229,7 @@ function(vf_add_library) ...@@ -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 "${VF_THIRD_DIR}/cuda_samples/")
target_include_directories(${library_name} PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) target_include_directories(${library_name} PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
endif() endif()
status("... configuring target: ${library_name} (type=${ARG_BUILDTYPE}) done") status("... configuring target: ${library_name} (type=${ARG_BUILDTYPE}) done")
unset(CMAKE_CXX_CLANG_TIDY) unset(CMAKE_CXX_CLANG_TIDY)
......
...@@ -37,6 +37,7 @@ option(BUILD_VF_GPU "Build VirtualFluids gpu variant" OFF) ...@@ -37,6 +37,7 @@ option(BUILD_VF_GPU "Build VirtualFluids gpu variant" OFF)
option(BUILD_USE_OPENMP "Build VirtualFluids with openmp" ON) option(BUILD_USE_OPENMP "Build VirtualFluids with openmp" ON)
# vf gpu # vf gpu
option(BUILD_VF_GPU "Build VirtualFluids GPU" ON ) option(BUILD_VF_GPU "Build VirtualFluids GPU" ON )
option(BUILD_VF_GKS "Build VirtualFluids GKS" OFF ) option(BUILD_VF_GKS "Build VirtualFluids GKS" OFF )
...@@ -60,12 +61,11 @@ else() ...@@ -60,12 +61,11 @@ else()
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif() endif()
option(USE_OPENMP "Include OpenMP support" ON)
option(BUILD_VF_PYTHON_BINDINGS "" OFF) option(BUILD_VF_PYTHON_BINDINGS "" OFF)
option(BUILD_VF_DOUBLE_ACCURACY "Use double accuracy" OFF) option(BUILD_VF_DOUBLE_ACCURACY "Use double accuracy" OFF)
################################################################################# #################################################################################
# MACROS # MACROS
################################################################################# #################################################################################
...@@ -79,6 +79,13 @@ ENDIF() ...@@ -79,6 +79,13 @@ ENDIF()
################################################################################# #################################################################################
# COMMON LIBRARIES # COMMON LIBRARIES
################################################################################# #################################################################################
if(BUILD_USE_OPENMP)
find_package(OpenMP REQUIRED)
endif()
find_package(MPI REQUIRED)
add_subdirectory(src/basics) add_subdirectory(src/basics)
################################################################################# #################################################################################
......
...@@ -2,8 +2,6 @@ PROJECT(DrivenCavity LANGUAGES CUDA CXX) ...@@ -2,8 +2,6 @@ PROJECT(DrivenCavity LANGUAGES CUDA CXX)
#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-DOMPI_SKIP_MPICXX" ) #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) set_source_files_properties(DrivenCavity.cpp PROPERTIES LANGUAGE CUDA)
linkMPI()
include(Core/buildInfo.cmake) 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) vf_get_library_name (library_name)
target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Core) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Core)
...@@ -21,7 +21,4 @@ IF(MSVC) ...@@ -21,7 +21,4 @@ IF(MSVC)
target_compile_definitions(${library_name} PUBLIC NOMINMAX) # Disable Min/Max-Macros target_compile_definitions(${library_name} PUBLIC NOMINMAX) # Disable Min/Max-Macros
ENDIF(MSVC) ENDIF(MSVC)
vf_add_tests()
linkMPI()
vf_add_tests()
\ No newline at end of file
...@@ -23,15 +23,14 @@ IF(${USE_DEM_COUPLING}) ...@@ -23,15 +23,14 @@ IF(${USE_DEM_COUPLING})
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/../DemCoupling/DemCoupling.cmake) INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/../DemCoupling/DemCoupling.cmake)
ENDIF() ENDIF()
vf_add_library(BUILDTYPE static PUBLIC_LINK basics muparser ${CAB_ADDITIONAL_LINK_LIBRARIES})
vf_get_library_name(library_name)
if(BUILD_USE_OPENMP) if(BUILD_USE_OPENMP)
linkOpenMP(${library_name}) list(APPEND CAB_ADDITIONAL_LINK_LIBRARIES OpenMP::OpenMP_CXX)
endif() 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}/BoundaryConditions)
target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Connectors) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Connectors)
......
project(GksGpu LANGUAGES CUDA CXX) project(GksGpu LANGUAGES CUDA CXX)
vf_add_library(BUILDTYPE shared PRIVATE_LINK basics GksMeshAdapter) vf_add_library(BUILDTYPE shared PRIVATE_LINK basics GksMeshAdapter OpenMP::OpenMP_CXX MPI::MPI_CXX)
linkMPI()
vf_get_library_name(library_name)
linkOpenMP(${library_name})
project(GridGenerator LANGUAGES CUDA CXX) project(GridGenerator LANGUAGES CUDA CXX)
vf_add_library(PRIVATE_LINK basics) vf_add_library(PRIVATE_LINK basics OpenMP::OpenMP_CXX)
vf_get_library_name(library_name)
linkOpenMP(${library_name})
vf_get_library_name(library_name)
set_target_properties(${library_name} PROPERTIES CUDA_SEPARABLE_COMPILATION ON) set_target_properties(${library_name} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
# according to linker error when building static libraries. # according to linker error when building static libraries.
......
project(VirtualFluids_GPU LANGUAGES CUDA CXX) project(VirtualFluids_GPU LANGUAGES CUDA CXX)
IF(MSVC) set(additional_libraries "")
set(libsToLink ws2_32 GridGenerator basics Traffic) # ws_32 throws an error on Phoenix if(MSVC)
ELSE(MSVC) set(additional_libraries ws2_32 Traffic) # ws_32 throws an error on Phoenix
#set(libsToLink GridGenerator VirtualFluidsBasics Core Traffic) endif()
set(libsToLink GridGenerator basics)
ENDIF(MSVC)
vf_add_library(PRIVATE_LINK ${additional_libraries} GridGenerator basics MPI::MPI_CXX)
vf_add_library(PRIVATE_LINK ${libsToLink})
linkMPI()
linkBoost(COMPONENTS "serialization") linkBoost(COMPONENTS "serialization")
#SET(TPN_WIN32 "/EHsc") #SET(TPN_WIN32 "/EHsc")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment