X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=CMakeLists.txt;h=fec6ee28db555f66b26e333dc251052ae917ed65;hb=a993dd7dc7f3154d00eed3d3a4796fb9e3ff582d;hp=84bf1fa26fec2072b04df56f48d037dead74f57e;hpb=5f47a505e9f60876a0e8b5c982018ab638d312c8;p=FrontAlgorithms.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 84bf1fa..fec6ee2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,105 +1,61 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +CMAKE_MINIMUM_REQUIRED(VERSION 3.0) -## ============ -## = Policies = -## ============ +## ======================== +## == Project definition == +## ======================== -SET( - policies - CMP0015 - CMP0020 - CMP0042 - ) -FOREACH(policy ${policies}) - IF(POLICY ${policy}) - CMAKE_POLICY(SET ${policy} NEW) - ENDIF(POLICY ${policy}) -ENDFOREACH(policy) - -## ================ -## = Project name = -## ================ - -PROJECT(FrontAlgorithms) -SET(FrontAlgorithms_MAJOR_VERSION "0") -SET(FrontAlgorithms_MINOR_VERSION "0") -SET(FrontAlgorithms_RELEASE_VERSION "1") -SET(FrontAlgorithms_VERSION "${FrontAlgorithms_MAJOR_VERSION}.${FrontAlgorithms_MINOR_VERSION}.${FrontAlgorithms_RELEASE_VERSION}") - -## =========== -## = Options = -## =========== - -OPTION(BUILD_EXAMPLES "Build examples" OFF) -OPTION(BUILD_SHARED_LIBS "Build shared libs" OFF) +SET(prj_NAME FrontAlgorithms) +SET(prj_MAJOR_VERSION 0) +SET(prj_MINOR_VERSION 1) +SET(prj_RELEASE_VERSION 0) -IF(BUILD_SHARED_LIBS) - SET(LIB_TYPE SHARED) -ELSE(BUILD_SHARED_LIBS) - SET(LIB_TYPE STATIC) -ENDIF(BUILD_SHARED_LIBS) +## ========================== +## == Some useful policies == +## ========================== -## ============ -## = Packages = -## ============ +SET(_policies CMP0015 CMP0020 CMP0042) +FOREACH(_p ${_policies}) + IF(POLICY ${_p}) + CMAKE_POLICY(SET ${_p} NEW) + ENDIF(POLICY ${_p}) +ENDFOREACH(_p) -# Prepare header to build shared libs (windows) -INCLUDE(GenerateExportHeader) - -# Find ITK and VTK -FIND_PACKAGE(ITK REQUIRED) -FIND_PACKAGE(VTK REQUIRED) +## =========================== +## == Project configuration == +## =========================== -INCLUDE(${ITK_USE_FILE}) -INCLUDE(${VTK_USE_FILE}) +PROJECT(${prj_NAME}) +SET( + prj_VERSION + "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}" + ) +SET(prj_SHORT_VERSION "${prj_MAJOR_VERSION}") -# 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) +## ===================================== +## == Functions, packages and options == +## ===================================== -OPTION(USE_cpPlugins "Build cpPlugins based stuff" OFF) +INCLUDE(cmake/Restrictions.cmake) +INCLUDE(cmake/KitwareTools.cmake) +OPTION(USE_cpPlugins "Build cpPlugins-based code" OFF) IF(USE_cpPlugins) FIND_PACKAGE(cpPlugins REQUIRED) + IF(USE_QT4) + INCLUDE(cmake/QtTools.cmake) + SET( + cpPlugins_Qt4_VTKWidget QVTKWidget + CACHE STRING "Base Qt4-based vtkRenderWindow" + ) + MARK_AS_ADVANCED(FORCE cpPlugins_Qt4_VTKWidget) + ENDIF(USE_QT4) ENDIF(USE_cpPlugins) - -## ================================================ -## = Do not allow to build inside the source tree = -## ================================================ - -IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR}) - MESSAGE(FATAL_ERROR "Building in the source tree is not allowed") -ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR}) - -## ===================================== -## = Where to put executables and libs = -## ===================================== - -SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}) -SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}) -MARK_AS_ADVANCED( - CMAKE_BACKWARDS_COMPATIBILITY - EXECUTABLE_OUTPUT_PATH - LIBRARY_OUTPUT_PATH - ) - -## ============================== -## = Subdirs containing headers = -## ============================== - -INCLUDE_DIRECTORIES( - ${PROJECT_SOURCE_DIR}/lib - ${PROJECT_BINARY_DIR}/lib - ) +INCLUDE(cmake/Functions.cmake) ## =========================== -## = Subdirs containing code = +## == Build different parts == ## =========================== -SUBDIRS( - cmake - lib - appli - ) +## SUBDIRS(appli cmake lib plugins) +SUBDIRS(lib) ## eof - $RCSfile$