]> Creatis software - cpPlugins.git/blob - CMakeLists.txt
Now ported to macosx and easier to configure on win32... hopefully
[cpPlugins.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2
3 ## ============
4 ## = Policies =
5 ## ============
6
7 SET(
8   policies
9   CMP0020
10   CMP0042
11   )
12 FOREACH(policy ${policies})
13   IF(POLICY ${policy})
14     CMAKE_POLICY(SET ${policy} NEW)
15   ENDIF(POLICY ${policy})
16 ENDFOREACH(policy)
17
18 ## ================
19 ## = Project name =
20 ## ================
21
22 PROJECT(cpPlugins)
23 SET(prj_MAJOR_VERSION   "0")
24 SET(prj_MINOR_VERSION   "0")
25 SET(prj_RELEASE_VERSION "1")
26 SET(
27   prj_VERSION
28   "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}"
29   )
30
31 ## ===========
32 ## = Options =
33 ## ===========
34
35 OPTION(USE_QT4 "Build Qt4-based code" OFF)
36 OPTION(BUILD_EXAMPLES "Build examples" OFF)
37
38 ## ========================
39 ## = Packages and options =
40 ## ========================
41
42 # Prepare header to build shared libs (windows)
43 INCLUDE(GenerateExportHeader)
44
45 # Find ITK and VTK
46 FIND_PACKAGE(ITK REQUIRED)
47 FIND_PACKAGE(VTK REQUIRED)
48
49 INCLUDE(${ITK_USE_FILE})
50 INCLUDE(${VTK_USE_FILE})
51
52 # Do not use itk-vtk glue --> problems ahead!!!
53 IF(ITKVtkGlue_LOADED)
54   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.")
55 ENDIF(ITKVtkGlue_LOADED)
56
57 SET(QT4_FOUND "0")
58 IF(USE_QT4)
59   FIND_PACKAGE(Qt4 REQUIRED)
60   INCLUDE(${QT_USE_FILE})
61
62   ## Check for required vtk-qt4 modules
63   SET(
64     vtk_required_modules
65     vtkGUISupportQt
66     vtkGUISupportQtOpenGL
67     )
68   FOREACH(vtk_module ${vtk_required_modules})
69     IF(NOT ${vtk_module}_LOADED)
70       MESSAGE(
71         FATAL_ERROR
72         "${vtk_module} module is required but not available."
73         )
74       SET(QT4_FOUND "0")
75     ENDIF(NOT ${vtk_module}_LOADED)
76   ENDFOREACH(vtk_module)
77   SET(QT4_FOUND "1")
78 ENDIF(USE_QT4)
79
80 ## ================================================
81 ## = Do not allow to build inside the source tree =
82 ## ================================================
83
84 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
85   MESSAGE(FATAL_ERROR "Building in the source tree is not allowed")
86 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
87
88 ## =====================================
89 ## = Where to put executables and libs =
90 ## =====================================
91
92 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
93 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
94 MARK_AS_ADVANCED(
95   CMAKE_BACKWARDS_COMPATIBILITY
96   EXECUTABLE_OUTPUT_PATH
97   LIBRARY_OUTPUT_PATH
98   )
99
100 ## ==============================
101 ## = Subdirs containing headers =
102 ## ==============================
103
104 INCLUDE_DIRECTORIES(
105   ${PROJECT_SOURCE_DIR}/lib
106   ${PROJECT_SOURCE_DIR}/lib/third_party
107   ${PROJECT_SOURCE_DIR}/lib/third_party/ItkVtkGlue
108   ${PROJECT_BINARY_DIR}/lib
109   ${PROJECT_BINARY_DIR}/lib/third_party
110   ${PROJECT_BINARY_DIR}/lib/third_party/ItkVtkGlue
111   )
112 IF(WIN32 OR APPLE)
113   INCLUDE_DIRECTORIES(
114     ${PROJECT_SOURCE_DIR}/lib/third_party/glext
115     )
116 ENDIF(WIN32 OR APPLE)
117
118 ## ===========================
119 ## = Subdirs containing code =
120 ## ===========================
121
122 SUBDIRS(
123   cmake
124   lib
125   appli
126   )
127
128 ## eof - $RCSfile$