]> Creatis software - cpPlugins.git/blob - CMakeLists.txt
ITK-VTK-Qt4-CMake coordination/factory problem finally solvedgit status!
[cpPlugins.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
2
3 IF(POLICY CMP0020)
4   CMAKE_POLICY(SET CMP0020 NEW)
5 ENDIF(POLICY CMP0020)
6
7 ## ================
8 ## = Project name =
9 ## ================
10
11 PROJECT(cpPlugins)
12 SET(prj_MAJOR_VERSION   "0")
13 SET(prj_MINOR_VERSION   "0")
14 SET(prj_RELEASE_VERSION "1")
15 SET(
16   prj_VERSION
17   "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}"
18   )
19
20 ## ===========
21 ## = Options =
22 ## ===========
23
24 OPTION(USE_QT4 "Build Qt4-based code" OFF)
25 OPTION(BUILD_EXAMPLES "Build examples" OFF)
26
27 ## ========================
28 ## = Packages and options =
29 ## ========================
30
31 INCLUDE(GenerateExportHeader)
32
33 FIND_PACKAGE(ITK REQUIRED)
34 INCLUDE(${ITK_USE_FILE})
35
36 FIND_PACKAGE(VTK REQUIRED)
37 INCLUDE(${VTK_USE_FILE})
38
39 IF(ITKVtkGlue_LOADED)
40   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.")
41 ENDIF(ITKVtkGlue_LOADED)
42
43
44 IF(USE_QT4)
45   FIND_PACKAGE(Qt4 REQUIRED)
46   INCLUDE(${QT_USE_FILE})
47
48   ## Check for required modules
49   IF(NOT vtkGUISupportQt_LOADED)
50     MESSAGE(
51       FATAL_ERROR
52       "vtkGUISupportQt module is required but not available."
53       )
54   ENDIF(NOT vtkGUISupportQt_LOADED)
55   IF(NOT vtkGUISupportQtOpenGL_LOADED)
56     MESSAGE(
57       FATAL_ERROR
58       "vtkGUISupportQtOpenGL module is required but not available."
59       )
60   ENDIF(NOT vtkGUISupportQtOpenGL_LOADED)
61 ENDIF(USE_QT4)
62
63 ## ================================================
64 ## = Do not allow to build inside the source tree =
65 ## ================================================
66
67 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
68   MESSAGE(FATAL_ERROR "Building in the source tree is not allowed")
69 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
70
71 ## =====================================
72 ## = Where to put executables and libs =
73 ## =====================================
74
75 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
76 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
77 MARK_AS_ADVANCED(
78   CMAKE_BACKWARDS_COMPATIBILITY
79   EXECUTABLE_OUTPUT_PATH
80   LIBRARY_OUTPUT_PATH
81   )
82
83 ## ==============================
84 ## = Subdirs containing headers =
85 ## ==============================
86
87 INCLUDE_DIRECTORIES(
88   ${PROJECT_SOURCE_DIR}/lib
89   ${PROJECT_SOURCE_DIR}/lib/third_party
90   ${PROJECT_SOURCE_DIR}/lib/third_party/ItkVtkGlue
91   ${PROJECT_BINARY_DIR}/lib
92   ${PROJECT_BINARY_DIR}/lib/third_party
93   ${PROJECT_BINARY_DIR}/lib/third_party/ItkVtkGlue
94   )
95 IF(WIN32)
96   INCLUDE_DIRECTORIES(
97     ${PROJECT_SOURCE_DIR}/lib/third_party/glext
98     )
99 ENDIF(WIN32)
100
101 ## ===========================
102 ## = Subdirs containing code =
103 ## ===========================
104
105 SUBDIRS(
106   cmake
107   lib
108   appli
109   )
110
111 ## eof - $RCSfile$