X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=CMakeLists.txt;h=82cc483b450d28c8d0aadc64ea7dc611fb3b86b1;hb=06ace6bbbd569c3ca466699d4adf3c293a2e2bb4;hp=921b89f3020545050f27c5cf18613fc97a13bb2e;hpb=c29448936abc15d110205b2da435035131398a87;p=cpPlugins.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 921b89f..82cc483 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,88 +1,75 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +CMAKE_MINIMUM_REQUIRED(VERSION 3.0) -# 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 - ) - -## ================ -## = 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}") - -## =========== -## = Options = -## =========== +## ======================== +## == Project definition == +## ======================== -OPTION(BUILD_EXAMPLES "Build examples" OFF) +SET(prj_NAME cpPlugins) +SET(prj_MAJOR_VERSION 0) +SET(prj_MINOR_VERSION 1) +SET(prj_RELEASE_VERSION 0) -## ============ -## = Packages = -## ============ +## ========================== +## == Some useful policies == +## ========================== -INCLUDE(GenerateExportHeader) +SET(_policies CMP0015 CMP0020 CMP0042) +FOREACH(_p ${_policies}) + IF(POLICY ${_p}) + CMAKE_POLICY(SET ${_p} NEW) + ENDIF(POLICY ${_p}) +ENDFOREACH(_p) -FIND_PACKAGE(ITK REQUIRED) -INCLUDE(${ITK_USE_FILE}) - -FIND_PACKAGE(VTK REQUIRED) -INCLUDE(${VTK_USE_FILE}) - -## ================================================ -## = Do not allow to build inside the source tree = -## ================================================ +## =========================== +## == Project configuration == +## =========================== -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}) +PROJECT(${prj_NAME}) +SET( + prj_VERSION + "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}" + ) +SET(prj_SHORT_VERSION "${prj_MAJOR_VERSION}") ## ===================================== -## = Where to put executables and libs = +## == Functions, packages and options == ## ===================================== -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 - ) +INCLUDE(cmake/Restrictions.cmake) +INCLUDE(cmake/Options.cmake) +INCLUDE(cmake/Functions.cmake) +INCLUDE(cmake/KitwareTools.cmake) +OPTION(USE_QT4 "Build Qt4-based code" OFF) +INCLUDE(cmake/Qt4Tools.cmake) +IF(USE_QT4) + SET( + cpPlugins_Qt4_VTKWidget QVTKWidget + CACHE STRING "Base Qt4-based vtkRenderWindow" + ) +ENDIF(USE_QT4) -## ============================== -## = Subdirs containing headers = -## ============================== +## =========================== +## == Use all valid subdirs == +## =========================== -INCLUDE_DIRECTORIES( - ${PROJECT_SOURCE_DIR}/lib - ${PROJECT_SOURCE_DIR}/lib/third_party - ${PROJECT_BINARY_DIR}/lib - ${PROJECT_BINARY_DIR}/lib/third_party +SET( + _include_dirs + . + lib + lib/Itk2Vtk + lib/Instances ) +FOREACH(_dir ${_include_dirs}) + INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR}/${_dir} + ${PROJECT_BINARY_DIR}/${_dir} + ) +ENDFOREACH(_dir) ## =========================== -## = Subdirs containing code = +## == Build different parts == ## =========================== -SUBDIRS( - cmake - lib - appli - ) +SUBDIRS(appli cmake lib plugins) ## eof - $RCSfile$