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
23 PROJECT(FrontAlgorithms)
24 SET(FrontAlgorithms_MAJOR_VERSION "0")
25 SET(FrontAlgorithms_MINOR_VERSION "0")
26 SET(FrontAlgorithms_RELEASE_VERSION "1")
27 SET(FrontAlgorithms_VERSION "${FrontAlgorithms_MAJOR_VERSION}.${FrontAlgorithms_MINOR_VERSION}.${FrontAlgorithms_RELEASE_VERSION}")
33 OPTION(BUILD_EXAMPLES "Build examples" OFF)
34 OPTION(BUILD_SHARED_LIBS "Build shared libs" OFF)
38 ELSE(BUILD_SHARED_LIBS)
40 ENDIF(BUILD_SHARED_LIBS)
46 INCLUDE(GenerateExportHeader)
48 ## -------------------------------------------------------------------------
49 ## If compiling on UNIX-like OS, an error could arise when using ITKVtkGlue:
51 ## <command-line>:0:0: warning: "vtkRenderingCore_AUTOINIT" redefined
52 ## <command-line>:0:0: note: this is the location of the previous definition
54 ## This is avoided by not including the VTK_USE_FILE. Nevertheless, this fails
57 ## This is due to object factories. To avoid this, and let the project be
58 ## usable on UNIX-like and MS-Win, the way to find ITK and VTK differs
59 ## -------------------------------------------------------------------------
62 FIND_PACKAGE(ITK REQUIRED)
63 FIND_PACKAGE(VTK REQUIRED)
64 INCLUDE(${ITK_USE_FILE})
65 IF(NOT ITKVtkGlue_LOADED)
66 MESSAGE(FATAL_ERROR "ITKVtkGlue module is required but not available.")
67 ENDIF(NOT ITKVtkGlue_LOADED)
69 FIND_PACKAGE(ITK REQUIRED)
70 INCLUDE(${ITK_USE_FILE})
72 FIND_PACKAGE(VTK REQUIRED)
73 INCLUDE(${VTK_USE_FILE})
74 ELSE(ITKVtkGlue_LOADED)
75 FIND_PACKAGE(ItkVtkGlue REQUIRED)
76 INCLUDE(${ItkVtkGlue_USE_FILE})
78 ENDIF(ITKVtkGlue_LOADED)
81 OPTION(USE_cpPlugins "Build cpPlugins based stuff" OFF)
83 FIND_PACKAGE(cpPlugins REQUIRED)
86 ## ================================================
87 ## = Do not allow to build inside the source tree =
88 ## ================================================
90 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
91 MESSAGE(FATAL_ERROR "Building in the source tree is not allowed")
92 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
94 ## =====================================
95 ## = Where to put executables and libs =
96 ## =====================================
98 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
99 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
101 CMAKE_BACKWARDS_COMPATIBILITY
102 EXECUTABLE_OUTPUT_PATH
106 ## ==============================
107 ## = Subdirs containing headers =
108 ## ==============================
111 ${PROJECT_SOURCE_DIR}/lib
112 ${PROJECT_BINARY_DIR}/lib
115 ## ===========================
116 ## = Subdirs containing code =
117 ## ===========================