@ -16,43 +16,66 @@ if(NOT CPACK_DEB_COMPONENT_INSTALL)
set ( CPACK_DEB_COMPONENT_INSTALL ON )
endif ( )
# Е с л и и м я к о м п о н е н т а п о у м о л ч а н и ю н е о п р е д е л е н о , т о у с т а н а в л и в а е т с я M A I N
if ( NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME )
set ( CMAKE_INSTALL_DEFAULT_COMPONENT_NAME MAIN )
endif ( )
option ( CMLIB_CPACK_DEFAULT_SCHEME "Use packaging default scheme" ON )
# В с п и с к е к о м п о н е н т о в о б я з а т е л ь н о д о л ж н ы б ы т ь M A I N и D E V
list ( APPEND CPACK_COMPONENTS_ALL MAIN DEV )
list ( REMOVE_DUPLICATES CPACK_COMPONENTS_ALL )
# П р а в и л о ф о р м и р о в а н и я и м е н и п а к е т а и ф а й л а д л я к о м п о н е н т а M A I N
set ( CPACK_DEBIAN_MAIN_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}" )
set ( CPACK_DEBIAN_MAIN_FILE_NAME
" $ { C M L I B _ P R O J E C T _ N A M E _ L O W E R } _ $ { C P A C K _ P A C K A G E _ V E R S I O N } _ $ { C P A C K _ T A R G E T _ A R C H } . d e b " )
# П р а в и л о ф о р м и р о в а н и я и м е н и п а к е т а и ф а й л а д л я о с т а л ь н ы х к о м п о н е н т о в
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
" $ { C M L I B _ P R O J E C T _ N A M E _ L O W E R } - $ { c l } _ $ { C P A C K _ P A C K A G E _ V E R S I O N } _ $ { C P A C K _ T A R G E T _ A R C H } . d e b " )
if ( CMLIB_CPACK_DEFAULT_SCHEME )
# Е с л и и м я к о м п о н е н т а п о у м о л ч а н и ю н е о п р е д е л е н о , т о у с т а н а в л и в а е т с я M A I N
if ( NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME )
set ( CMAKE_INSTALL_DEFAULT_COMPONENT_NAME main )
endif ( )
endforeach ( )
# Е с л и в к а т а л о г е $ { C M A K E _ S O U R C E _ D I R } / c m a k e / d e b н а х о д я т с я с ц е н а р и и с о п р о в о ж д а ю щ е г о
# p o s t i n s t , p r e i n s t , p o s t r m и p r e r m , т о о н и б у д у т д о б а в л е н ы к п а к е т у .
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" )
# В с п и с к е к о м п о н е н т о в о б я з а т е л ь н о д о л ж н ы б ы т ь m a i n , b a s e - d e v , l i b s - d e v и d o c
list (
A P P E N D
C P A C K _ C O M P O N E N T S _ A L L
m a i n
b a s e - d e v
l i b s - d e v
d o c )
list ( REMOVE_DUPLICATES CPACK_COMPONENTS_ALL )
# П р а в и л о ф о р м и р о в а н и я и м е н и п а к е т а и ф а й л а д л я к о м п о н е н т а m a i n
set ( CPACK_DEBIAN_MAIN_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}" )
set ( CPACK_DEBIAN_MAIN_FILE_NAME
$ { C M L I B _ P R O J E C T _ N A M E _ L O W E R } _ $ { C P A C K _ P A C K A G E _ V E R S I O N } _ $ { C P A C K _ T A R G E T _ A R C H } . d e b )
# П р а в и л о ф о р м и р о в а н и я и м е н и п а к е т а и ф а й л а д л я к о м п о н е н т а b a s e - d e v
set ( CPACK_DEBIAN_BASE-DEV_PACKAGE_NAME "${CMLIB_PROJECT_NAME_LOWER}-base-dev" )
set ( CPACK_DEBIAN_BASE-DEV_FILE_NAME
$ { C M L I B _ P R O J E C T _ N A M E _ L O W E R } - b a s e - d e v _ $ { C P A C K _ P A C K A G E _ V E R S I O N } _ $ { C P A C K _ T A R G E T _ A R C H } . d e b )
# П р а в и л о ф о р м и р о в а н и я и м е н и п а к е т а и ф а й л а д л я к о м п о н е н т а l i b s - d e v
set ( CPACK_DEBIAN_LIBS-DEV_PACKAGE_NAME ${ CMLIB_PROJECT_NAME_LOWER } -dev )
set ( CPACK_DEBIAN_LIBS-DEV_FILE_NAME
$ { C M L I B _ P R O J E C T _ N A M E _ L O W E R } - d e v _ $ { C P A C K _ P A C K A G E _ V E R S I O N } _ $ { C P A C K _ T A R G E T _ A R C H } . d e b )
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
" $ { C M L I B _ P R O J E C T _ N A M E _ L O W E R } - $ { _ c l } _ $ { C P A C K _ P A C K A G E _ V E R S I O N } _ $ { C P A C K _ T A R G E T _ A R C H } . d e b " )
endif ( )
# Е с л и в к а т а л о г е $ { C M A K E _ S O U R C E _ D I R } / c m a k e / d e b / $ { _ c l } н а х о д я т с я с ц е н а р и и с о п р о в о ж д а ю щ е г о
# p o s t i n s t , p r e i n s t , p o s t r m и p r e r m , т о о н и б у д у т д о б а в л е н ы к п а к е т у .
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 ( )
if ( UNIX AND NOT TARGET deb )