]> Creatis software - cpPlugins.git/blob - CMakeLists.txt
...
[cpPlugins.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(cpPlugins)
24 SET(prj_MAJOR_VERSION   "0")
25 SET(prj_MINOR_VERSION   "0")
26 SET(prj_RELEASE_VERSION "1")
27 SET(
28   prj_VERSION
29   "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}"
30   )
31
32 ## ===========
33 ## = Options =
34 ## ===========
35
36 OPTION(USE_QT4 "Build Qt4-based code" OFF)
37 OPTION(BUILD_EXAMPLES "Build examples" OFF)
38
39 ## ========================
40 ## = Packages and options =
41 ## ========================
42
43 # Prepare header to build shared libs (windows)
44 INCLUDE(GenerateExportHeader)
45
46 # Find ITK and VTK
47 FIND_PACKAGE(ITK REQUIRED)
48 FIND_PACKAGE(VTK REQUIRED)
49
50 INCLUDE(${ITK_USE_FILE})
51 INCLUDE(${VTK_USE_FILE})
52
53 # Do not use itk-vtk glue --> problems ahead!!!
54 IF(ITKVtkGlue_LOADED)
55   MESSAGE(FATAL_ERROR "ITKVtkGlue module is available. Please re-compile your ITK without it. It could lead to nasty compilation problems... Just waiting for Kitware to solve it.")
56 ENDIF(ITKVtkGlue_LOADED)
57
58 SET(QT4_FOUND "0")
59 IF(USE_QT4)
60   FIND_PACKAGE(Qt4 REQUIRED)
61   INCLUDE(${QT_USE_FILE})
62
63   ## Check for required vtk-qt4 modules
64   SET(
65     vtk_required_modules
66     vtkGUISupportQt
67     vtkGUISupportQtOpenGL
68     )
69   FOREACH(vtk_module ${vtk_required_modules})
70     IF(NOT ${vtk_module}_LOADED)
71       MESSAGE(
72         FATAL_ERROR
73         "${vtk_module} module is required but not available."
74         )
75       SET(QT4_FOUND "0")
76     ENDIF(NOT ${vtk_module}_LOADED)
77   ENDFOREACH(vtk_module)
78   SET(QT4_FOUND "1")
79 ENDIF(USE_QT4)
80
81 ## ================================================
82 ## = Do not allow to build inside the source tree =
83 ## ================================================
84
85 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
86   MESSAGE(FATAL_ERROR "Building in the source tree is not allowed.")
87 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
88
89 ## =====================================
90 ## = Where to put executables and libs =
91 ## =====================================
92
93 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
94 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
95 MARK_AS_ADVANCED(
96   CMAKE_BACKWARDS_COMPATIBILITY
97   EXECUTABLE_OUTPUT_PATH
98   LIBRARY_OUTPUT_PATH
99   )
100
101 ## ==============================
102 ## = Subdirs containing headers =
103 ## ==============================
104
105 INCLUDE_DIRECTORIES(
106   ${PROJECT_SOURCE_DIR}/lib
107   ${PROJECT_SOURCE_DIR}/lib/third_party
108   ${PROJECT_SOURCE_DIR}/lib/third_party/ItkVtkGlue
109   ${PROJECT_BINARY_DIR}/lib
110   ${PROJECT_BINARY_DIR}/lib/third_party
111   ${PROJECT_BINARY_DIR}/lib/third_party/ItkVtkGlue
112   )
113 IF(WIN32 OR APPLE)
114   INCLUDE_DIRECTORIES(
115     ${PROJECT_SOURCE_DIR}/lib/third_party/glext
116     )
117 ENDIF(WIN32 OR APPLE)
118
119 ## ===========================
120 ## = Subdirs containing code =
121 ## ===========================
122
123 SUBDIRS(
124   cmake
125   lib
126   appli
127   )
128
129 ## eof - $RCSfile$