Created
March 29, 2019 19:09
-
-
Save YsHaNgM/49586cd4fef248b9ee8097ad5fcd03d1 to your computer and use it in GitHub Desktop.
Requirement CMakeLists in use of OpenMP+Apple clang under Mojave
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cmake_minimum_required(VERSION 3.12) | |
project(openmptest CXX) | |
add_executable(sample sample.cpp) | |
option(CMAKECATCHMPI_USE_OPENMP "Enable OpenMP" ON) | |
if(CMAKECATCHMPI_USE_OPENMP) | |
find_package(OpenMP) | |
# If OpenMP wasn't found, try if we can find it in the default Macports location | |
if((NOT OPENMP_FOUND) AND (NOT OPENMP_CXX_FOUND) AND EXISTS "/opt/local/lib/libomp/libomp.dylib") | |
set(OpenMP_C_FLAGS "-Xpreprocessor -fopenmp -I/opt/local/include/libomp/") | |
set(OpenMP_C_LIB_NAMES omp) | |
set(OpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -I/opt/local/include/libomp/") | |
set(OpenMP_CXX_LIB_NAMES omp) | |
set(OpenMP_omp_LIBRARY /opt/local/lib/libomp/libomp.dylib) | |
find_package(OpenMP) | |
if (OPENMP_FOUND OR OPENMP_CXX_FOUND) | |
message(STATUS "Found libomp in macports default location.") | |
else() | |
message(FATAL_ERROR "Didn't find libomp. Tried macports default location but also didn't find it.") | |
endif() | |
endif() | |
# If OpenMP wasn't found, try if we can find it in the default Homebrew location | |
if((NOT OPENMP_FOUND) AND (NOT OPENMP_CXX_FOUND) AND EXISTS "/usr/local/opt/libomp/lib/libomp.dylib") | |
set(OpenMP_C_FLAGS "-Xpreprocessor -fopenmp -I/usr/local/opt/libomp/include") | |
set(OpenMP_C_LIB_NAMES omp) | |
set(OpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -I/usr/local/opt/libomp/include") | |
set(OpenMP_CXX_LIB_NAMES omp) | |
set(OpenMP_omp_LIBRARY /usr/local/opt/libomp/lib/libomp.dylib) | |
find_package(OpenMP) | |
if (OPENMP_FOUND OR OPENMP_CXX_FOUND) | |
message(STATUS "Found libomp in homebrew default location.") | |
else() | |
message(FATAL_ERROR "Didn't find libomp. Tried homebrew default location but also didn't find it.") | |
endif() | |
endif() | |
if((NOT OPENMP_FOUND) AND (NOT OPENMP_CXX_FOUND)) | |
message(FATAL_ERROR "Did not find OpenMP.") | |
endif() | |
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") | |
else() | |
if( (CMAKE_CXX_COMPILER_ID MATCHES "[cC][lL][aA][nN][gG]") | |
OR (CMAKE_CXX_COMPILER_ID MATCHES "[gG][nN][uU]")) | |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas") | |
endif() | |
endif(CMAKECATCHMPI_USE_OPENMP) | |
target_link_libraries(sample ${OpenMP_CXX_FLAGS} ${OpenMP_libomp_LIBRARY}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment