From 79492c84648d5c001474879240dd3062a74d5519 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 9 Dec 2021 17:14:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/MyxCMakeAddSharedLibrary.cmake | 10 +++--- .../modules/MyxCMakeAddStaticLibrary.cmake | 19 +++++----- MyxCMake/modules/MyxCMakeCPackDeb.cmake | 35 +++++++++---------- MyxCMake/modules/MyxCMakePkgConfig.cmake | 2 +- 4 files changed, 34 insertions(+), 32 deletions(-) diff --git a/MyxCMake/modules/MyxCMakeAddSharedLibrary.cmake b/MyxCMake/modules/MyxCMakeAddSharedLibrary.cmake index fa123a2..a47ec6f 100644 --- a/MyxCMake/modules/MyxCMakeAddSharedLibrary.cmake +++ b/MyxCMake/modules/MyxCMakeAddSharedLibrary.cmake @@ -1,10 +1,10 @@ # Создание динамической библиотеки из объектной библиотеки function(myx_cmake_add_shared_library target) - get_target_property(_target_type ${target} TYPE) - if(NOT _target_type STREQUAL OBJECT_LIBRARY) + get_target_property(__target_type ${target} TYPE) + if(NOT __target_type STREQUAL OBJECT_LIBRARY) message( FATAL_ERROR - "MyxCMake: add_shared_library needs target of type OBJECT_LIBRARY") + "MyxCMake: myx_cmake_add_shared_library needs target of type OBJECT_LIBRARY") return() endif() @@ -16,6 +16,8 @@ function(myx_cmake_add_shared_library target) SOVERSION ${PROJECT_VERSION_MAJOR} LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) - install(TARGETS ${target}-static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(TARGETS ${target}-shared + COMPONENT main + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endfunction() diff --git a/MyxCMake/modules/MyxCMakeAddStaticLibrary.cmake b/MyxCMake/modules/MyxCMakeAddStaticLibrary.cmake index 6b5c2b7..8c51658 100644 --- a/MyxCMake/modules/MyxCMakeAddStaticLibrary.cmake +++ b/MyxCMake/modules/MyxCMakeAddStaticLibrary.cmake @@ -1,19 +1,20 @@ # Создание статической библиотеки из объектной библиотеки function(myx_cmake_add_static_library target) - get_target_property(_target_type ${target} TYPE) - if(NOT _target_type STREQUAL OBJECT_LIBRARY) + get_target_property(__target_type ${target} TYPE) + if(NOT __target_type STREQUAL OBJECT_LIBRARY) message( FATAL_ERROR - "MyxCMake: add_static_library needs target of type OBJECT_LIBRARY") + "MyxCMake: myx_cmake_add_static_library needs target of type OBJECT_LIBRARY") return() endif() add_library(${target}-static STATIC $) - set_target_properties( - ${target}-static - PROPERTIES OUTPUT_NAME ${target} - ARCHIVE_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) - install(TARGETS ${target}-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + set_target_properties(${target}-static + PROPERTIES + OUTPUT_NAME ${target} + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) + install(TARGETS ${target}-static + COMPONENT static + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endfunction() diff --git a/MyxCMake/modules/MyxCMakeCPackDeb.cmake b/MyxCMake/modules/MyxCMakeCPackDeb.cmake index 5d71750..02243b9 100644 --- a/MyxCMake/modules/MyxCMakeCPackDeb.cmake +++ b/MyxCMake/modules/MyxCMakeCPackDeb.cmake @@ -22,14 +22,8 @@ if(MYX_CMAKE_CPACK_DEFAULT_SCHEME) set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME main) endif() - # В списке компонентов обязательно должны быть main, base-dev, libs-dev и doc - list( - APPEND - CPACK_COMPONENTS_ALL - main - base-dev - libs-dev - doc) + # В списке компонентов обязательно должны быть main, dev, static и doc + list(APPEND CPACK_COMPONENTS_ALL main dev static doc) list(REMOVE_DUPLICATES CPACK_COMPONENTS_ALL) # Правило формирования имени пакета и файла для компонента main @@ -37,23 +31,28 @@ if(MYX_CMAKE_CPACK_DEFAULT_SCHEME) set(CPACK_DEBIAN_MAIN_FILE_NAME ${MYX_CMAKE_PROJECT_NAME_LOWER}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb) - # Правило формирования имени пакета и файла для компонента base-dev - set(CPACK_DEBIAN_BASE-DEV_PACKAGE_NAME "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-base-dev") - set(CPACK_DEBIAN_BASE-DEV_FILE_NAME - lib${MYX_CMAKE_PROJECT_NAME_LOWER}-base-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb) - - # Правило формирования имени пакета и файла для компонента libs-dev - set(CPACK_DEBIAN_LIBS-DEV_PACKAGE_NAME lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev) - set(CPACK_DEBIAN_LIBS-DEV_FILE_NAME + # Правило формирования имени пакета и файла для компонента dev + set(CPACK_DEBIAN_DEV_PACKAGE_NAME "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev") + set(CPACK_DEBIAN_DEV_FILE_NAME lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb) - set(CPACK_DEBIAN_LIBS-DEV_PACKAGE_DEPENDS "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-base-dev") + # Правило формирования имени пакета и файла для компонента static + set(CPACK_DEBIAN_STATIC_PACKAGE_NAME "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-static-dev") + set(CPACK_DEBIAN_STATIC_FILE_NAME + lib${MYX_CMAKE_PROJECT_NAME_LOWER}-static-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb) + + set(CPACK_DEBIAN_STATIC_PACKAGE_DEPENDS "lib${MYX_CMAKE_PROJECT_NAME_LOWER}-dev") + + # Правило формирования имени пакета и файла для компонента doc + set(CPACK_DEBIAN_DOC_PACKAGE_NAME "${MYX_CMAKE_PROJECT_NAME_LOWER}-doc") + set(CPACK_DEBIAN_DOC_FILE_NAME + ${MYX_CMAKE_PROJECT_NAME_LOWER}-doc_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb) foreach(component ${CPACK_COMPONENTS_ALL}) string(TOLOWER ${component} _cl) string(TOUPPER ${component} _cu) # Правила формирования имени пакета и файла для остальных компонентов - if(NOT ${_cl} STREQUAL main AND NOT ${_cl} STREQUAL base-dev AND NOT ${_cl} STREQUAL libs-dev) + if(NOT ${_cl} STREQUAL main AND NOT ${_cl} STREQUAL dev AND NOT ${_cl} STREQUAL static) set(CPACK_DEBIAN_${_cu}_PACKAGE_NAME "${MYX_CMAKE_PROJECT_NAME_LOWER}-${_cl}") set(CPACK_DEBIAN_${_cu}_FILE_NAME "${MYX_CMAKE_PROJECT_NAME_LOWER}-${_cl}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb") diff --git a/MyxCMake/modules/MyxCMakePkgConfig.cmake b/MyxCMake/modules/MyxCMakePkgConfig.cmake index c775262..0702b1f 100644 --- a/MyxCMake/modules/MyxCMakePkgConfig.cmake +++ b/MyxCMake/modules/MyxCMakePkgConfig.cmake @@ -6,7 +6,7 @@ function(myx_cmake_generate_pkgconfig target) cmake_parse_arguments(ARG "${options}" "${oneVA}" "${multiVA}" ${ARGN}) if(NOT ARG_COMPONENT) - set(ARG_COMPONENT "base-dev") + set(ARG_COMPONENT dev) endif() get_target_property(_target_type ${target} TYPE)