1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
13 FOREACH(policy ${policies})
15 CMAKE_POLICY(SET ${policy} NEW)
16 ENDIF(POLICY ${policy})
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 OPTION(BUILD_SHARED_LIBRARIES "Build libraries as shared" OFF)
40 IF(BUILD_SHARED_LIBRARIES)
41 SET(LIBRARY_TYPE SHARED)
42 ELSE(BUILD_SHARED_LIBRARIES)
43 SET(LIBRARY_TYPE STATIC)
44 ENDIF(BUILD_SHARED_LIBRARIES)
46 ## ========================
47 ## = Packages and options =
48 ## ========================
50 # it seems that by default on Visual Studio Compiler supports c++11, so it only need to be test on other O.S.
52 INCLUDE(CheckCXXCompilerFlag)
53 CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
54 CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
55 IF(COMPILER_SUPPORTS_CXX11)
56 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
57 ELSEIF(COMPILER_SUPPORTS_CXX0X)
58 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
60 MESSAGE(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
64 # Prepare header to build shared libs (windows)
65 INCLUDE(GenerateExportHeader)
68 FIND_PACKAGE(ITK REQUIRED)
69 FIND_PACKAGE(VTK REQUIRED)
71 INCLUDE(${ITK_USE_FILE})
72 INCLUDE(${VTK_USE_FILE})
74 # Do not use itk-vtk glue --> problems ahead!!!
76 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.")
77 ENDIF(ITKVtkGlue_LOADED)
81 FIND_PACKAGE(Qt4 REQUIRED)
82 INCLUDE(${QT_USE_FILE})
84 ## Check for required vtk-qt4 modules
90 FOREACH(vtk_module ${vtk_required_modules})
91 IF(NOT ${vtk_module}_LOADED)
94 "${vtk_module} module is required but not available."
97 ENDIF(NOT ${vtk_module}_LOADED)
98 ENDFOREACH(vtk_module)
102 ## ================================================
103 ## = Do not allow to build inside the source tree =
104 ## ================================================
106 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
107 MESSAGE(FATAL_ERROR "Building in the source tree is not allowed.")
108 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
110 ## =====================================
111 ## = Where to put executables and libs =
112 ## =====================================
114 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
115 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
117 CMAKE_BACKWARDS_COMPATIBILITY
118 EXECUTABLE_OUTPUT_PATH
122 ## ==============================
123 ## = Subdirs containing headers =
124 ## ==============================
127 ${PROJECT_SOURCE_DIR}/lib
128 ${PROJECT_SOURCE_DIR}/lib/third_party
129 ${PROJECT_SOURCE_DIR}/lib/third_party/ItkVtkGlue
130 ${PROJECT_BINARY_DIR}/lib
131 ${PROJECT_BINARY_DIR}/lib/third_party
132 ${PROJECT_BINARY_DIR}/lib/third_party/ItkVtkGlue
136 ${PROJECT_SOURCE_DIR}/lib/third_party/glext
138 ENDIF(WIN32 OR APPLE)
140 ## =======================
141 ## = Local bash commands =
142 ## =======================
148 FOREACH(prog ${bash_PROGRAMS})
150 SET(${prog}_APP ${PROJECT_BINARY_DIR}/$(ConfigurationName)/${prog})
152 SET(${prog}_APP ${PROJECT_BINARY_DIR}/${prog})
156 ## ===========================
157 ## = Subdirs containing code =
158 ## ===========================