]> Creatis software - cpPlugins.git/blob - cmake/cpPlgInstallCommands.cmake
...
[cpPlugins.git] / cmake / cpPlgInstallCommands.cmake
1 ## =========================================================================
2 ## @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 ## =========================================================================
4
5 ## =========================
6 ## == Installation values ==
7 ## =========================
8
9 set(config_install_dir "lib/cmake/${PROJECT_NAME}")
10 set(include_install_dir "include")
11 set(generated_dir "${PROJECT_BINARY_DIR}/generated")
12 set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
13 set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
14 set(targets_export_name "${PROJECT_NAME}Targets")
15 set(namespace "${PROJECT_NAME}::")
16
17 ## ===============================
18 ## == Global installation rules ==
19 ## ===============================
20
21 include(CMakePackageConfigHelpers)
22 write_basic_package_version_file(
23   "${version_config}" COMPATIBILITY SameMajorVersion
24   )
25 configure_package_config_file(
26   "cmake/${PROJECT_NAME}Config.cmake.in"
27   "${project_config}"
28   INSTALL_DESTINATION "${config_install_dir}"
29   )
30 install(
31   FILES "${project_config}"
32   DESTINATION "${config_install_dir}"
33   )
34 if(${PROJECT_NAME}_BUILD)
35   install(
36     EXPORT "${targets_export_name}"
37     NAMESPACE "${namespace}"
38     DESTINATION "${config_install_dir}"
39     )
40 endif(${PROJECT_NAME}_BUILD)
41
42 ## ======================
43 ## == Uninstall target ==
44 ## ======================
45
46 configure_file(
47   "${PROJECT_SOURCE_DIR}/cmake/cpPlgUninstall.cmake.in"
48   "${PROJECT_BINARY_DIR}/cmake/cpPlgUninstall.cmake"
49   IMMEDIATE @ONLY
50   )
51 add_custom_target(
52   uninstall
53   COMMAND ${CMAKE_COMMAND} -P ${PROJECT_BINARY_DIR}/cmake/cpPlgUninstall.cmake
54   )
55
56
57 ## eof - $RCSfile$