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 6cc488f94716f7cec973874b0930ed8f9b719d08..781146111d48739671b35c98bb96ebff358809b4 100644 --- a/CMake/3rd.cmake +++ b/CMake/3rd.cmake @@ -1,5 +1,2 @@ include(${VF_CMAKE_DIR}/3rd/boost.cmake) -include(${VF_CMAKE_DIR}/3rd/cuda.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/cuda.cmake b/CMake/3rd/cuda.cmake deleted file mode 100644 index 73d9b8647e2fa92dc760b60040ef727e4b4785f0..0000000000000000000000000000000000000000 --- a/CMake/3rd/cuda.cmake +++ /dev/null @@ -1,13 +0,0 @@ - -function(linkCUDA) - - set(CUDA_CUT_INCLUDE_DIR "${VF_THIRD_DIR}/cuda_samples/") - - vf_get_library_name(library_name) - target_include_directories(${library_name} PRIVATE ${CUDA_CUT_INCLUDE_DIR}) - target_include_directories(${library_name} PRIVATE ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) - - # set the following properties only for specific targets - # set_property(TARGET ${targetName} PROPERTY CUDA_SEPARABLE_COMPILATION ON) - # set_property(TARGET ${targetName} PROPERTY CUDA_64_BIT_DEVICE_CODE ON) -endfunction() diff --git a/CMake/3rd/mpi.cmake b/CMake/3rd/mpi.cmake deleted file mode 100644 index 93b3ee386cc46623ed02bbbffb88996328f03e52..0000000000000000000000000000000000000000 --- a/CMake/3rd/mpi.cmake +++ /dev/null @@ -1,9 +0,0 @@ -function (linkMPI) - - find_package(MPI REQUIRED) - - vf_get_library_name(library_name) - target_include_directories(${library_name} PUBLIC ${MPI_CXX_INCLUDE_PATH}) - target_link_libraries(${library_name} PRIVATE MPI::MPI_CXX) - -endfunction() \ No newline at end of file diff --git a/CMake/CMakeSetCompilerFlags.cmake b/CMake/CMakeSetCompilerFlags.cmake index ad9311482ed65a521f90e8210709bfd0a8351ecd..784f3f24a7cde518e113363aa92ce90fec0e9c2d 100644 --- a/CMake/CMakeSetCompilerFlags.cmake +++ b/CMake/CMakeSetCompilerFlags.cmake @@ -1,29 +1,21 @@ -############################################################### -# set hostname -> CAB_MACHINE and load an optional config file -############################################################### +######################################################################################### +## Access the hostname and loads a optional machine file hostname.cmake +######################################################################################### macro(loadMachineFile) - IF(NOT CAB_MACHINE) - SET(CAB_MACHINE $ENV{CAB_MACHINE}) + site_name(MACHINE_NAME) + string(TOUPPER "${MACHINE_NAME}" MACHINE_NAME) - IF( CAB_MACHINE ) - STRING(TOUPPER "${CAB_MACHINE}" CAB_MACHINE) - ELSE() - EXECUTE_PROCESS( COMMAND hostname OUTPUT_VARIABLE CAB_MACHINE) - STRING(REGEX REPLACE "[ ]*([A-Za-z0-9]+).*[\\\\n]*" "\\1" CAB_MACHINE "${CAB_MACHINE}" ) - STRING(TOUPPER "${CAB_MACHINE}" CAB_MACHINE) - ENDIF() - ENDIF() + set(BUILD_MACHINE_FILE_PATH "${VF_CMAKE_DIR}/cmake_config_files") - LIST(APPEND VF_COMPILER_DEFINITION CAB_MACHINE=${CAB_MACHINE}) - SET(CMAKE_CONFIG_FILE "${VF_CMAKE_DIR}/cmake_config_files/${CAB_MACHINE}.config.cmake") + set(MACHINE_FILE "${BUILD_MACHINE_FILE_PATH}/${MACHINE_NAME}.config.cmake") - IF(NOT EXISTS ${CMAKE_CONFIG_FILE}) - status("No configuration file found for machine: ${CAB_MACHINE}.config.cmake") + IF(NOT EXISTS ${MACHINE_FILE}) + status("No configuration file found: ${MACHINE_FILE}.") ELSE() - status("Load configuration file ${CAB_MACHINE}.config.cmake") - include(${CMAKE_CONFIG_FILE}) + status("Load configuration file: ${MACHINE_FILE}") + include(${MACHINE_FILE}) ENDIF() endmacro() @@ -35,9 +27,9 @@ endmacro() ################################################################ macro(loadCompilerFlags) - SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "") - SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "") - SET(CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "") + SET(CS_COMPILER_FLAGS_CXX "") + SET(CS_COMPILER_FLAGS_CXX_DEBUG "") + SET(CS_COMPILER_FLAGS_CXX_RELEASE "") # https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html#variable:CMAKE_<LANG>_COMPILER_ID @@ -57,9 +49,9 @@ endmacro() ################################################################ function(addAdditionalFlags project_name) - status_lib("additional compiler flags CXX: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS}") - status_lib("additional compiler flags CXX debug: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG}") - status_lib("additional compiler flags CXX release: ${CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE}") + status_lib("additional compiler flags CXX: ${CS_COMPILER_FLAGS_CXX}") + status_lib("additional compiler flags CXX debug: ${CS_COMPILER_FLAGS_CXX_DEBUG}") + status_lib("additional compiler flags CXX release: ${CS_COMPILER_FLAGS_CXX_RELEASE}") status_lib("additional compiler definitions: ${VF_COMPILER_DEFINITION}") status_lib("additional linker flags: ${VF_LINK_OPTIONS}") @@ -74,15 +66,15 @@ function(addAdditionalFlags project_name) endforeach() # compile options - foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS) + foreach(flag IN LISTS CS_COMPILER_FLAGS_CXX) target_compile_options(${project_name} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:${flag}>") endforeach() - foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG) + foreach(flag IN LISTS CS_COMPILER_FLAGS_CXX_DEBUG) target_compile_options(${project_name} PRIVATE "$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:DEBUG>>:${flag}>") endforeach() - foreach(flag IN LISTS CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE) + foreach(flag IN LISTS CS_COMPILER_FLAGS_CXX_RELEASE) target_compile_options(${project_name} PRIVATE "$<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CONFIG:RELEASE>>:${flag}>") endforeach() diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake index 2d6e63256955f8b739b2c84e695214185471600f..debb5ee7826d7dc3d6499b3813070dcab4b94bd4 100644 --- a/CMake/VirtualFluidsMacros.cmake +++ b/CMake/VirtualFluidsMacros.cmake @@ -225,6 +225,10 @@ function(vf_add_library) target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/gpu) target_include_directories(${library_name} PRIVATE ${VF_SRC_DIR}/cpu) + if(BUILD_VF_GPU) + 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") diff --git a/CMake/compilerflags/AppleClang.cmake b/CMake/compilerflags/AppleClang.cmake index c7130e5f40fa61a6011c8009b094611ed7f07ed0..6f52ad35956a967b3892aed26257fa1c41cb0c46 100644 --- a/CMake/compilerflags/AppleClang.cmake +++ b/CMake/compilerflags/AppleClang.cmake @@ -3,26 +3,26 @@ ############################################################################################################# # debug -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "-g") # generates debug information. Works best with -O0. -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "-O0") +list(APPEND CS_COMPILER_FLAGS_CXX_DEBUG "-g") # generates debug information. Works best with -O0. +list(APPEND CS_COMPILER_FLAGS_CXX_DEBUG "-O0") # release -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "-O3") # optimization level (-O3: most optimization which also could result in larger binaries) +list(APPEND CS_COMPILER_FLAGS_CXX_RELEASE "-O3") # optimization level (-O3: most optimization which also could result in larger binaries) # all -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fPIC") # position independent code for shared libraries +list(APPEND CS_COMPILER_FLAGS_CXX "-fPIC") # position independent code for shared libraries ############################################################################################################# # warnings ############################################################################################################# -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wall") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wextra") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-pedantic") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wall") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wextra") +list(APPEND CS_COMPILER_FLAGS_CXX "-pedantic") if(BUILD_WARNINGS_AS_ERRORS) - list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS -Werror) + list(APPEND CS_COMPILER_FLAGS_CXX -Werror) endif() -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-function") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-parameter") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-reorder") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-unused-function") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-unused-parameter") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-reorder") diff --git a/CMake/compilerflags/Clang.cmake b/CMake/compilerflags/Clang.cmake index 9a3de6c56007c26cb90ede287dc6b4fdfa9e2124..2eb4eec5ee89715a1668ef078c84f4e720bd04e6 100644 --- a/CMake/compilerflags/Clang.cmake +++ b/CMake/compilerflags/Clang.cmake @@ -3,30 +3,30 @@ ############################################################################################################# # debug -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "-g") # generates debug information. Works best with -O0. -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "-O0") +list(APPEND CS_COMPILER_FLAGS_CXX_DEBUG "-g") # generates debug information. Works best with -O0. +list(APPEND CS_COMPILER_FLAGS_CXX_DEBUG "-O0") # release -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "-O3") # optimization level (-O3: most optimization which also could result in larger binaries) +list(APPEND CS_COMPILER_FLAGS_CXX_RELEASE "-O3") # optimization level (-O3: most optimization which also could result in larger binaries) # all -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fPIC") # position independent code for shared libraries +list(APPEND CS_COMPILER_FLAGS_CXX "-fPIC") # position independent code for shared libraries ############################################################################################################# # warnings ############################################################################################################# -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wall") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wextra") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-pedantic") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wall") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wextra") +list(APPEND CS_COMPILER_FLAGS_CXX "-pedantic") if(BUILD_WARNINGS_AS_ERRORS) - list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS -Werror) + list(APPEND CS_COMPILER_FLAGS_CXX -Werror) endif() -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-function") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-parameter") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-reorder-ctor") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-unused-function") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-unused-parameter") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-reorder-ctor") diff --git a/CMake/compilerflags/GNU.cmake b/CMake/compilerflags/GNU.cmake index 2953598d5ff80afa96e04dfe56b021aed8690534..3e67b79e9c84d29b51b2881b17e2b74f5510bbd2 100644 --- a/CMake/compilerflags/GNU.cmake +++ b/CMake/compilerflags/GNU.cmake @@ -3,41 +3,41 @@ ############################################################################################################# # debug -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "-g") # generates debug information. Works best with -O0. -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "-O0") # no optimization +list(APPEND CS_COMPILER_FLAGS_CXX_DEBUG "-g") # generates debug information. Works best with -O0. +list(APPEND CS_COMPILER_FLAGS_CXX_DEBUG "-O0") # no optimization # release -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_RELEASE "-O3") # optimization level (-O3: most optimization which also could result in larger binaries) +list(APPEND CS_COMPILER_FLAGS_CXX_RELEASE "-O3") # optimization level (-O3: most optimization which also could result in larger binaries) # all -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-fPIC") # position independent code for shared libraries +list(APPEND CS_COMPILER_FLAGS_CXX "-fPIC") # position independent code for shared libraries if(NOT BUILD_VF_INCLUDE_WHAT_YOU_USE) # optimization flag '-funroll-all-loops' is not supported for IWYU - LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-funroll-all-loops") + LIST(APPEND CS_COMPILER_FLAGS_CXX "-funroll-all-loops") endif() # gcov if (BUILD_VF_COVERAGE) - list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "--coverage") + list(APPEND CS_COMPILER_FLAGS_CXX "--coverage") set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} " --coverage") endif() ############################################################################################################# # warnings ############################################################################################################# -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wall") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wextra") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-pedantic") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wall") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wextra") +list(APPEND CS_COMPILER_FLAGS_CXX "-pedantic") if(BUILD_WARNINGS_AS_ERRORS) - list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS -Werror) + list(APPEND CS_COMPILER_FLAGS_CXX -Werror) endif() -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-function") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unused-parameter") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-reorder") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-unknown-pragmas") -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-Wno-cast-function-type") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-unused-function") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-unused-parameter") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-reorder") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-unknown-pragmas") +list(APPEND CS_COMPILER_FLAGS_CXX "-Wno-cast-function-type") ############################################################################################################# # linker options diff --git a/CMake/compilerflags/Intel.cmake b/CMake/compilerflags/Intel.cmake index 90c73b157b4ef3ec77c4d236bbf698876189c069..c7177d4c246402d8b865e7059273cb18d0938e44 100644 --- a/CMake/compilerflags/Intel.cmake +++ b/CMake/compilerflags/Intel.cmake @@ -2,22 +2,22 @@ # compiler flags ############################################################################################################# -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-O") -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-wd654") -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-wd1125") #virtual function override intended -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-wd1224") #warning directive: This file includes at least one deprecated or antiquated header -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-wd377") #class "std::auto_ptr<RCF::I_ClientTransport>" has no suitable copy constructor -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-wd327") #class "std::auto_ptr<RCF::I_ClientTransport>" has no suitable copy constructor -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-wd327") #class "std::auto_ptr<RCF::I_ClientTransport>" has no suitable copy constructor +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-O") +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-wd654") +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-wd1125") #virtual function override intended +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-wd1224") #warning directive: This file includes at least one deprecated or antiquated header +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-wd377") #class "std::auto_ptr<RCF::I_ClientTransport>" has no suitable copy constructor +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-wd327") #class "std::auto_ptr<RCF::I_ClientTransport>" has no suitable copy constructor +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-wd327") #class "std::auto_ptr<RCF::I_ClientTransport>" has no suitable copy constructor # #LIST(APPEND CAB_COMPILER_ADDTIONAL_C_COMPILER_FLAGS "-wd266") #function "__GKfree" declared implicitly -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-xHOST -O3 -ip -ipo -fno-alias -mcmodel=medium -qopt-streaming-stores=always") +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-xHOST -O3 -ip -ipo -fno-alias -mcmodel=medium -qopt-streaming-stores=always") # all -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-xHOST;-O3;-ip;-fno-alias;-mcmodel=medium;-qopt-streaming-stores=always;-xCORE-AVX512;-qopt-zmm-usage=high") +list(APPEND CS_COMPILER_FLAGS_CXX "-xHOST;-O3;-ip;-fno-alias;-mcmodel=medium;-qopt-streaming-stores=always;-xCORE-AVX512;-qopt-zmm-usage=high") # debug -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS_DEBUG "-g -traceback") +list(APPEND CS_COMPILER_FLAGS_CXX_DEBUG "-g -traceback") ############################################################################################################# diff --git a/CMake/compilerflags/MSVC.cmake b/CMake/compilerflags/MSVC.cmake index 937d9f4d5d1fead78f35e2442845b27f13bc9a54..2af38d98e63cf04c4da476fb02754ce47510e4f6 100644 --- a/CMake/compilerflags/MSVC.cmake +++ b/CMake/compilerflags/MSVC.cmake @@ -1,29 +1,29 @@ ############################################################################################################# # compiler flags ############################################################################################################# -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/bigobj") # increases that address capacity to 4,294,967,296 (2^32). -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-MP") # enable multi-threaded compiling +list(APPEND CS_COMPILER_FLAGS_CXX "/bigobj") # increases that address capacity to 4,294,967,296 (2^32). +list(APPEND CS_COMPILER_FLAGS_CXX "-MP") # enable multi-threaded compiling ############################################################################################################# # warnings ############################################################################################################# -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/W4") # highest warning level +list(APPEND CS_COMPILER_FLAGS_CXX "/W4") # highest warning level # With W4 the following warnings appear many times. As long they are not eliminated they are suppressed: -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4458") # C4458: declaration of 'XXX' hides class member -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4100") # C4100: 'XXX': unreferenced formal parameter -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4505") # C4505: 'XXX': unreferenced local function has been removed -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4244") # C4244: '=': conversion from 'int' to 'char', possible loss of data, triggered by algorithm(2216,24) -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4310") # C4310: cast truncates constant value, triggerd by muParserbase.h -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4127") # C4127: conditional expression is constant: e.g. sizeof(int) +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4458") # C4458: declaration of 'XXX' hides class member +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4100") # C4100: 'XXX': unreferenced formal parameter +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4505") # C4505: 'XXX': unreferenced local function has been removed +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4244") # C4244: '=': conversion from 'int' to 'char', possible loss of data, triggered by algorithm(2216,24) +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4310") # C4310: cast truncates constant value, triggerd by muParserbase.h +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4127") # C4127: conditional expression is constant: e.g. sizeof(int) # Urgent FIXME: This warning should be activated and fixed: -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4701") # C4701: potentially uninitialized local variable 'lMaxX3' used +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4701") # C4701: potentially uninitialized local variable 'lMaxX3' used -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4251") # disable needs to have dll interface -list(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "/wd4005") # disable macro redefinition (triggered by metis.h) +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4251") # disable needs to have dll interface +list(APPEND CS_COMPILER_FLAGS_CXX "/wd4005") # disable macro redefinition (triggered by metis.h) ############################################################################################################# # preprocessor definitions 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 8bb9ee450616604b8cc636a2e13477d76e6b43d4..e4f62c0150c29f147dee0b99480d1fe28161511a 100644 --- a/apps/gpu/LBM/DrivenCavity/CMakeLists.txt +++ b/apps/gpu/LBM/DrivenCavity/CMakeLists.txt @@ -1,10 +1,7 @@ -PROJECT(DrivenCavity) +PROJECT(DrivenCavity LANGUAGES CUDA CXX) -#LIST(APPEND CAB_COMPILER_ADDTIONAL_CXX_COMPILER_FLAGS "-DOMPI_SKIP_MPICXX" ) +#LIST(APPEND CS_COMPILER_FLAGS_CXX "-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) - -linkCUDA() -linkMPI() diff --git a/gpu.cmake b/gpu.cmake index 29fe0d826a11d169f2c17510dde26c2581ce6ad5..6bdff52053d9b4ad047ca8015980a08e9e2f3a79 100644 --- a/gpu.cmake +++ b/gpu.cmake @@ -1,14 +1,4 @@ -############################################################# -### CUDAPATH ### -############################################################# - -# if CMake cannot find CUDA by itself, set the correct paths manually: -#SET(CUDA_CUT_INCLUDE_DIR "/cluster/cuda/9.0/include;/cluster/cuda/9.0/samples/common/inc" CACHE PATH "CUDA_CUT_INCLUDE_DIR") -#SET(CUDA_SAMPLE_INCLUDE_DIR "/cluster/cuda/9.0/samples/common/inc" CACHE PATH "CUDA_CUT_INCLUDE_DIR") - - -############################################################# if(BUILD_NUMERIC_TESTS) set(CMAKE_CXX_STANDARD 17) @@ -24,9 +14,6 @@ ENDIF() set(CMAKE_CUDA_FLAGS_DEBUG " -G" CACHE STRING "" FORCE) -############################################################# - -enable_language(CUDA) ########################################################################################################################## ### Subdirectories ### 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 7d208fb945f70a7ca2108fe25dce324c2c0e87f9..3506f0b76399043cbe546ea44ef4b57bd2d794c3 100644 --- a/src/cpu/VirtualFluidsCore/CMakeLists.txt +++ b/src/cpu/VirtualFluidsCore/CMakeLists.txt @@ -23,14 +23,15 @@ 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() +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) target_include_directories(${library_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/Data) @@ -47,11 +48,6 @@ IF(${USE_METIS} AND METIS_INCLUDEDIR) target_include_directories(${library_name} PUBLIC ${METIS_INCLUDEDIR}) ENDIF() -IF(${USE_BOOST}) - target_include_directories(${library_name} PRIVATE ${Boost_INCLUDE_DIR}) -ENDIF() - - target_include_directories(${library_name} PRIVATE ${ZOLTAN_INCLUDEDIR}) IF(${USE_VTK}) target_include_directories(${library_name} PRIVATE ${VTK_INCLUDE_DIRS}) diff --git a/src/gpu/GksGpu/CMakeLists.txt b/src/gpu/GksGpu/CMakeLists.txt index 88df905d3eb847c1ed5e9b5bc5a1ec68c549e313..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) - -linkCUDA() -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 46866937e2fe91e4d2eedd3cbbaf16a65ae8a6fc..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) - -linkCUDA() -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/Traffic/CMakeLists.txt b/src/gpu/Traffic/CMakeLists.txt index c836ac39130824ebc01da73c62a76c85656573a8..249594e0434bc01aecd8f95f524a25a0745013d4 100644 --- a/src/gpu/Traffic/CMakeLists.txt +++ b/src/gpu/Traffic/CMakeLists.txt @@ -1,5 +1,3 @@ - +project(Traffic LANGUAGES CUDA CXX) vf_add_library(BUILDTYPE shared PRIVATE_LINK GridGenerator basics) - -linkCUDA() \ No newline at end of file diff --git a/src/gpu/VirtualFluids_GPU/CMakeLists.txt b/src/gpu/VirtualFluids_GPU/CMakeLists.txt index 442efdc1422dc278161d3ad6571f3e52864e90de..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() -linkCUDA() linkBoost(COMPONENTS "serialization") #SET(TPN_WIN32 "/EHsc")