From af02370f75410d0b0169b1c8ecd40636058b3f29 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Wed, 24 Apr 2024 20:40:04 -0400 Subject: [PATCH] Use a proper export header --- CMakeLists.txt | 1 + common/CMakeLists.txt | 10 +++++++++- common/include/aboutdata.h | 5 ++++- common/include/filecache.h | 4 +++- common/include/filetypes.h | 4 +++- common/include/novusmainwindow.h | 4 +++- common/include/quaternionedit.h | 4 +++- common/include/settings.h | 4 +++- common/include/vec3edit.h | 4 +++- 9 files changed, 32 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d048170..30d38e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ include(KDEGitCommitHooks) include(KDEClangFormat) include(FeatureSummary) include(FetchContent) +include(ECMGenerateExportHeader) ecm_setup_version(${PROJECT_VERSION} VARIABLE_PREFIX NOVUS diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 262edc7..96758d8 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -2,7 +2,6 @@ # SPDX-License-Identifier: CC0-1.0 if (WIN32) - set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) add_library(novus-common SHARED) else() add_library(novus-common STATIC) @@ -40,6 +39,15 @@ target_link_libraries(novus-common Qt6::Widgets glm::glm) target_compile_definitions(novus-common PRIVATE TRANSLATION_DOMAIN="novus") +set_target_properties(novus-common PROPERTIES + EXPORT_NAME NovusCommon +) +ecm_generate_export_header(novus-common + BASE_NAME NovusCommon + VERSION 1.0.0 +) + +target_include_directories(novus-common PUBLIC "$") add_library(Novus::Common ALIAS novus-common) diff --git a/common/include/aboutdata.h b/common/include/aboutdata.h index 32e87d1..159d2ea 100644 --- a/common/include/aboutdata.h +++ b/common/include/aboutdata.h @@ -6,4 +6,7 @@ #include #include -void customizeAboutData(const QString &componentName, const QString &desktopFilename, const QString &applicationTitle, const QString &applicationDescription); \ No newline at end of file +#include "novuscommon_export.h" + +NOVUSCOMMON_EXPORT void +customizeAboutData(const QString &componentName, const QString &desktopFilename, const QString &applicationTitle, const QString &applicationDescription); \ No newline at end of file diff --git a/common/include/filecache.h b/common/include/filecache.h index faabe15..0570943 100644 --- a/common/include/filecache.h +++ b/common/include/filecache.h @@ -9,9 +9,11 @@ #include #include +#include "novuscommon_export.h" + struct GameData; -class FileCache +class NOVUSCOMMON_EXPORT FileCache { public: explicit FileCache(GameData &data); diff --git a/common/include/filetypes.h b/common/include/filetypes.h index 66f3d9a..121d857 100644 --- a/common/include/filetypes.h +++ b/common/include/filetypes.h @@ -5,9 +5,11 @@ #include +#include "novuscommon_export.h" + enum class FileType { Unknown, ExcelList, ExcelHeader, ExcelData, Model, Texture, ShaderPackage, CharaMakeParams, Skeleton, Dictionary }; -class FileTypes +class NOVUSCOMMON_EXPORT FileTypes { public: static FileType getFileType(const QString &extension); diff --git a/common/include/novusmainwindow.h b/common/include/novusmainwindow.h index 9b88552..39892d0 100644 --- a/common/include/novusmainwindow.h +++ b/common/include/novusmainwindow.h @@ -5,7 +5,9 @@ #include -class NovusMainWindow : public QMainWindow +#include "novuscommon_export.h" + +class NOVUSCOMMON_EXPORT NovusMainWindow : public QMainWindow { public: explicit NovusMainWindow(); diff --git a/common/include/quaternionedit.h b/common/include/quaternionedit.h index 741f9a2..ef18534 100644 --- a/common/include/quaternionedit.h +++ b/common/include/quaternionedit.h @@ -8,7 +8,9 @@ #include -class QuaternionEdit : public QWidget +#include "novuscommon_export.h" + +class NOVUSCOMMON_EXPORT QuaternionEdit : public QWidget { Q_OBJECT diff --git a/common/include/settings.h b/common/include/settings.h index 44691de..c485908 100644 --- a/common/include/settings.h +++ b/common/include/settings.h @@ -5,4 +5,6 @@ #include -QString getGameDirectory(); \ No newline at end of file +#include "novuscommon_export.h" + +NOVUSCOMMON_EXPORT QString getGameDirectory(); \ No newline at end of file diff --git a/common/include/vec3edit.h b/common/include/vec3edit.h index 38ee7d5..02afc88 100644 --- a/common/include/vec3edit.h +++ b/common/include/vec3edit.h @@ -7,7 +7,9 @@ #include #include -class Vector3Edit : public QWidget +#include "novuscommon_export.h" + +class NOVUSCOMMON_EXPORT Vector3Edit : public QWidget { Q_OBJECT