Обновлены правила для формирования пакетов
This commit is contained in:
		@@ -16,43 +16,66 @@ if(NOT CPACK_DEB_COMPONENT_INSTALL)
 | 
				
			|||||||
  set(CPACK_DEB_COMPONENT_INSTALL ON)
 | 
					  set(CPACK_DEB_COMPONENT_INSTALL ON)
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Если имя компонента по умолчанию не определено, то устанавливается MAIN
 | 
					option(CMLIB_CPACK_DEFAULT_SCHEME "Use packaging default scheme" ON)
 | 
				
			||||||
if(NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
 | 
					 | 
				
			||||||
  set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME MAIN)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# В списке компонентов обязательно должны быть MAIN и DEV
 | 
					if(CMLIB_CPACK_DEFAULT_SCHEME)
 | 
				
			||||||
list(APPEND CPACK_COMPONENTS_ALL MAIN DEV)
 | 
					  # Если имя компонента по умолчанию не определено, то устанавливается MAIN
 | 
				
			||||||
list(REMOVE_DUPLICATES CPACK_COMPONENTS_ALL)
 | 
					  if(NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
 | 
				
			||||||
 | 
					    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()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Если в каталоге ${CMAKE_SOURCE_DIR}/cmake/deb находятся сценарии сопровождающего
 | 
					  # В списке компонентов обязательно должны быть main, base-dev, libs-dev и doc
 | 
				
			||||||
# postinst, preinst, postrm и prerm, то они будут добавлены к пакету.
 | 
					  list(
 | 
				
			||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/preinst")
 | 
					    APPEND
 | 
				
			||||||
  list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/preinst")
 | 
					    CPACK_COMPONENTS_ALL
 | 
				
			||||||
endif()
 | 
					    main
 | 
				
			||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/postinst")
 | 
					    base-dev
 | 
				
			||||||
  list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/postinst")
 | 
					    libs-dev
 | 
				
			||||||
endif()
 | 
					    doc)
 | 
				
			||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/prerm")
 | 
					  list(REMOVE_DUPLICATES CPACK_COMPONENTS_ALL)
 | 
				
			||||||
  list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/prerm")
 | 
					
 | 
				
			||||||
endif()
 | 
					  # Правило формирования имени пакета и файла для компонента main
 | 
				
			||||||
if(EXISTS "${CMAKE_SOURCE_DIR}/cmake/deb/postrm")
 | 
					  set(CPACK_DEBIAN_MAIN_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}")
 | 
				
			||||||
  list(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/deb/postrm")
 | 
					  set(CPACK_DEBIAN_MAIN_FILE_NAME
 | 
				
			||||||
 | 
					      ${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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user