61 lines
2.6 KiB
CMake
61 lines
2.6 KiB
CMake
# По умолчанию пакет собирается для дистрибутива unstable
|
||
if(NOT DEBIAN_PACKAGE_TYPE)
|
||
set(DEBIAN_PACKAGE_TYPE "unstable")
|
||
endif()
|
||
|
||
if(NOT CPACK_DEBIAN_PACKAGE_SECTION)
|
||
set(CPACK_DEBIAN_PACKAGE_SECTION "misc")
|
||
endif()
|
||
|
||
if(NOT CPACK_DEBIAN_PACKAGE_PRIORITY)
|
||
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||
endif()
|
||
|
||
# По умолчанию пакет для Debian делится на компоненты
|
||
if(NOT CPACK_DEB_COMPONENT_INSTALL)
|
||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||
endif()
|
||
|
||
# Если имя компонента по умолчанию не определено, то устанавливается MAIN
|
||
if(NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
|
||
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME MAIN)
|
||
endif()
|
||
|
||
# В списке компонентов обязательно должны быть MAIN и DEV
|
||
list(APPEND CPACK_COMPONENTS_ALL MAIN DEV)
|
||
list(REMOVE_DUPLICATES CPACK_COMPONENTS_ALL)
|
||
|
||
# Правило формирования имени пакета и файла для компонента 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()
|
||
endforeach()
|
||
|
||
# Если в каталоге ${CMAKE_SOURCE_DIR}/cmake/deb находятся сценарии сопровождающего
|
||
# postinst, preinst, postrm и prerm, то они будут добавлены к пакету.
|
||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/preinst")
|
||
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/preinst")
|
||
endif()
|
||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/postinst")
|
||
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/postinst")
|
||
endif()
|
||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/prerm")
|
||
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/prerm")
|
||
endif()
|
||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/postrm")
|
||
list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/postrm")
|
||
endif()
|
||
|
||
if(UNIX AND NOT TARGET deb)
|
||
add_custom_target(deb WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND cpack -G DEB)
|
||
endif()
|