if ( NOT CPackComponentsDEB_SOURCE_DIR )
message ( FATAL_ERROR "CPackComponentsDEB_SOURCE_DIR not set" )
endif ( )
include ( ${ CPackComponentsDEB_SOURCE_DIR } /RunCPackVerifyResult.cmake )
# expected results
set ( expected_file_mask "${CPackComponentsDEB_BINARY_DIR}/mylib-*_1.0.2_*.deb" )
set ( expected_count 3 )
set ( config_verbose -V )
set ( actual_output )
run_cpack ( actual_output
C P a c k _ o u t p u t
C P a c k _ e r r o r
E X P E C T E D _ F I L E _ M A S K " $ { e x p e c t e d _ f i l e _ m a s k } "
C O N F I G _ A R G S $ { c o n f i g _ a r g s }
C O N F I G _ V E R B O S E $ { c o n f i g _ v e r b o s e } )
if ( NOT actual_output )
message ( STATUS "expected_count='${expected_count}'" )
message ( STATUS "expected_file_mask='${expected_file_mask}'" )
message ( STATUS "actual_output_files='${actual_output}'" )
message ( FATAL_ERROR "error: expected_files do not exist: CPackComponentsDEB test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error}" )
endif ( )
list ( LENGTH actual_output actual_count )
if ( NOT actual_count EQUAL expected_count )
message ( STATUS "actual_count='${actual_count}'" )
message ( FATAL_ERROR "error: expected_count=${expected_count} does not match actual_count=${actual_count}: CPackComponents test fails. (CPack_output=${CPack_output}, CPack_error=${CPack_error})" )
endif ( )
# dpkg-deb checks for the summary of the packages
find_program ( DPKGDEB_EXECUTABLE dpkg-deb )
if ( DPKGDEB_EXECUTABLE )
set ( dpkgdeb_output_errors_all "" )
foreach ( _f IN LISTS actual_output )
# extracts the metadata from the package
run_dpkgdeb ( dpkg_output
F I L E N A M E " $ { _ f } "
)
dpkgdeb_return_specific_metaentry ( dpkg_package_name
D P K G D E B _ O U T P U T " $ { d p k g _ o u t p u t } "
M E T A E N T R Y " P a c k a g e : " )
dpkgdeb_return_specific_metaentry ( dpkg_depends
D P K G D E B _ O U T P U T " $ { d p k g _ o u t p u t } "
M E T A E N T R Y " D e p e n d s : " )
message ( STATUS "package='${dpkg_package_name}', dependencies='${dpkg_depends}'" )
if ( "${dpkg_package_name}" STREQUAL "mylib-applications" )
find_program ( DPKG_SHLIBDEP_EXECUTABLE dpkg-shlibdeps )
if ( DPKG_SHLIBDEP_EXECUTABLE )
string ( FIND "${dpkg_depends}" "lib" index_libwhatever )
if ( NOT index_libwhatever GREATER "-1" )
set ( dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}"
" d p k g - d e b : $ { _ f } : I n c o r r e c t d e p e n d e n c i e s f o r p a c k a g e $ { d p k g _ p a c k a g e _ n a m e } : ' $ { d p k g _ d e p e n d s } ' d o e s n o t c o n t a i n a n y ' l i b ' \ n " )
endif ( )
else ( )
message ( "dpkg-shlibdeps executable not found - skipping dpkg-shlibdeps test" )
endif ( )
# should not contain the default
string ( FIND "${dpkg_depends}" "depend-default" index_default )
if ( index_default GREATER "0" )
set ( dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}"
" d p k g - d e b : $ { _ f } : I n c o r r e c t d e p e n d e n c i e s f o r p a c k a g e $ { d p k g _ p a c k a g e _ n a m e } : ' $ { d p k g _ d e p e n d s } ' d o e s c o n t a i n s ' d e p e n d - d e f a u l t ' \ n " )
endif ( )
elseif ( "${dpkg_package_name}" STREQUAL "mylib-headers" )
if ( NOT "${dpkg_depends}" STREQUAL "mylib-libraries (= 1.0.2), depend-headers" )
set ( dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}"
" d p k g - d e b : $ { _ f } : I n c o r r e c t d e p e n d e n c i e s f o r p a c k a g e $ { d p k g _ p a c k a g e _ n a m e } : ' $ { d p k g _ d e p e n d s } ' ! = ' m y l i b - libraries ( = 1.0.2 ) , d e p e n d - h e a d e r s ' \ n " )
endif ( )
elseif ( "${dpkg_package_name}" STREQUAL "mylib-libraries" )
if ( NOT "${dpkg_depends}" STREQUAL "depend-default" )
set ( dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}"
" d p k g - d e b : $ { _ f } : I n c o r r e c t d e p e n d e n c i e s f o r p a c k a g e $ { d p k g _ p a c k a g e _ n a m e } : ' $ { d p k g _ d e p e n d s } ' ! = ' d e p e n d - d e f a u l t ' \ n " )
endif ( )
else ( )
set ( dpkgdeb_output_errors_all "${dpkgdeb_output_errors_all}"
" d p k g - d e b : $ { _ f } : c o m p o n e n t n a m e n o t f o u n d : $ { d p k g _ p a c k a g e _ n a m e } \ n " )
endif ( )
endforeach ( )
if ( NOT "${dpkgdeb_output_errors_all}" STREQUAL "" )
message ( FATAL_ERROR "dpkg-deb checks failed:\n${dpkgdeb_output_errors_all}" )
endif ( )
else ( )
message ( "dpkg-deb executable not found - skipping dpkg-deb test" )
endif ( )