X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=CMakeLists.txt;h=914bfe6f8eae3800ffef4c315688f0399fcf0108;hb=41bb8ed7b212665b08d71ed2e550c6973105aec6;hp=8a9e36797f9e5458585ce21e61dfac2852b59d2a;hpb=8fafb83c41ab35dfc25eb637170882a612924433;p=FrontAlgorithms.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a9e367..914bfe6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,110 +1,69 @@ -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(prj_MAJ_VER "0") -SET(prj_MIN_VER "0") -SET(prj_REL_VER "1") -SET(prj_VER "${prj_MAJ_VER}.${prj_MIN_VER}.${prj_REL_VER}") -SET(prj_sVER "${prj_MAJ_VER}") - -## =========== -## = Options = -## =========== +SET(prj_NAME FrontAlgorithms) +SET(prj_MAJOR_VERSION 0) +SET(prj_MINOR_VERSION 1) +SET(prj_RELEASE_VERSION 0) -OPTION(BUILD_EXAMPLES "Build examples" OFF) -OPTION(BUILD_PLUGINS "Build plugins" OFF) +## ========================== +## == 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) -# NOTE: It seems that by default on Visual Studio Compiler supports c++11, -# so it only need to be test on other O.S. -IF(NOT MSVC) - INCLUDE(CheckCXXCompilerFlag) - CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) - CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) - IF(COMPILER_SUPPORTS_CXX11) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") - ELSEIF(COMPILER_SUPPORTS_CXX0X) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") - ELSE() - MESSAGE(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") - ENDIF() -ENDIF(NOT MSVC) - -# Prepare header to build shared libs (windows) -INCLUDE(GenerateExportHeader) - -# Find cpPlugins -FIND_PACKAGE(cpPlugins REQUIRED) - -## ================================================ -## = 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 - ) - -## ============================== -## = Subdirs containing headers = -## ============================== - -INCLUDE_DIRECTORIES( - ${PROJECT_SOURCE_DIR} - ${PROJECT_BINARY_DIR} - ${PROJECT_SOURCE_DIR}/lib - ${PROJECT_BINARY_DIR}/lib - ${PROJECT_SOURCE_DIR}/plugins - ${PROJECT_BINARY_DIR}/plugins - ) +INCLUDE(cmake/DetectOS.cmake) +INCLUDE(cmake/Restrictions.cmake) +INCLUDE(cmake/Functions.cmake) +INCLUDE(cmake/KitwareTools.cmake) +INCLUDE(cmake/Options.cmake) ## =========================== -## = Subdirs containing code = +## == Use all valid subdirs == ## =========================== -SUBDIRS( - cmake +SET( + _include_dirs + . lib - appli ) -IF(BUILD_PLUGINS) - SUBDIRS( - plugins +IF(USE_cpPlugins) + LIST(APPEND _include_dirs lib/Instances) +ENDIF(USE_cpPlugins) +FOREACH(_dir ${_include_dirs}) + INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR}/${_dir} + ${PROJECT_BINARY_DIR}/${_dir} ) -ENDIF(BUILD_PLUGINS) +ENDFOREACH(_dir) + +## ======================== +## == Manage source code == +## ======================== + +SUBDIRS(cmake lib plugins appli) ## eof - $RCSfile$