1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 # for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003")
5 COMMAND cmake_policy AND
6 ${CMAKE_MAJOR_VERSION} EQUAL 2 AND
7 ${CMAKE_MINOR_VERSION} GREATER 4
9 CMAKE_POLICY(SET CMP0003 NEW)
10 CMAKE_POLICY(SET CMP0005 NEW)
11 CMAKE_POLICY(SET CMP0011 NEW)
12 CMAKE_POLICY(SET CMP0012 NEW)
14 COMMAND cmake_policy AND
15 ${CMAKE_MAJOR_VERSION} EQUAL 2 AND
16 ${CMAKE_MINOR_VERSION} GREATER 4
24 SET(prj_MAJOR_VERSION "0")
25 SET(prj_MINOR_VERSION "0")
26 SET(prj_RELEASE_VERSION "1")
29 "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}"
36 OPTION(USE_QT4 "Build Qt4-based code" OFF)
37 OPTION(BUILD_EXAMPLES "Build examples" OFF)
39 ## ========================
40 ## = Packages and options =
41 ## ========================
43 INCLUDE(GenerateExportHeader)
45 ## -------------------------------------------------------------------------
46 ## If compiling on UNIX-like OS, an error could arise when using ITKVtkGlue:
48 ## <command-line>:0:0: warning: "vtkRenderingCore_AUTOINIT" redefined
49 ## <command-line>:0:0: note: this is the location of the previous definition
51 ## This is avoided by not including the VTK_USE_FILE. Nevertheless, this fails
54 ## This is due to object factories. To avoid this, and let the project be
55 ## usable on UNIX-like and MS-Win, the way to find ITK and VTK differs
56 ## -------------------------------------------------------------------------
59 FIND_PACKAGE(ITK REQUIRED)
60 FIND_PACKAGE(VTK REQUIRED)
61 INCLUDE(${ITK_USE_FILE})
62 IF(NOT ITKVtkGlue_LOADED)
63 MESSAGE(FATAL_ERROR "ITKVtkGlue module is required but not available.")
64 ENDIF(NOT ITKVtkGlue_LOADED)
66 FIND_PACKAGE(ITK REQUIRED)
67 INCLUDE(${ITK_USE_FILE})
69 FIND_PACKAGE(VTK REQUIRED)
70 INCLUDE(${VTK_USE_FILE})
71 ELSE(ITKVtkGlue_LOADED)
72 FIND_PACKAGE(ItkVtkGlue REQUIRED)
73 INCLUDE(${ItkVtkGlue_USE_FILE})
75 ENDIF(ITKVtkGlue_LOADED)
79 FIND_PACKAGE(Qt4 REQUIRED)
80 INCLUDE(${QT_USE_FILE})
82 ## Check for required modules
83 IF(NOT vtkGUISupportQt_LOADED)
86 "vtkGUISupportQt module is required but not available."
88 ENDIF(NOT vtkGUISupportQt_LOADED)
89 IF(NOT vtkGUISupportQtOpenGL_LOADED)
92 "vtkGUISupportQtOpenGL module is required but not available."
94 ENDIF(NOT vtkGUISupportQtOpenGL_LOADED)
97 ## ================================================
98 ## = Do not allow to build inside the source tree =
99 ## ================================================
101 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
102 MESSAGE(FATAL_ERROR "Building in the source tree is not allowed")
103 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
105 ## =====================================
106 ## = Where to put executables and libs =
107 ## =====================================
109 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
110 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
112 CMAKE_BACKWARDS_COMPATIBILITY
113 EXECUTABLE_OUTPUT_PATH
117 ## ==============================
118 ## = Subdirs containing headers =
119 ## ==============================
122 ${PROJECT_SOURCE_DIR}/lib
123 ${PROJECT_SOURCE_DIR}/lib/third_party
124 ${PROJECT_BINARY_DIR}/lib
125 ${PROJECT_BINARY_DIR}/lib/third_party
129 ${PROJECT_SOURCE_DIR}/lib/third_party/glext
133 ## ===========================
134 ## = Subdirs containing code =
135 ## ===========================