]> Creatis software - cpMesh.git/blob - CMakeLists.txt
Read/Write image plugin integration
[cpMesh.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 # for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003")
4 IF(
5     COMMAND cmake_policy AND
6     ${CMAKE_MAJOR_VERSION} EQUAL 2 AND
7     ${CMAKE_MINOR_VERSION} GREATER 4
8     )
9   CMAKE_POLICY(SET CMP0003 NEW)
10   CMAKE_POLICY(SET CMP0005 NEW)
11   CMAKE_POLICY(SET CMP0011 NEW)
12   CMAKE_POLICY(SET CMP0012 NEW)
13 ENDIF(
14   COMMAND cmake_policy AND
15   ${CMAKE_MAJOR_VERSION} EQUAL 2 AND
16   ${CMAKE_MINOR_VERSION} GREATER 4
17   )
18
19 ## ================
20 ## = Project name =
21 ## ================
22
23 PROJECT(cpMesh)
24
25 ## ===========
26 ## = Options =
27 ## ===========
28
29 OPTION(BUILD_EXAMPLES "Build demos" OFF)
30 OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
31 OPTION(BUILD_FINAL_APPLICATION "Build final application" ON)
32
33 IF(BUILD_SHARED_LIBS)
34   SET(cpm_LIBRARY_TYPE SHARED)
35 ELSE(BUILD_SHARED_LIBS)
36   SET(cpm_LIBRARY_TYPE STATIC)
37 ENDIF(BUILD_SHARED_LIBS)
38
39 ## ============
40 ## = Packages =
41 ## ============
42 INCLUDE(GenerateExportHeader)
43
44 FIND_PACKAGE(ITK REQUIRED)
45 INCLUDE(${ITK_USE_FILE})
46
47 FIND_PACKAGE(VTK REQUIRED)
48 INCLUDE(${VTK_USE_FILE})
49
50 IF(BUILD_FINAL_APPLICATION)
51   FIND_PACKAGE(Qt4 REQUIRED)
52   INCLUDE(${QT_USE_FILE})
53
54   FIND_PACKAGE(cpPlugins REQUIRED)
55 ENDIF(BUILD_FINAL_APPLICATION)
56
57 ## ================================================
58 ## = Do not allow to build inside the source tree =
59 ## ================================================
60
61 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
62   MESSAGE(FATAL_ERROR "Building in the source tree is not allowed")
63 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
64
65 ## =====================================
66 ## = Where to put executables and libs =
67 ## =====================================
68
69 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
70 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
71 MARK_AS_ADVANCED(
72   CMAKE_BACKWARDS_COMPATIBILITY
73   EXECUTABLE_OUTPUT_PATH
74   LIBRARY_OUTPUT_PATH
75   )
76
77 ## ==============================
78 ## = Subdirs containing headers =
79 ## ==============================
80
81 INCLUDE_DIRECTORIES(
82   ${PROJECT_SOURCE_DIR}/lib
83   ${PROJECT_SOURCE_DIR}/lib/third_party
84   ${PROJECT_BINARY_DIR}/lib
85   )
86
87 ## ===========================
88 ## = Subdirs containing code =
89 ## ===========================
90
91 SUBDIRS(
92   lib
93   appli
94   )
95
96 ## eof - $RCSfile$