Compare commits
No commits in common. "d6c1e11d49c5857291a5e469f71d3b7e5ac6c321" and "ea2b322df6b3c53b4d9004f5ed945f496c9291c6" have entirely different histories.
d6c1e11d49
...
ea2b322df6
@ -1,4 +1,3 @@
|
|||||||
# cmake-format: off
|
|
||||||
if(NOT TARGET create_auxilary_symlinks)
|
if(NOT TARGET create_auxilary_symlinks)
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
@ -6,20 +5,15 @@ if(NOT TARGET create_auxilary_symlinks)
|
|||||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/files
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/files
|
||||||
# Ссылка на каталог с журналами
|
# Ссылка на каталог с журналами
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/files/log ${CMAKE_BINARY_DIR}/files/log
|
||||||
${CMAKE_SOURCE_DIR}/files/log ${CMAKE_BINARY_DIR}/files/log
|
|
||||||
# Ссылка на каталог с обрабатываемыми данными
|
# Ссылка на каталог с обрабатываемыми данными
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/files/lib ${CMAKE_BINARY_DIR}/files/lib
|
||||||
${CMAKE_SOURCE_DIR}/files/lib ${CMAKE_BINARY_DIR}/files/lib
|
|
||||||
# Ссылка на каталог с временными данными
|
# Ссылка на каталог с временными данными
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/files/cache
|
||||||
${CMAKE_SOURCE_DIR}/files/cache ${CMAKE_BINARY_DIR}/files/cache
|
${CMAKE_BINARY_DIR}/files/cache
|
||||||
# Ссылка на каталог с постоянными данными
|
# Ссылка на каталог с постоянными данными
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/files/data ${CMAKE_BINARY_DIR}/files/data
|
||||||
${CMAKE_SOURCE_DIR}/files/data ${CMAKE_BINARY_DIR}/files/data
|
|
||||||
# Ссылка на каталог настроек
|
# Ссылка на каталог настроек
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/files/etc ${CMAKE_BINARY_DIR}/etc)
|
||||||
${CMAKE_SOURCE_DIR}/files/etc ${CMAKE_BINARY_DIR}/etc)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
# cmake-format: on
|
|
||||||
|
@ -16,66 +16,43 @@ if(NOT CPACK_DEB_COMPONENT_INSTALL)
|
|||||||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(CMLIB_CPACK_DEFAULT_SCHEME "Use packaging default scheme" ON)
|
# Если имя компонента по умолчанию не определено, то устанавливается MAIN
|
||||||
|
if(NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
|
||||||
|
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME MAIN)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMLIB_CPACK_DEFAULT_SCHEME)
|
# В списке компонентов обязательно должны быть MAIN и DEV
|
||||||
# Если имя компонента по умолчанию не определено, то устанавливается MAIN
|
list(APPEND CPACK_COMPONENTS_ALL MAIN DEV)
|
||||||
if(NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
|
list(REMOVE_DUPLICATES CPACK_COMPONENTS_ALL)
|
||||||
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME main)
|
|
||||||
|
# Правило формирования имени пакета и файла для компонента MAIN
|
||||||
|
set(CPACK_DEBIAN_MAIN_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}")
|
||||||
|
set(CPACK_DEBIAN_MAIN_FILE_NAME
|
||||||
|
"${CMLIB_PROJECT_NAME_LOWER}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb")
|
||||||
|
|
||||||
|
# Правило формирования имени пакета и файла для остальных компонентов
|
||||||
|
foreach(C ${CPACK_COMPONENTS_ALL})
|
||||||
|
if(NOT "${C}" STREQUAL "MAIN")
|
||||||
|
string(TOLOWER "${C}" cl)
|
||||||
|
set(CPACK_DEBIAN_${C}_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}-${cl}")
|
||||||
|
set(CPACK_DEBIAN_${C}_FILE_NAME
|
||||||
|
"${CMLIB_PROJECT_NAME_LOWER}-${cl}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb")
|
||||||
endif()
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
# В списке компонентов обязательно должны быть main, base-dev, libs-dev и doc
|
# Если в каталоге ${CMAKE_SOURCE_DIR}/cmake/deb находятся сценарии сопровождающего
|
||||||
list(
|
# postinst, preinst, postrm и prerm, то они будут добавлены к пакету.
|
||||||
APPEND
|
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/preinst")
|
||||||
CPACK_COMPONENTS_ALL
|
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/preinst")
|
||||||
main
|
endif()
|
||||||
base-dev
|
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/postinst")
|
||||||
libs-dev
|
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/postinst")
|
||||||
doc)
|
endif()
|
||||||
list(REMOVE_DUPLICATES CPACK_COMPONENTS_ALL)
|
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/prerm")
|
||||||
|
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/prerm")
|
||||||
# Правило формирования имени пакета и файла для компонента main
|
endif()
|
||||||
set(CPACK_DEBIAN_MAIN_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}")
|
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/postrm")
|
||||||
set(CPACK_DEBIAN_MAIN_FILE_NAME
|
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/postrm")
|
||||||
${CMLIB_PROJECT_NAME_LOWER}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
|
||||||
|
|
||||||
# Правило формирования имени пакета и файла для компонента base-dev
|
|
||||||
set(CPACK_DEBIAN_BASE-DEV_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}-base-dev")
|
|
||||||
set(CPACK_DEBIAN_BASE-DEV_FILE_NAME
|
|
||||||
${CMLIB_PROJECT_NAME_LOWER}-base-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
|
||||||
|
|
||||||
# Правило формирования имени пакета и файла для компонента libs-dev
|
|
||||||
set(CPACK_DEBIAN_LIBS-DEV_PACKAGE_NAME ${CMLIB_PROJECT_NAME_LOWER}-dev)
|
|
||||||
set(CPACK_DEBIAN_LIBS-DEV_FILE_NAME
|
|
||||||
${CMLIB_PROJECT_NAME_LOWER}-dev_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb)
|
|
||||||
|
|
||||||
set(CPACK_DEBIAN_LIBS-DEV_PACKAGE_DEPENDS "${CMLIB_PROJECT_NAME_LOWER}-base-dev")
|
|
||||||
|
|
||||||
foreach(_C ${CPACK_COMPONENTS_ALL})
|
|
||||||
string(TOLOWER ${_C} _cl)
|
|
||||||
string(TOUPPER ${_C} _cu)
|
|
||||||
# Правила формирования имени пакета и файла для остальных компонентов
|
|
||||||
if(NOT ${_cl} STREQUAL main AND NOT ${_cl} STREQUAL base-dev AND NOT ${_cl} STREQUAL libs-dev)
|
|
||||||
set(CPACK_DEBIAN_${_cu}_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}-${_cl}")
|
|
||||||
set(CPACK_DEBIAN_${_cu}_FILE_NAME
|
|
||||||
"${CMLIB_PROJECT_NAME_LOWER}-${_cl}_${CPACK_PACKAGE_VERSION}_${CPACK_TARGET_ARCH}.deb")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Если в каталоге ${CMAKE_SOURCE_DIR}/cmake/deb/${_cl} находятся сценарии сопровождающего
|
|
||||||
# postinst, preinst, postrm и prerm, то они будут добавлены к пакету.
|
|
||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/preinst")
|
|
||||||
list(APPEND CPACK_DEBIAN_${_cu}_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/preinst")
|
|
||||||
endif()
|
|
||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/postinst")
|
|
||||||
list(APPEND CPACK_DEBIAN_${_cu}_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/postinst")
|
|
||||||
endif()
|
|
||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/prerm")
|
|
||||||
list(APPEND CPACK_DEBIAN_${_cu}_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/prerm")
|
|
||||||
endif()
|
|
||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/postrm")
|
|
||||||
list(APPEND CPACK_DEBIAN_${_cu}_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/${_cl}/postrm")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(UNIX AND NOT TARGET deb)
|
if(UNIX AND NOT TARGET deb)
|
||||||
|
@ -10,6 +10,5 @@ function(generate_pkgconfig library_name)
|
|||||||
else()
|
else()
|
||||||
configure_file(${CMLIB_MODULE_DIR}/pc/lib-header-only.pc.in ${CMAKE_BINARY_DIR}/${library_name}.pc)
|
configure_file(${CMLIB_MODULE_DIR}/pc/lib-header-only.pc.in ${CMAKE_BINARY_DIR}/${library_name}.pc)
|
||||||
endif()
|
endif()
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/${library_name}.pc COMPONENT ${_PKG_COMPONENT}
|
install(FILES ${CMAKE_BINARY_DIR}/${library_name}.pc COMPONENT ${_PKG_COMPONENT} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
Loading…
Reference in New Issue
Block a user