Installing CMake exports with CPack

Hello,
I am facing a strange problem when trying to use CPack (dh_cmake for Debian packaging) to install the CMake export scripts. I am not sure if I am doing something wrong or if this is bug or feature of CMake, but I have been looking at it for some time and I am ready to ask for help.

I have a project which has multiple libraries - mostly shared, some INTERFACE (basically for headers as some of the shared libraries are loaded dynamically) and some static libraries - and each library has its own export. (In CMake terms each target has its own export, as it allows me to then manually group them into COMPONENTs for find_package() call. The *Config.cmake itself is then created with configure_package_config_file() and write_basic_package_version_file().) The core of my CMakeLists.txts looks like this:

install(
    TARGETS SuperLib
    EXPORT project_superlib
    LIBRARY DESTINATION "${LIBRARY_DIRECTORY}"
            COMPONENT Project_Library_SuperLib_Libraries
            NAMELINK_COMPONENT Project_Library_SuperLib_Namelinks
    PUBLIC_HEADER DESTINATION "${INTERFACE_DIRECTORY}/superlib"
                  COMPONENT Project_Library_SuperLib_Headers)

  install(
    EXPORT project_superlib
    DESTINATION ${CMAKE_PACKAGE_DIRECTORY}
    NAMESPACE "${PROJECT_NAMESPACE}::"
    FILE "ProjectSuperLibTarget.cmake"
    COMPONENT Project_Library_SuperLib_Package_Exports)

  export(
    EXPORT project_superlib
    NAMESPACE "${PROJECT_NAMESPACE}::"
    FILE "${CMAKE_PACKAGE_OUTPUT_DIRECTORY}/ProjectSuperLibTarget.cmake"
  )

  cpack_add_component(Project_Library_SuperLib_Libraries
                      GROUP Project_Library_SuperLib)
  cpack_add_component(
    Project_Library_SuperLib_Namelinks
    GROUP Project_Library_SuperLib_Development
    DEPENDS Project_Library_SuperLib_Libraries)
  cpack_add_component(
    Project_Library_SuperLib_Headers
    GROUP Project_Library_SuperLib_Development
    DEPENDS Project_Library_SuperLib_Libraries)
  cpack_add_component(
    Project_Library_SuperLib_Package_Exports
    GROUP Project_Library_SuperLib_Export)

  # Specification of artifacts placement in package tree
  cpack_add_component_group(Project_Library_SuperLib
                            PARENT_GROUP Project_Package_Base_Libraries)
  cpack_add_component_group(
    Project_Library_SuperLib_Development
    PARENT_GROUP Project_Package_Base_Libraries_Development)
  cpack_add_component_group(
    Project_Library_SuperLib_Export
    PARENT_GROUP Project_Package_Base_Libraries_Development)

And this works for the execution from a binary tree (development setup) and when installed fine. Either all CMake *Target.cmake are generated or are installed.

However, when I try to build the packages, only very few *Target.cmake files are copied over into the package. The cpack-metadata.json file does not contain the aforementioned Project_Library_SuperLib_Package_Exports CPack components, however it includes the header and namelink components - these are in the came CPack group. Also, the CPackConfic.cmake file has about 3 mentions of Project_Library_SuperLib_Package_Exports, but about 400 of Project_Library_SuperLib_Namelinks. Also, when I try to isolate all *_Package_exports components to its own group, which I then add to the *.cpack-component-groups, the build fails, because that group has nothing to install.

I am thinking, what can cause a behavior like this? The file exists (created both by the export(EXPORT) and install(EXPORT) - this created two files: *Target.cmake and *Target-$<CONFIG>.cmake), it is just not installed.

Any solutions for this ?? I’m facing issue with multiple config target files, cpack + Linux + DEB, is including only the last built target file and ignoring all the ones previously built. And all the files are present in the install directory.