1 cmake_minimum_required(VERSION 3.0)
3 ## ========================
4 ## == Project definition ==
5 ## ========================
10 set(prj_VERSION "${prj_MAJ_VERSION}.${prj_MIN_VERSION}.${prj_REL_VERSION}")
11 set(prj_SHORT_VERSION "${prj_MAJ_VERSION}")
12 project(fpa VERSION ${prj_VERSION})
14 ## ==========================
15 ## == Some useful policies ==
16 ## ==========================
18 set(_policies CMP0015 CMP0020 CMP0042 CMP0053)
19 foreach(_p ${_policies})
21 cmake_policy(SET ${_p} NEW)
25 ## ===============================
26 ## == Some basic configurations ==
27 ## ===============================
29 include(cmake/fpaBaseConfig.cmake)
31 ## ==========================
32 ## == Find needed packages ==
33 ## ==========================
35 find_package(ivq CONFIG QUIET)
37 find_package(ITK CONFIG REQUIRED)
38 include(${ITK_USE_FILE})
41 ## =========================
42 ## == Installation values ==
43 ## =========================
45 set(config_install_dir "lib/cmake/${PROJECT_NAME}")
46 set(include_install_dir "include")
47 set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
48 set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
49 set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
50 set(targets_export_name "${PROJECT_NAME}Targets")
51 set(namespace "${PROJECT_NAME}::")
53 ## ===========================
54 ## == Build different parts ==
55 ## ===========================
59 ## ===============================
60 ## == Global installation rules ==
61 ## ===============================
63 include(CMakePackageConfigHelpers)
64 write_basic_package_version_file(
65 "${version_config}" COMPATIBILITY SameMajorVersion
67 configure_package_config_file(
68 "cmake/${PROJECT_NAME}Config.cmake.in"
70 INSTALL_DESTINATION "${config_install_dir}"
76 "${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}BaseConfig.cmake"
77 DESTINATION "${config_install_dir}"
80 EXPORT "${targets_export_name}"
81 NAMESPACE "${namespace}"
82 DESTINATION "${config_install_dir}"