mirror of
https://github.com/eosswedenorg/antelope-keygen
synced 2026-07-04 12:03:41 +02:00
CMake: new CPack structure with config defined in sub directories.
This commit is contained in:
parent
884f8a6125
commit
4a83b06ef2
7 changed files with 101 additions and 37 deletions
|
|
@ -75,6 +75,29 @@ endif()
|
||||||
configure_file(config.hpp.in "${PROJECT_BINARY_DIR}/config.hpp" @ONLY)
|
configure_file(config.hpp.in "${PROJECT_BINARY_DIR}/config.hpp" @ONLY)
|
||||||
include_directories(${PROJECT_BINARY_DIR})
|
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
|
# Components
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
|
|
@ -90,23 +113,6 @@ if (BUILD_COMPONENT_GUI)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
# Install
|
# CPack
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
|
include (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 )
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,13 @@
|
||||||
|
cmake_minimum_required(VERSION 3.15)
|
||||||
|
|
||||||
|
# --------------------------------
|
||||||
|
# Project Info
|
||||||
|
# --------------------------------
|
||||||
|
|
||||||
|
project(eosio-keygen
|
||||||
|
VERSION ${CMAKE_PROJECT_VERSION}
|
||||||
|
LANGUAGES CXX)
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
option(FORCE_ANSI "Force ANSI console colors even on windows" OFF)
|
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
|
# Program
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
|
|
||||||
set (PROGRAM_EXE ${CMAKE_PROJECT_NAME})
|
set (PROGRAM_EXE ${PROJECT_NAME})
|
||||||
|
|
||||||
set (PROGRAM_SOURCE
|
set (PROGRAM_SOURCE
|
||||||
src/isatty.cpp
|
src/isatty.cpp
|
||||||
|
|
@ -30,7 +40,9 @@ target_link_libraries( ${PROGRAM_EXE} PUBLIC common )
|
||||||
# Install
|
# Install
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
|
|
||||||
install(TARGETS ${PROGRAM_EXE} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
install(TARGETS ${PROGRAM_EXE}
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
COMPONENT cli)
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
|
|
||||||
|
|
@ -38,5 +50,13 @@ if (UNIX)
|
||||||
configure_file( docs/eosio-keygen.1.in ${PROJECT_BINARY_DIR}/man1/eosio-keygen.1 )
|
configure_file( docs/eosio-keygen.1.in ${PROJECT_BINARY_DIR}/man1/eosio-keygen.1 )
|
||||||
|
|
||||||
install(DIRECTORY ${PROJECT_BINARY_DIR}/man1
|
install(DIRECTORY ${PROJECT_BINARY_DIR}/man1
|
||||||
DESTINATION ${CMAKE_INSTALL_MANDIR})
|
DESTINATION ${CMAKE_INSTALL_MANDIR}
|
||||||
|
COMPONENT cli)
|
||||||
endif (UNIX)
|
endif (UNIX)
|
||||||
|
|
||||||
|
# --------------------------------
|
||||||
|
# Package
|
||||||
|
# --------------------------------
|
||||||
|
|
||||||
|
configure_file(cmake/CPackComponentConfig.cmake.in
|
||||||
|
${PROJECT_BINARY_DIR}/CPackProperties.cmake)
|
||||||
|
|
|
||||||
13
cli/cmake/CPackComponentConfig.cmake.in
Normal file
13
cli/cmake/CPackComponentConfig.cmake.in
Normal 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)")
|
||||||
|
|
@ -93,10 +93,8 @@ set( CPACK_DEBIAN_PACKAGE_RELEASE "1" CACHE STRING "Debian package release versi
|
||||||
# So we have to do it here.
|
# So we have to do it here.
|
||||||
set( CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE_URL}" )
|
set( CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE_URL}" )
|
||||||
|
|
||||||
# Set "correct" filename that also include system version and architecture.
|
# Always build components for deb packages
|
||||||
set( CPACK_DEBIAN_FILE_NAME
|
set( CPACK_DEB_COMPONENT_INSTALL ON )
|
||||||
"${PROJECT_NAME}-${PROJECT_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}-${CPACK_SYSTEM_NAME}-${CPACK_SYSTEM_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
|
|
@ -112,10 +110,3 @@ if (NOT CPACK_GENERATOR)
|
||||||
set( CPACK_GENERATOR "ZIP" )
|
set( CPACK_GENERATOR "ZIP" )
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------
|
|
||||||
# Include original CPack module.
|
|
||||||
# --------------------------------
|
|
||||||
|
|
||||||
include( CPack )
|
|
||||||
7
cmake/CPackProperties.cmake.in
Normal file
7
cmake/CPackProperties.cmake.in
Normal 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()
|
||||||
|
|
@ -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
|
# Qt5 needs MOC,RCC and UIC
|
||||||
set( CMAKE_AUTOMOC ON )
|
set( CMAKE_AUTOMOC ON )
|
||||||
|
|
@ -20,9 +26,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||||
# Program
|
# Program
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
|
|
||||||
set( COMPONENT_NAME ${CMAKE_PROJECT_NAME}-gui)
|
set( PROGRAM_EXE ${PROJECT_NAME} )
|
||||||
|
|
||||||
set( PROGRAM_EXE ${COMPONENT_NAME} )
|
|
||||||
|
|
||||||
set( PROGRAM_SRC
|
set( PROGRAM_SRC
|
||||||
main.cpp
|
main.cpp
|
||||||
|
|
@ -45,4 +49,11 @@ target_link_libraries( ${PROGRAM_EXE} Qt5::Concurrent Qt5::Core Qt5::Widgets com
|
||||||
|
|
||||||
install(TARGETS ${PROGRAM_EXE}
|
install(TARGETS ${PROGRAM_EXE}
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
COMPONENT ${COMPONENT_NAME})
|
COMPONENT gui)
|
||||||
|
|
||||||
|
# --------------------------------
|
||||||
|
# Package
|
||||||
|
# --------------------------------
|
||||||
|
|
||||||
|
configure_file(cmake/CPackComponentConfig.cmake.in
|
||||||
|
${PROJECT_BINARY_DIR}/CPackProperties.cmake)
|
||||||
|
|
|
||||||
16
gui/cmake/CPackComponentConfig.cmake.in
Normal file
16
gui/cmake/CPackComponentConfig.cmake.in
Normal 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 )
|
||||||
Loading…
Add table
Add a link
Reference in a new issue