-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
51 lines (44 loc) · 1.7 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
cmake_minimum_required(VERSION 3.0.0)
project(Omega_h VERSION 5.2.0 LANGUAGES CXX)
include(cmake/bob.cmake)
bob_begin_package()
option(Omega_h_USE_MPI "Use MPI for parallelism" OFF)
option(Omega_h_USE_OpenMP "Use Kokkos+OpenMP for on-node parallelism" OFF)
option(Omega_h_USE_PTHREADS "Use Kokkos+Pthread for on-node parallelism" OFF)
option(Omega_h_USE_CUDA "Use Kokkos+CUDA for on-node parallelism" OFF)
option(Omega_h_CHECK_BOUNDS "Check array bounds (makes code slow too)" OFF)
option(Omega_h_SANITIZE_ADDRESS "Use -fsanitize=address" OFF)
option(Omega_h_PROTECT "Catch OS signals and print stack" OFF)
set(Gmsh_PREFIX "" CACHE PATH "Gmsh installation directory")
option(Omega_h_ONE_FILE "Compile omega_h as a single file" OFF)
message(STATUS "Omega_h_ONE_FILE: ${Omega_h_ONE_FILE}")
bob_begin_cxx_flags()
bob_cxx11_flags()
if(Omega_h_SANITIZE_ADDRESS)
set(FLAGS "${FLAGS} -fsanitize=address")
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(FLAGS "${FLAGS} -fno-omit-frame-pointer")
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
if(Omega_h_USE_CUDA)
set(FLAGS "${FLAGS} -expt-extended-lambda")
elseif(Omega_h_USE_OpenMP)
set(FLAGS "${FLAGS} -fno-omit-frame-pointer")
set(FLAGS "${FLAGS} -fopenmp")
elseif(Omega_h_USE_PTHREADS)
set(FLAGS "${FLAGS} -fno-omit-frame-pointer")
set(FLAGS "${FLAGS} -pthread")
else()
set(FLAGS "${FLAGS} -fno-omit-frame-pointer")
endif()
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
if(Omega_h_USE_OpenMP)
set(FLAGS "${FLAGS} -qopenmp")
endif()
else()
message(WARNING "Unexpected compiler type ${CMAKE_CXX_COMPILER_ID}")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS}")
bob_end_cxx_flags()
add_subdirectory(src)
bob_end_package()