X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=CMakeLists.txt;h=93dd1ef88a9b4d8c4f99a417e33e5ae7f2e6dfb4;hb=0eec827392a9544a6e61fce74c5b430c1873f5a2;hp=784115f27307eede4a718bfe13d853bc70f4f685;hpb=02010627b7276dc77962719b3e5be13c2a5b4605;p=cpPlugins.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 784115f..93dd1ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,56 +1,81 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -# for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003") -IF( - COMMAND cmake_policy AND - ${CMAKE_MAJOR_VERSION} EQUAL 2 AND - ${CMAKE_MINOR_VERSION} GREATER 4 - ) - CMAKE_POLICY(SET CMP0003 NEW) - CMAKE_POLICY(SET CMP0005 NEW) - CMAKE_POLICY(SET CMP0011 NEW) - CMAKE_POLICY(SET CMP0012 NEW) -ENDIF( - COMMAND cmake_policy AND - ${CMAKE_MAJOR_VERSION} EQUAL 2 AND - ${CMAKE_MINOR_VERSION} GREATER 4 +## ============ +## = Policies = +## ============ + +SET( + policies + CMP0020 + CMP0042 ) +FOREACH(policy ${policies}) + IF(POLICY ${policy}) + CMAKE_POLICY(SET ${policy} NEW) + ENDIF(POLICY ${policy}) +ENDFOREACH(policy) ## ================ ## = Project name = ## ================ PROJECT(cpPlugins) -SET(cpPlugins_MAJOR_VERSION "0") -SET(cpPlugins_MINOR_VERSION "0") -SET(cpPlugins_RELEASE_VERSION "1") -SET(cpPlugins_VERSION "${cpPlugins_MAJOR_VERSION}.${cpPlugins_MINOR_VERSION}.${cpPlugins_RELEASE_VERSION}") +SET(prj_MAJOR_VERSION "0") +SET(prj_MINOR_VERSION "0") +SET(prj_RELEASE_VERSION "1") +SET( + prj_VERSION + "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}" + ) ## =========== ## = Options = ## =========== +OPTION(USE_QT4 "Build Qt4-based code" OFF) OPTION(BUILD_EXAMPLES "Build examples" OFF) -## ============ -## = Packages = -## ============ +## ======================== +## = Packages and options = +## ======================== +# Prepare header to build shared libs (windows) INCLUDE(GenerateExportHeader) +# Find ITK and VTK FIND_PACKAGE(ITK REQUIRED) -INCLUDE(${ITK_USE_FILE}) - FIND_PACKAGE(VTK REQUIRED) + +INCLUDE(${ITK_USE_FILE}) INCLUDE(${VTK_USE_FILE}) -IF(BUILD_EXAMPLES) - OPTION(USE_QT4 "Build Qt4-based examples" OFF) - IF(USE_QT4) - FIND_PACKAGE(Qt4 REQUIRED) - INCLUDE(${QT_USE_FILE}) - ENDIF(USE_QT4) -ENDIF(BUILD_EXAMPLES) +# Do not use itk-vtk glue --> problems ahead!!! +IF(ITKVtkGlue_LOADED) + 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.") +ENDIF(ITKVtkGlue_LOADED) + +SET(QT4_FOUND "0") +IF(USE_QT4) + FIND_PACKAGE(Qt4 REQUIRED) + INCLUDE(${QT_USE_FILE}) + + ## Check for required vtk-qt4 modules + SET( + vtk_required_modules + vtkGUISupportQt + vtkGUISupportQtOpenGL + ) + FOREACH(vtk_module ${vtk_required_modules}) + IF(NOT ${vtk_module}_LOADED) + MESSAGE( + FATAL_ERROR + "${vtk_module} module is required but not available." + ) + SET(QT4_FOUND "0") + ENDIF(NOT ${vtk_module}_LOADED) + ENDFOREACH(vtk_module) + SET(QT4_FOUND "1") +ENDIF(USE_QT4) ## ================================================ ## = Do not allow to build inside the source tree = @@ -79,9 +104,16 @@ MARK_AS_ADVANCED( INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib ${PROJECT_SOURCE_DIR}/lib/third_party + ${PROJECT_SOURCE_DIR}/lib/third_party/ItkVtkGlue ${PROJECT_BINARY_DIR}/lib ${PROJECT_BINARY_DIR}/lib/third_party + ${PROJECT_BINARY_DIR}/lib/third_party/ItkVtkGlue ) +IF(WIN32 OR APPLE) + INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR}/lib/third_party/glext + ) +ENDIF(WIN32 OR APPLE) ## =========================== ## = Subdirs containing code =