#
# Activate component packaging
#

if(CPACK_GENERATOR MATCHES "DEB")
   set(CPACK_DEB_COMPONENT_INSTALL "ON")
endif()

#
# Choose grouping way
#
#set(CPACK_COMPONENTS_ALL_GROUPS_IN_ONE_PACKAGE)
#set(CPACK_COMPONENTS_GROUPING)
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
#set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)

# we set shlibdeps to on
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
# except for the component "headers" that do not contain any binary.
# the packaging will just fail if this does not work
set(CPACK_DEBIAN_HEADERS_PACKAGE_SHLIBDEPS OFF)

# Also libraries contains only a static library.
set(CPACK_DEBIAN_LIBRARIES_PACKAGE_SHLIBDEPS OFF)

# Most importantly, we also give a list of additional search directories
# to allow `dpkg-shlibdeps` to find the private dependency.
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS
    "${CPACK_PACKAGE_DIRECTORY}/shlibdeps-with-private-lib"
    "${CPACK_PACKAGE_DIRECTORY}/shlibdeps-with-private-lib/Debug"
    "${CPACK_PACKAGE_DIRECTORY}/shlibdeps-with-private-lib/Release"
    "${CPACK_PACKAGE_DIRECTORY}/shlibdeps-with-private-lib/RelWithDebInfo"
    "${CPACK_PACKAGE_DIRECTORY}/shlibdeps-with-private-lib/MinSizeRel")
