]> Creatis software - FrontAlgorithms.git/blob - CMakeLists.txt
...
[FrontAlgorithms.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2
3 ## ============
4 ## = Policies =
5 ## ============
6
7 SET(
8   policies
9   CMP0015
10   CMP0020
11   CMP0042
12   )
13 FOREACH(policy ${policies})
14   IF(POLICY ${policy})
15     CMAKE_POLICY(SET ${policy} NEW)
16   ENDIF(POLICY ${policy})
17 ENDFOREACH(policy)
18
19 ## ================
20 ## = Project name =
21 ## ================
22
23 PROJECT(FrontAlgorithms)
24 SET(prj_MAJ_VER "0")
25 SET(prj_MIN_VER "0")
26 SET(prj_REL_VER "1")
27 SET(prj_VER "${prj_MAJ_VER}.${prj_MIN_VER}.${prj_REL_VER}")
28 SET(prj_sVER "${prj_MAJ_VER}")
29
30 ## ===========
31 ## = Options =
32 ## ===========
33
34 ## OPTION(BUILD_EXAMPLES "Build examples" OFF)
35 OPTION(BUILD_PLUGINS "Build plugins" OFF)
36
37 ## ============
38 ## = Packages =
39 ## ============
40
41 # NOTE: It seems that by default on Visual Studio Compiler supports c++11,
42 # so it only need to be test on other O.S.
43 IF(NOT MSVC)
44   INCLUDE(CheckCXXCompilerFlag)
45   CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
46   CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
47   IF(COMPILER_SUPPORTS_CXX11)
48     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
49   ELSEIF(COMPILER_SUPPORTS_CXX0X)
50     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
51   ELSE()
52     MESSAGE(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
53   ENDIF()
54 ENDIF(NOT MSVC)
55
56 # Prepare header to build shared libs (windows)
57 INCLUDE(GenerateExportHeader)
58
59 # Find cpPlugins
60 FIND_PACKAGE(cpPlugins REQUIRED)
61
62 ## ================================================
63 ## = Do not allow to build inside the source tree =
64 ## ================================================
65
66 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
67   MESSAGE(FATAL_ERROR "Building in the source tree is not allowed")
68 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
69
70 ## =====================================
71 ## = Where to put executables and libs =
72 ## =====================================
73
74 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
75 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
76 MARK_AS_ADVANCED(
77   CMAKE_BACKWARDS_COMPATIBILITY
78   EXECUTABLE_OUTPUT_PATH
79   LIBRARY_OUTPUT_PATH
80   )
81
82 ## ==============================
83 ## = Subdirs containing headers =
84 ## ==============================
85
86 INCLUDE_DIRECTORIES(
87   ${PROJECT_SOURCE_DIR}
88   ${PROJECT_BINARY_DIR}
89   ${PROJECT_SOURCE_DIR}/lib
90   ${PROJECT_BINARY_DIR}/lib
91   ${PROJECT_SOURCE_DIR}/plugins
92   ${PROJECT_BINARY_DIR}/plugins
93   )
94
95 ## ===========================
96 ## = Subdirs containing code =
97 ## ===========================
98
99 SUBDIRS(
100   cmake
101   lib
102   appli
103   )
104 IF(BUILD_PLUGINS)
105   SUBDIRS(
106     plugins
107     )
108 ENDIF(BUILD_PLUGINS)
109
110 ## eof - $RCSfile$