From eef252e22501f4bf46e7fd2a6cabf3d94bc0a320 Mon Sep 17 00:00:00 2001 From: DavisJeremy Date: Mon, 3 Jun 2019 15:02:58 -0700 Subject: [PATCH 1/2] Changed to CMake V 3.9, added OpenMP check --- CMakeLists.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 24c0bccc..4cd30562 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,4 @@ -#Would prefer to make this 3.1, as it makes C++ dialect selection automatic. -cmake_minimum_required (VERSION 2.8) +cmake_minimum_required (VERSION 3.9) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING @@ -8,8 +7,7 @@ RelWithDebInfo MinSizeRel." FORCE) endif(NOT CMAKE_BUILD_TYPE) -project (DDESimulatorTemplate CXX C) -#Would prefer to use CMAKE_CXX_STANDARD in CMake 3.1, but not yet +project (DDESimulatorTemplate CMAKE_CXX_STANDARD LANGUAGES CXX;C) include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) @@ -26,6 +24,11 @@ else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif() +#Checking if compiler has OpenMP Support +find_package(OpenMP REQUIRED) +add_executable(DDESimulatorTemplate DDESimulatorTemplate.cc) +target_link_libraries(DDESimulatorTemplate PRIVATE OpenMP::OpenMP_CXX) + set(Real "double" CACHE STRING "dense::Real") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDENSE_CONFIGURABLE_Real=\"${Real}\"") From 58b3278c60b2819294d4b2b955047cab3dcbcf03 Mon Sep 17 00:00:00 2001 From: John Stratton Date: Mon, 3 Jun 2019 16:47:02 -0700 Subject: [PATCH 2/2] Fixed cmake errors: uncertain if OpenMP truly active --- CMakeLists.txt | 17 ++++------------- source/CMakeLists.txt | 6 +++++- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cd30562..c5c40d0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,27 +7,18 @@ RelWithDebInfo MinSizeRel." FORCE) endif(NOT CMAKE_BUILD_TYPE) -project (DDESimulatorTemplate CMAKE_CXX_STANDARD LANGUAGES CXX;C) -include(CheckCXXCompilerFlag) -CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) +project (DDESimulatorTemplate LANGUAGES CXX;C) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + string(REPLACE ";" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} " "-g -fconcepts -pedantic -fmax-errors=3 -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy " "-Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-include-dirs " "-Wnoexcept -Woverloaded-virtual -Wredundant-decls -Wstrict-null-sentinel -Wstrict-overflow=5 " "-Wswitch-default -Wundef -Wunused -Wzero-as-null-pointer-constant -Wuseless-cast -Wsuggest-override") -if(COMPILER_SUPPORTS_CXX11) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -elseif(COMPILER_SUPPORTS_CXX0X) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") -else() - message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") -endif() #Checking if compiler has OpenMP Support find_package(OpenMP REQUIRED) -add_executable(DDESimulatorTemplate DDESimulatorTemplate.cc) -target_link_libraries(DDESimulatorTemplate PRIVATE OpenMP::OpenMP_CXX) set(Real "double" CACHE STRING "dense::Real") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDENSE_CONFIGURABLE_Real=\"${Real}\"") diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index ee02977f..1223f920 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -26,6 +26,7 @@ function(SIMCORELIB localname simdir) target_include_directories(${localname} PUBLIC ${simdir}) target_include_directories(${localname} PUBLIC ${PROJECT_SOURCE_DIR}/source) + target_link_libraries(${localname} PRIVATE OpenMP::OpenMP_CXX) endif (NOT TARGET ${localname}) endfunction(SIMCORELIB localname simdir) @@ -35,6 +36,7 @@ function(SIMULATION localname simdir) target_include_directories(${localname} PUBLIC ${simdir}) target_include_directories(${localname} PUBLIC ${PROJECT_SOURCE_DIR}/source) target_link_libraries(${localname} PUBLIC ${localname}_lib) + target_link_libraries(${localname} PRIVATE OpenMP::OpenMP_CXX) endfunction(SIMULATION localname simdir) function(CUDASIMCORELIB localname simdir) @@ -85,6 +87,7 @@ function(PARAM_SEARCH_LIB localname simdir) ${PROJECT_SOURCE_DIR}/source/search/sres.cpp) target_include_directories(${localname} PUBLIC ${simdir}) target_include_directories(${localname} PUBLIC ${PROJECT_SOURCE_DIR}/source) + target_link_libraries(${localname} PRIVATE OpenMP::OpenMP_CXX) endif (NOT TARGET ${localname}) endfunction(PARAM_SEARCH_LIB localname simdir) @@ -127,7 +130,8 @@ if( ${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${PROJECT_BINARY_DIR}/source) if (EXISTS ${PROJECT_BINARY_DIR}/param_search_main.cpp) PARAM_SEARCH(paramsearch_lib ${PROJECT_BINARY_DIR}) add_executible(paramsearch ${PROJECT_BINARY_DIR}/param_search_main.cpp) - target_link_libraries(paramsearch paramsearch_lib simulation_lib) + target_link_libraries(paramsearch PUBLIC paramsearch_lib simulation_lib) + target_link_libraries(paramsearch PRIVATE OpenMP::OpenMP_CXX) endif (EXISTS ${PROJECT_BINARY_DIR}/param_search_main.cpp) endif (${BUILD_TESTS_ONLY}) #add_test(ctest_simulation main -p ../param_list.csv -c 200 -w 50 -s 0.01 -a 0.1 -r 10 -t 60 -e ../data_out.csv)