From 2f1d6e4c3f03f3c2b428bebc75d437e644b2520b Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Thu, 16 Sep 2021 19:15:05 +0200 Subject: [PATCH] Do not generate cpp exports for pure STATIC modules Static libraries don't need to export their symbols, and corner cases when sources are also used in shared libraries, should be handled manually. Task-number: QTBUG-90492 Change-Id: I5cb0a3f7e280b042b678bdbe4475f2bbf9f6b9ba Reviewed-by: Qt CI Bot Reviewed-by: Alexandru Croitor --- cmake/QtModuleHelpers.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake index 502af4f05ed..deb5b001e17 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -312,7 +312,10 @@ function(qt_internal_add_module target) set_property(TARGET ${target} APPEND PROPERTY _qt_module_timestamp_dependencies "${module_headers_public}") - if(arg_GENERATE_CPP_EXPORTS) + # We should not generate export headers if module is defined as pure STATIC. + # Static libraries don't need to export their symbols, and corner cases when sources are + # also used in shared libraries, should be handled manually. + if(arg_GENERATE_CPP_EXPORTS AND NOT arg_STATIC) if(arg_CPP_EXPORT_HEADER_BASE_NAME) set(cpp_export_header_base_name "CPP_EXPORT_HEADER_BASE_NAME;${arg_CPP_EXPORT_HEADER_BASE_NAME}"