|
1 | 1 | cmake_minimum_required(VERSION 3.1) |
2 | 2 |
|
3 | | -project(argh) |
| 3 | +project(argh VERSION 1.3.1) |
| 4 | +set(PROJECT_DESCRIPTION "A minimalist argument handler.") |
| 5 | +set(PROJECT_HOMEPAGE_URL "https://github.com/adishavit/argh") |
4 | 6 |
|
5 | 7 | set(CMAKE_CXX_STANDARD 11) |
6 | 8 |
|
@@ -35,20 +37,54 @@ add_library(argh INTERFACE) |
35 | 37 | target_include_directories(argh INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:include>) |
36 | 38 |
|
37 | 39 | if(ARGH_MASTER_PROJECT) |
38 | | - install(TARGETS argh EXPORT arghTargets) |
| 40 | + install(TARGETS argh EXPORT argh) |
39 | 41 |
|
40 | 42 | include(GNUInstallDirs) |
| 43 | + string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}") |
41 | 44 | install(FILES "${CMAKE_CURRENT_LIST_DIR}/argh.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) |
42 | 45 | install(FILES "${CMAKE_CURRENT_LIST_DIR}/LICENSE" DESTINATION ${CMAKE_INSTALL_DOCDIR}) |
43 | 46 | install(FILES "${CMAKE_CURRENT_LIST_DIR}/README.md" DESTINATION ${CMAKE_INSTALL_DOCDIR}) |
| 47 | + set(PackagingTemplatesDir "${CMAKE_CURRENT_LIST_DIR}/packaging") |
44 | 48 |
|
45 | 49 | if(CMAKE_SYSTEM_NAME STREQUAL Linux) |
46 | 50 | # this might be a bit too restrictive, since for other (BSD, ...) this might apply also |
47 | 51 | # but this can be fixed later in extra pull requests from people on the platform |
48 | | - install(FILES argh-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/argh) |
49 | | - install(EXPORT arghTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/argh) |
| 52 | + install(FILES "${PackagingTemplatesDir}/argh-config.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/argh) |
| 53 | + install(EXPORT argh DESTINATION ${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/argh) |
50 | 54 | else() |
51 | | - install(FILES argh-config.cmake DESTINATION CMake) |
52 | | - install(EXPORT arghTargets DESTINATION CMake) |
| 55 | + install(FILES "${PackagingTemplatesDir}/argh-config.cmake" DESTINATION CMake) |
| 56 | + install(EXPORT argh DESTINATION CMake) |
53 | 57 | endif() |
| 58 | + |
| 59 | + set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") |
| 60 | + set(CPACK_PACKAGE_VENDOR "Argh developers") |
| 61 | + set(CPACK_PACKAGE_DESCRIPTION "${PROJECT_DESCRIPTION}") |
| 62 | + set(CPACK_DEBIAN_PACKAGE_NAME "${CPACK_PACKAGE_NAME}") |
| 63 | + set(CPACK_RPM_PACKAGE_NAME "${CPACK_PACKAGE_NAME}") |
| 64 | + set(CPACK_PACKAGE_HOMEPAGE_URL "${PROJECT_HOMEPAGE_URL}") |
| 65 | + set(CPACK_PACKAGE_MAINTAINER "${CPACK_PACKAGE_VENDOR}") |
| 66 | + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_MAINTAINER}") |
| 67 | + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") |
| 68 | + set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") |
| 69 | + |
| 70 | + set(CPACK_DEBIAN_PACKAGE_NAME "lib${PROJECT_NAME}-dev") |
| 71 | + set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6-dev") |
| 72 | + set(CPACK_DEBIAN_PACKAGE_SUGGESTS "cmake, pkg-config, pkg-conf") |
| 73 | + |
| 74 | + set(CPACK_RPM_PACKAGE_NAME "lib${PROJECT_NAME}-devel") |
| 75 | + set(CPACK_RPM_PACKAGE_SUGGESTS "${CPACK_DEBIAN_PACKAGE_SUGGESTS}") |
| 76 | + |
| 77 | + set(CPACK_DEB_COMPONENT_INSTALL ON) |
| 78 | + set(CPACK_RPM_COMPONENT_INSTALL ON) |
| 79 | + set(CPACK_NSIS_COMPONENT_INSTALL ON) |
| 80 | + set(CPACK_DEBIAN_COMPRESSION_TYPE "xz") |
| 81 | + |
| 82 | + set(PKG_CONFIG_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc") |
| 83 | + message(STATUS "PROJECT_DESCRIPTION ${PROJECT_DESCRIPTION}") |
| 84 | + configure_file("${PackagingTemplatesDir}/pkgconfig.pc.in" "${PKG_CONFIG_FILE_NAME}" @ONLY) |
| 85 | + install(FILES "${PKG_CONFIG_FILE_NAME}" |
| 86 | + DESTINATION "${CMAKE_INSTALL_LIBDIR_ARCHIND}/pkgconfig" |
| 87 | + ) |
| 88 | + |
| 89 | + include(CPack) |
54 | 90 | endif() |
0 commit comments