-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
75 lines (65 loc) · 3.17 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
cmake_minimum_required (VERSION 2.8)
project (RTF)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.49 COMPONENTS system filesystem REQUIRED)
message(status "** Boost Include: ${Boost_INCLUDE_DIR}")
message(status "** Boost Libraries: ${Boost_LIBRARY_DIRS}")
message(status "** Boost Libraries: ${Boost_LIBRARIES}")
find_package(Eigen3 3.1 REQUIRED)
find_package(ITK 4.3 REQUIRED)
INCLUDE(${ITK_USE_FILE})
# Check if a "solution generator" (XCode, Visual Studio) is used ...
# if not, set the default build type to "Release"
if (NOT CMAKE_CONFIGURATION_TYPES )
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE "Release")
endif ()
endif ()
if (CMAKE_COMPILER_IS_GNUCXX)
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GXX_VERSION)
if (GXX_VERSION VERSION_GREATER 4.7 OR GXX_VERSION VERSION_EQUAL 4.7)
message(STATUS "OK, using G++ version >= 4.7")
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -mtune=native -fopenmp -std=c++11 -fpermissive")
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fopenmp -std=c++11 -fpermissive")
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=c++11 -fpermissive")
else ()
message(FATAL_ERROR "Unsupported version of G++: need G++ >= 4.7")
endif ()
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
if (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7)
message(STATUS "OK, using GCC version >= 4.7")
else ()
message(FATAL_ERROR "Unsupported version of GCC: need GCC >= 4.7")
endif ()
elseif (MSVC)
if( MSVC11 )
message(STATUS "OK, using Microsoft Visual Studio 2012")
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj /wd4244")
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /bigobj /wd4244 /openmp")
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /bigobj /wd4244 /openmp")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL:NO /LTCG" )
else ()
message(FATAL_ERROR "Unsupported version of Microsoft Visual Studio: need Visual C++ >= 2012")
endif ()
# Turn off warnings about ctime, sscanf, etc.
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
endif ()
# Display the selected build type if no "solution generator" is used
if (NOT CMAKE_CONFIGURATION_TYPES)
if (CMAKE_BUILD_TYPE STREQUAL "Release")
message(STATUS " -> Release Build")
message(STATUS " -> Using flags: ${CMAKE_CXX_FLAGS_RELEASE}")
elseif (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
message(STATUS " -> Release Build with Debug Info")
message(STATUS " -> Using flags: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
else ()
message(STATUS " -> Debug Build")
message(STATUS " -> Using flags: ${CMAKE_CXX_FLAGS_DEBUG}")
endif ()
endif ()
include_directories ( ${Boost_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} ${MPI_INCLUDE_PATH})
link_directories ( ${Boost_LIBRARY_DIRS} )
link_libraries ( ${MPI_LIBRARIES} ${ITK_LIBRARIES} ${Boost_LIBRARIES} )
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MPI_LINK_FLAGS}" )
add_subdirectory (Deblur)