OSDN Git Service

export component symbols only when building them [ci reset]
authorIvailo Monev <xakepa10@gmail.com>
Tue, 24 Aug 2021 20:34:39 +0000 (23:34 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Tue, 24 Aug 2021 20:34:55 +0000 (23:34 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
cmake/modules/OptimizeHeaders.cmake
src/core/global/qglobal.h

index 8cc602a..467e370 100644 (file)
@@ -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}")
index 236594b..c427b4f 100644 (file)
@@ -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