1
0
Fork 0
mirror of https://github.com/eosswedenorg/antelope-keygen synced 2026-06-16 03:44:56 +02:00

CMake: new CPack structure with config defined in sub directories.

This commit is contained in:
Henrik Hautakoski 2020-04-21 14:22:42 +02:00
parent 884f8a6125
commit 4a83b06ef2
7 changed files with 101 additions and 37 deletions

View file

@ -75,6 +75,29 @@ endif()
configure_file(config.hpp.in "${PROJECT_BINARY_DIR}/config.hpp" @ONLY)
include_directories(${PROJECT_BINARY_DIR})
# --------------------------------
# Install
# --------------------------------
# Readme and license
install(FILES README.md ${PROJECT_LICENSE_FILE}
DESTINATION ${CMAKE_INSTALL_SHAREDIR})
# --------------------------------
# Package
# --------------------------------
include(CPackConfig)
set( CPACK_COMPONENTS_ALL cli gui )
if (CPACK_GENERATOR MATCHES "^[Nn][Ss][Ii][Ss]$")
set( CPACK_RESOURCE_FILE_LICENSE ${PROJECT_LICENSE_FILE} )
endif()
set (CPACK_PROPERTIES_FILE ${PROJECT_BINARY_DIR}/CPackComponentsInclude.cmake)
configure_file(cmake/CPackProperties.cmake.in ${CPACK_PROPERTIES_FILE} @ONLY)
# --------------------------------
# Components
# --------------------------------
@ -90,23 +113,6 @@ if (BUILD_COMPONENT_GUI)
endif()
# --------------------------------
# Install
# CPack
# --------------------------------
# Readme and license
install(FILES README.md ${PROJECT_LICENSE_FILE}
DESTINATION ${CMAKE_INSTALL_SHAREDIR})
# --------------------------------
# Package
# --------------------------------
if (CPACK_GENERATOR MATCHES "^[Nn][Ss][Ii][Ss]$")
set( CPACK_RESOURCE_FILE_LICENSE ${PROJECT_LICENSE_FILE} )
endif()
set( CPACK_DEBIAN_PACKAGE_PRIORITY "optional" )
set( CPACK_DEBIAN_PACKAGE_SECTION "misc" )
set( CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON )
include( cpack_custom )
include (CPack)

View file

@ -1,3 +1,13 @@
cmake_minimum_required(VERSION 3.15)
# --------------------------------
# Project Info
# --------------------------------
project(eosio-keygen
VERSION ${CMAKE_PROJECT_VERSION}
LANGUAGES CXX)
# Options
option(FORCE_ANSI "Force ANSI console colors even on windows" OFF)
@ -5,7 +15,7 @@ option(FORCE_ANSI "Force ANSI console colors even on windows" OFF)
# Program
# --------------------------------
set (PROGRAM_EXE ${CMAKE_PROJECT_NAME})
set (PROGRAM_EXE ${PROJECT_NAME})
set (PROGRAM_SOURCE
src/isatty.cpp
@ -30,7 +40,9 @@ target_link_libraries( ${PROGRAM_EXE} PUBLIC common )
# Install
# --------------------------------
install(TARGETS ${PROGRAM_EXE} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install(TARGETS ${PROGRAM_EXE}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT cli)
# Documentation
@ -38,5 +50,13 @@ if (UNIX)
configure_file( docs/eosio-keygen.1.in ${PROJECT_BINARY_DIR}/man1/eosio-keygen.1 )
install(DIRECTORY ${PROJECT_BINARY_DIR}/man1
DESTINATION ${CMAKE_INSTALL_MANDIR})
DESTINATION ${CMAKE_INSTALL_MANDIR}
COMPONENT cli)
endif (UNIX)
# --------------------------------
# Package
# --------------------------------
configure_file(cmake/CPackComponentConfig.cmake.in
${PROJECT_BINARY_DIR}/CPackProperties.cmake)

View file

@ -0,0 +1,13 @@
# --------------------------------
# CPack Component Config
# --------------------------------
set( CPACK_PACKAGE_CLI_NAME "${PROJECT_NAME}" )
set( CPACK_PACKAGE_CLI_CONTACT "${PROJECT_MAINTAINER}" )
# Debian specific
set( CPACK_DEBIAN_CLI_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}-${CPACK_SYSTEM_NAME}-${CPACK_SYSTEM_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set( CPACK_DEBIAN_CLI_PACKAGE_PRIORITY "optional" )
set( CPACK_DEBIAN_CLI_PACKAGE_SECTION "misc" )
set( CPACK_DEBIAN_CLI_PACKAGE_DEPENDS "libssl1.1 (>= 1.1.0), libstdc++6 (>= 6)")

View file

@ -93,10 +93,8 @@ set( CPACK_DEBIAN_PACKAGE_RELEASE "1" CACHE STRING "Debian package release versi
# So we have to do it here.
set( CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE_URL}" )
# Set "correct" filename that also include system version and architecture.
set( CPACK_DEBIAN_FILE_NAME
"${PROJECT_NAME}-${PROJECT_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}-${CPACK_SYSTEM_NAME}-${CPACK_SYSTEM_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb"
)
# Always build components for deb packages
set( CPACK_DEB_COMPONENT_INSTALL ON )
# --------------------------------
@ -112,10 +110,3 @@ if (NOT CPACK_GENERATOR)
set( CPACK_GENERATOR "ZIP" )
endif()
endif()
# --------------------------------
# Include original CPack module.
# --------------------------------
include( CPack )

View file

@ -0,0 +1,7 @@
# Include component specific config
foreach( component @CPACK_COMPONENTS_ALL@ )
if (EXISTS "@CMAKE_CURRENT_BINARY_DIR@/${component}/CPackProperties.cmake")
include("@CMAKE_CURRENT_BINARY_DIR@/${component}/CPackProperties.cmake")
endif()
endforeach()

View file

@ -1,3 +1,9 @@
cmake_minimum_required(VERSION 3.15)
project(eosio-keygen-gui
VERSION ${CMAKE_PROJECT_VERSION}
DESCRIPTION "Keygenerator for EOSIO (gui)"
LANGUAGES CXX)
# Qt5 needs MOC,RCC and UIC
set( CMAKE_AUTOMOC ON )
@ -20,9 +26,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Program
# --------------------------------
set( COMPONENT_NAME ${CMAKE_PROJECT_NAME}-gui)
set( PROGRAM_EXE ${COMPONENT_NAME} )
set( PROGRAM_EXE ${PROJECT_NAME} )
set( PROGRAM_SRC
main.cpp
@ -45,4 +49,11 @@ target_link_libraries( ${PROGRAM_EXE} Qt5::Concurrent Qt5::Core Qt5::Widgets com
install(TARGETS ${PROGRAM_EXE}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT ${COMPONENT_NAME})
COMPONENT gui)
# --------------------------------
# Package
# --------------------------------
configure_file(cmake/CPackComponentConfig.cmake.in
${PROJECT_BINARY_DIR}/CPackProperties.cmake)

View file

@ -0,0 +1,16 @@
# --------------------------------
# CPack Component Config
# --------------------------------
set( CPACK_PACKAGE_GUI_NAME "${PROJECT_NAME}" )
set( CPACK_PACKAGE_GUI_CONTACT "${PROJECT_MAINTAINER}" )
# Additional description
set( CPACK_COMPONENT_GUI_DESCRIPTION "Graphical interface (Qt framework)" )
# Debian specific
set( CPACK_DEBIAN_GUI_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}-${CPACK_SYSTEM_NAME}-${CPACK_SYSTEM_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
set( CPACK_DEBIAN_GUI_PACKAGE_PRIORITY "optional" )
set( CPACK_DEBIAN_GUI_PACKAGE_SECTION "misc" )
set( CPACK_DEBIAN_GUI_PACKAGE_SHLIBDEPS ON )