-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
45 lines (37 loc) · 1.34 KB
/
Copy pathCMakeLists.txt
File metadata and controls
45 lines (37 loc) · 1.34 KB
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
cmake_minimum_required(VERSION 3.1.0)
project(pso-extremities)
# project options
option(USE_OMP "Use OpenMP." OFF)
# require C++14
set (CMAKE_CXX_STANDARD 14)
include_directories(${CMAKE_SOURCE_DIR}/include)
# different flags for builds
if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wall /EHsc")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/O2 /Zi /arch:AVX /fp:precise")
set(CMAKE_CXX_FLAGS_RELEASE "/Ox /favor:blend /arch:AVX /fp:precise")
set(CMAKE_CXX_FLAGS_DEBUG "/Od /Zi ")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -march=native")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ffast-math -march=native")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
endif()
# find OpenMP
if(USE_OMP)
find_package(OpenMP)
if(OPENMP_FOUND)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
endif()
if(NOT (USE_OMP AND OPENMP_FOUND))
#ignore unknown omp pragmas
if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE} /wd4068")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
endif()
endif()
# test executable
add_executable(interactive_test ${CMAKE_SOURCE_DIR}/test/test.cpp)