Skip to content

Instantly share code, notes, and snippets.

@torarnv
Created November 11, 2020 12:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save torarnv/1bbdae118f77c8c8bfe3099adbf3f905 to your computer and use it in GitHub Desktop.
Save torarnv/1bbdae118f77c8c8bfe3099adbf3f905 to your computer and use it in GitHub Desktop.
diff --git i/cmake/QtModuleHelpers.cmake w/cmake/QtModuleHelpers.cmake
index a628ac923d1..6cc735236be 100644
--- i/cmake/QtModuleHelpers.cmake
+++ w/cmake/QtModuleHelpers.cmake
@@ -510,20 +510,6 @@ set(QT_CMAKE_EXPORT_NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE})")
)
file(COPY ${extra_cmake_files} DESTINATION "${config_build_dir}")
- set(exported_targets ${target})
- if(NOT ${arg_NO_PRIVATE_MODULE})
- list(APPEND exported_targets ${target_private})
- endif()
- set(export_name "${INSTALL_CMAKE_NAMESPACE}${target}Targets")
- qt_install(TARGETS ${exported_targets}
- EXPORT ${export_name}
- RUNTIME DESTINATION ${INSTALL_BINDIR}
- LIBRARY DESTINATION ${INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${INSTALL_LIBDIR}
- FRAMEWORK DESTINATION ${INSTALL_LIBDIR}
- PUBLIC_HEADER DESTINATION ${INSTALL_INCLUDEDIR}/${module_include_name}
- PRIVATE_HEADER DESTINATION ${INSTALL_INCLUDEDIR}/${module_include_name}/${PROJECT_VERSION}/${module}/private
- )
qt_apply_rpaths(TARGET "${target}" INSTALL_PATH "${INSTALL_LIBDIR}" RELATIVE_RPATH)
@@ -534,20 +520,6 @@ set(QT_CMAKE_EXPORT_NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE})")
QT_ANDROID_MODULE_INSTALL_DIR ${INSTALL_LIBDIR})
endif()
- qt_install(EXPORT ${export_name}
- NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE}::
- DESTINATION ${config_install_dir})
-
- qt_internal_export_additional_targets_file(
- TARGETS ${exported_targets}
- EXPORT_NAME_PREFIX ${INSTALL_CMAKE_NAMESPACE}${target}
- CONFIG_INSTALL_DIR "${config_install_dir}")
-
- qt_internal_export_modern_cmake_config_targets_file(
- TARGETS ${exported_targets}
- EXPORT_NAME_PREFIX ${INSTALL_CMAKE_NAMESPACE}${target}
- CONFIG_INSTALL_DIR "${config_install_dir}")
-
if (${arg_INTERNAL_MODULE})
set(arg_INTERNAL_MODULE "INTERNAL_MODULE")
else()
@@ -630,6 +602,45 @@ set(QT_CMAKE_EXPORT_NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE})")
endfunction()
function(qt_finalize_module target)
+ # Handle creation of cmake files for consumers of find_package().
+ set(path_suffix "${INSTALL_CMAKE_NAMESPACE}${target}")
+ qt_path_join(config_install_dir ${QT_CONFIG_INSTALL_DIR} ${path_suffix})
+
+ qt_internal_get_target_property(module_include_name "${target}" INTERFACE_MODULE_INCLUDE_NAME)
+ if(NOT module_include_name)
+ qt_internal_module_info(module "${target}")
+ set(module_include_name ${module})
+ endif()
+
+ set(exported_targets ${target})
+ if(NOT ${arg_NO_PRIVATE_MODULE})
+ list(APPEND exported_targets ${target_private})
+ endif()
+ set(export_name "${INSTALL_CMAKE_NAMESPACE}${target}Targets")
+ qt_install(TARGETS ${exported_targets}
+ EXPORT ${export_name}
+ RUNTIME DESTINATION ${INSTALL_BINDIR}
+ LIBRARY DESTINATION ${INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${INSTALL_LIBDIR}
+ FRAMEWORK DESTINATION ${INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${INSTALL_INCLUDEDIR}/${module_include_name}
+ PRIVATE_HEADER DESTINATION ${INSTALL_INCLUDEDIR}/${module_include_name}/${PROJECT_VERSION}/${module}/private
+ )
+
+ qt_install(EXPORT ${export_name}
+ NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE}::
+ DESTINATION ${config_install_dir})
+
+ qt_internal_export_additional_targets_file(
+ TARGETS ${exported_targets}
+ EXPORT_NAME_PREFIX ${INSTALL_CMAKE_NAMESPACE}${target}
+ CONFIG_INSTALL_DIR "${config_install_dir}")
+
+ qt_internal_export_modern_cmake_config_targets_file(
+ TARGETS ${exported_targets}
+ EXPORT_NAME_PREFIX ${INSTALL_CMAKE_NAMESPACE}${target}
+ CONFIG_INSTALL_DIR "${config_install_dir}")
+
qt_generate_prl_file(${target} "${INSTALL_LIBDIR}")
qt_generate_module_pri_file("${target}" ${ARGN})
endfunction()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment