From 6625f28dbb986cbf579d4455e21935d86dc00f11 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 24 Aug 2021 23:34:39 +0300 Subject: [PATCH] export component symbols only when building them [ci reset] Signed-off-by: Ivailo Monev --- cmake/modules/OptimizeHeaders.cmake | 14 +++++ src/core/global/qglobal.h | 90 ++++++++++++++++++++++++----- 2 files changed, 91 insertions(+), 13 deletions(-) diff --git a/cmake/modules/OptimizeHeaders.cmake b/cmake/modules/OptimizeHeaders.cmake index 8cc602a82..467e37044 100644 --- a/cmake/modules/OptimizeHeaders.cmake +++ b/cmake/modules/OptimizeHeaders.cmake @@ -30,6 +30,20 @@ set(unifdef_arguments -UQT_NO_STANDARDPATHS -UQT_NO_SETTINGS -UQT_NO_TEXTCODEC + # exports + -UKtCore_EXPORTS + -UKtGui_EXPORTS + -UKtSql_EXPORTS + -UKtNetwork_EXPORTS + -UKtSvg_EXPORTS + -UKtTest_EXPORTS + -UKtDeclarative_EXPORTS + -UKtXml_EXPORTS + -UKtScript_EXPORTS + -UKtScriptTools_EXPORTS + -UKtDBus_EXPORTS + -UKtUiTools_EXPORTS + -UKtDesigner_EXPORTS ) message(STATUS "Optimizing header in: ${headers_directory}") diff --git a/src/core/global/qglobal.h b/src/core/global/qglobal.h index 236594b73..c427b4f76 100644 --- a/src/core/global/qglobal.h +++ b/src/core/global/qglobal.h @@ -249,19 +249,83 @@ typedef double qreal; #define Q_DECL_HIDDEN __attribute__((visibility("hidden"))) #define Q_DECL_IMPORT -#define Q_CORE_EXPORT Q_DECL_EXPORT -#define Q_GUI_EXPORT Q_DECL_EXPORT -#define Q_SQL_EXPORT Q_DECL_EXPORT -#define Q_NETWORK_EXPORT Q_DECL_EXPORT -#define Q_SVG_EXPORT Q_DECL_EXPORT -#define Q_TEST_EXPORT Q_DECL_EXPORT -#define Q_DECLARATIVE_EXPORT Q_DECL_EXPORT -#define Q_XML_EXPORT Q_DECL_EXPORT -#define Q_SCRIPT_EXPORT Q_DECL_EXPORT -#define Q_SCRIPTTOOLS_EXPORT Q_DECL_EXPORT -#define Q_DBUS_EXPORT Q_DECL_EXPORT -#define Q_UITOOLS_EXPORT Q_DECL_EXPORT -#define Q_DESIGNER_EXPORT Q_DECL_EXPORT +#ifdef KtCore_EXPORTS +# define Q_CORE_EXPORT Q_DECL_EXPORT +#else +# define Q_CORE_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtGui_EXPORTS +# define Q_GUI_EXPORT Q_DECL_EXPORT +#else +# define Q_GUI_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtSql_EXPORTS +# define Q_SQL_EXPORT Q_DECL_EXPORT +#else +# define Q_SQL_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtNetwork_EXPORTS +# define Q_NETWORK_EXPORT Q_DECL_EXPORT +#else +# define Q_NETWORK_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtSvg_EXPORTS +# define Q_SVG_EXPORT Q_DECL_EXPORT +#else +# define Q_SVG_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtTest_EXPORTS +# define Q_TEST_EXPORT Q_DECL_EXPORT +#else +# define Q_TEST_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtDeclarative_EXPORTS +# define Q_DECLARATIVE_EXPORT Q_DECL_EXPORT +#else +# define Q_DECLARATIVE_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtXml_EXPORTS +# define Q_XML_EXPORT Q_DECL_EXPORT +#else +# define Q_XML_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtScript_EXPORTS +# define Q_SCRIPT_EXPORT Q_DECL_EXPORT +#else +# define Q_SCRIPT_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtScriptTools_EXPORTS +# define Q_SCRIPTTOOLS_EXPORT Q_DECL_EXPORT +#else +# define Q_SCRIPTTOOLS_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtDBus_EXPORTS +# define Q_DBUS_EXPORT Q_DECL_EXPORT +#else +# define Q_DBUS_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtUiTools_EXPORTS +# define Q_UITOOLS_EXPORT Q_DECL_EXPORT +#else +# define Q_UITOOLS_EXPORT Q_DECL_IMPORT +#endif + +#ifdef KtDesigner_EXPORTS +# define Q_DESIGNER_EXPORT Q_DECL_EXPORT +#else +# define Q_DESIGNER_EXPORT Q_DECL_IMPORT +#endif #define Q_CORE_EXPORT_INLINE Q_CORE_EXPORT inline #define Q_GUI_EXPORT_INLINE Q_GUI_EXPORT inline