X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=CMakeLists.txt;h=6b7dd54a0e7a3e89eb4446f6407656e4be0a6d4e;hb=617f49bff4a6db5ed51b4f767c3634d1915fdced;hp=aab256e1837bbca2bc33b69b08253b5c7267785b;hpb=14bfa97aef83c54e1cf3813594bd9ae03f23f7f5;p=FrontAlgorithms.git diff --git a/CMakeLists.txt b/CMakeLists.txt index aab256e..6b7dd54 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,54 +1,82 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.0) +cmake_minimum_required(VERSION 3.0) ## ======================== ## == Project definition == ## ======================== -SET(prj_NAME FrontAlgorithms) -SET(prj_MAJOR_VERSION 1) -SET(prj_MINOR_VERSION 0) -SET(prj_RELEASE_VERSION 0) -SET(_subdirs examples) # lib plugins) -SET(_policies CMP0015 CMP0020 CMP0042) +set(prj_MAJ_VERSION 0) +set(prj_MIN_VERSION 1) +set(prj_REL_VERSION 0) +set(prj_VERSION "${prj_MAJ_VERSION}.${prj_MIN_VERSION}.${prj_REL_VERSION}") +set(prj_SHORT_VERSION "${prj_MAJ_VERSION}") +project(fpa VERSION ${prj_VERSION}) ## ========================== ## == Some useful policies == ## ========================== -FOREACH(_p ${_policies}) - IF(POLICY ${_p}) - CMAKE_POLICY(SET ${_p} NEW) - ENDIF(POLICY ${_p}) -ENDFOREACH(_p) +set(_policies CMP0015 CMP0020 CMP0042 CMP0053) +foreach(_p ${_policies}) + if(POLICY ${_p}) + cmake_policy(SET ${_p} NEW) + endif(POLICY ${_p}) +endforeach(_p) -## =========================== -## == Project configuration == -## =========================== +## =============================== +## == Some basic configurations == +## =============================== + +include(cmake/fpaBaseConfig.cmake) -PROJECT(${prj_NAME}) -SET(prj_VERSION "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}") -SET(prj_SHORT_VERSION "${prj_MAJOR_VERSION}") +## ============== +## == Find ITK == +## ============== -## ===================================== -## == Functions, packages and options == -## ===================================== +find_package(ITK CONFIG REQUIRED) +include(${ITK_USE_FILE}) -INCLUDE(cmake/BaseConfig.cmake) -INCLUDE(cmake/KitwareTools.cmake) -#OPTION(USE_cpPlugins "Build cpPlugins-based code" OFF) -#IF(USE_cpPlugins) -# FIND_PACKAGE(cpPlugins) -# MARK_AS_ADVANCED(CLEAR cpPlugins_DIR) -#ENDIF(USE_cpPlugins) -#INCLUDE(cmake/QtTools.cmake) -#INCLUDE(cmake/Functions.cmake) +## ========================= +## == Installation values == +## ========================= + +set(config_install_dir "lib/cmake/${PROJECT_NAME}") +set(include_install_dir "include") +set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") +set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake") +set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") +set(targets_export_name "${PROJECT_NAME}Targets") +set(namespace "${PROJECT_NAME}::") ## =========================== ## == Build different parts == ## =========================== -FOREACH(_s ${_subdirs}) - SUBDIRS(${_s}) -ENDFOREACH(_s) +subdirs(lib) + +## =============================== +## == Global installation rules == +## =============================== + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${version_config}" COMPATIBILITY SameMajorVersion + ) +configure_package_config_file( + "cmake/${PROJECT_NAME}Config.cmake.in" + "${project_config}" + INSTALL_DESTINATION "${config_install_dir}" + ) +install( + FILES + "${project_config}" + "${version_config}" + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/fpaBaseConfig.cmake" + DESTINATION "${config_install_dir}" + ) +#install( +# EXPORT "${targets_export_name}" +# NAMESPACE "${namespace}" +# DESTINATION "${config_install_dir}" +# ) ## eof - $RCSfile$