diff options
author | saturneric <[email protected]> | 2024-07-28 17:45:39 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-07-28 17:45:39 +0000 |
commit | 7a552f4d9dc0455b66ea2329bc1cd06a71bc6a79 (patch) | |
tree | c344bf0615bc49f80bb81519810bade0d6ea05ba | |
parent | fix: errors in judgment conditions (diff) | |
download | GpgFrontend-sdk/2.1.3.tar.gz GpgFrontend-sdk/2.1.3.zip |
feat: support more build modesdk/2.1.3
-rw-r--r-- | CMakeLists.txt | 51 | ||||
-rw-r--r-- | src/CMakeLists.txt | 35 | ||||
-rw-r--r-- | src/GpgFrontendContext.h | 4 | ||||
-rw-r--r-- | src/cmd.cpp | 7 | ||||
-rw-r--r-- | src/core/function/GlobalSettingStation.h | 2 | ||||
-rw-r--r-- | src/core/utils/BuildInfoUtils.cpp | 2 | ||||
-rw-r--r-- | src/core/utils/BuildInfoUtils.h | 7 | ||||
-rw-r--r-- | src/main.cpp | 10 |
8 files changed, 106 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d261fa5..4bbbaa5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,9 @@ option(GPGFRONTEND_BUILD_TYPE_TEST_ALL "Generate a graphical interface with all functions" OFF) option(GPGFRONTEND_BUILD_TYPE_STABLE "Generate release version" ON) -option(GPGFRONTEND_BUILD_TYPE_SDK "Generate a usable SDK" OFF) +option(GPGFRONTEND_BUILD_TYPE_FULL_SDK "Build and install all headers and libs exclude application" OFF) +option(GPGFRONTEND_BUILD_TYPE_ONLY_SDK "Build and install sdk headers and libs" OFF) +option(GPGFRONTEND_BUILD_TYPE_ONLY_APPLICATION "Generate a usable SDK" OFF) option(GPGFRONTEND_QT5_BUILD "Swith to Qt5 building mode" OFF) option(GPGFRONTEND_GENERATE_LINUX_INSTALL_SOFTWARE "Generate an installable version" OFF) option(GPGFRONTEND_ENABLE_ASAN "Enable ASAN" OFF) @@ -125,7 +127,7 @@ if (GPGFRONTEND_GENERATE_LINUX_INSTALL_SOFTWARE) set(LINUX_INSTALL_SOFTWARE 1) endif () -if (GPGFRONTEND_BUILD_TYPE_SDK) +if (GPGFRONTEND_BUILD_TYPE_FULL_SDK) set(GPGFRONTEND_BUILD_TYPE_TEST_CORE 0) set(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE 0) set(GPGFRONTEND_BUILD_TYPE_TEST_UI 0) @@ -133,7 +135,29 @@ if (GPGFRONTEND_BUILD_TYPE_SDK) unset(GPGFRONTEND_BUILD_CONFIG) set(STABLE_BUILD_APPLICATION 0) - set(STABLE_BUILD_SDK_ONLY 1) + set(STABLE_BUILD_FULL_SDK 1) +endif() + +if (GPGFRONTEND_BUILD_TYPE_ONLY_SDK) + set(GPGFRONTEND_BUILD_TYPE_TEST_CORE 0) + set(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE 0) + set(GPGFRONTEND_BUILD_TYPE_TEST_UI 0) + set(GPGFRONTEND_BUILD_TYPE_TEST_ALL 0) + unset(GPGFRONTEND_BUILD_CONFIG) + + set(STABLE_BUILD_APPLICATION 0) + set(STABLE_BUILD_ONLY_SDK 1) +endif() + +if (GPGFRONTEND_BUILD_TYPE_ONLY_APPLICATION) + set(GPGFRONTEND_BUILD_TYPE_TEST_CORE 0) + set(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE 0) + set(GPGFRONTEND_BUILD_TYPE_TEST_UI 0) + set(GPGFRONTEND_BUILD_TYPE_TEST_ALL 0) + unset(GPGFRONTEND_BUILD_CONFIG) + + set(STABLE_BUILD_APPLICATION 0) + set(STABLE_BUILD_ONLY_APPLICATION 1) endif() # C++ @@ -394,20 +418,35 @@ set(CMAKE_AUTORCC_OPTIONS "--compress;9") set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_AUTOUIC_SEARCH_PATHS} ${CMAKE_SOURCE_DIR}/ui) if (STABLE_BUILD_APPLICATION) - message("[+] Build Stable Application") + message("[*] Build Stable Application") set(BUILD_CORE 1) set(BUILD_UI 1) set(BUILD_TEST 1) + set(BUILD_SDK 1) set(BUILD_APPLICATION 1) set(SUPPORT_MULTI_LANG 1) +elseif (STABLE_BUILD_ONLY_SDK) + message("[*] Build SDK") + set(BUILD_CORE 1) + set(BUILD_UI 1) set(BUILD_SDK 1) -elseif (STABLE_BUILD_SDK_ONLY) - message("[+] Build SDK") +elseif (STABLE_BUILD_FULL_SDK) + message("[*] Build All Headers and Libs (SDK fully build)") set(BUILD_CORE 1) set(BUILD_UI 1) + set(BUILD_TEST 1) set(BUILD_SDK 1) +elseif (GPGFRONTEND_BUILD_TYPE_ONLY_APPLICATION) + message("[*] Build executable only") + set(BUILD_CORE 0) + set(BUILD_UI 0) + set(BUILD_TEST 0) + set(BUILD_SDK 0) + set(BUILD_APPLICATION 1) + set(SUPPORT_MULTI_LANG 1) endif () + # For instance in order to select the highest version one SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL) SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9b590b7b..a91bc2ea 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -405,6 +405,16 @@ if (BUILD_APPLICATION) endif () +if(STABLE_BUILD_ONLY_APPLICATION) + target_include_directories(${AppName} PUBLIC "${CMAKE_SOURCE_DIR}/src") + + if(GPGFRONTEND_QT5_BUILD) + target_link_libraries(${AppName} Qt5::Core Qt5::Widgets) + else() + target_link_libraries(${AppName} Qt6::Core Qt6::Widgets) + endif() +endif() + # link options for GpgFrontend if (BUILD_APPLICATION) target_link_libraries(${AppName} gpgfrontend_ui gpgfrontend_test) @@ -419,6 +429,8 @@ if (BUILD_APPLICATION) endif () endif () + + # add i18n support if (BUILD_APPLICATION) set(LOCALE_TS_PATH ${CMAKE_SOURCE_DIR}/resource/lfs/locale/ts) @@ -509,8 +521,8 @@ if (LINUX AND LINUX_INSTALL_SOFTWARE) DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/) endif () -# if building sdk -if (BUILD_SDK) +# if only build sdk +if (STABLE_BUILD_ONLY_SDK) include(GNUInstallDirs) set(GPGFRONTEND_SDK_INSTALL_LIBRARIES gpgfrontend_module_sdk) @@ -522,3 +534,22 @@ if (BUILD_SDK) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif () + + +# if build full sdk +if (STABLE_BUILD_FULL_SDK) + include(GNUInstallDirs) + set(GPGFRONTEND_SDK_INSTALL_LIBRARIES + mimalloc + gpgfrontend_core + gpgfrontend_ui + gpgfrontend_test + gpgfrontend_module_sdk) + + install(TARGETS ${GPGFRONTEND_SDK_INSTALL_LIBRARIES} + EXPORT GpgFrontendTargets + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif ()
\ No newline at end of file diff --git a/src/GpgFrontendContext.h b/src/GpgFrontendContext.h index c4c10690..9dd805b7 100644 --- a/src/GpgFrontendContext.h +++ b/src/GpgFrontendContext.h @@ -28,6 +28,10 @@ #pragma once +#include <qapplication.h> + +#include <memory> + namespace GpgFrontend { struct GpgFrontendContext; diff --git a/src/cmd.cpp b/src/cmd.cpp index 1f3182fe..06222431 100644 --- a/src/cmd.cpp +++ b/src/cmd.cpp @@ -28,11 +28,16 @@ #include "cmd.h" +#include <qdatetime.h> #include <qglobal.h> +#include <qloggingcategory.h> +#include <qstring.h> +#include <qtextstream.h> #include "core/utils/BuildInfoUtils.h" // GpgFrontend + #include "GpgFrontendContext.h" #include "test/GpgFrontendTest.h" @@ -40,7 +45,7 @@ namespace GpgFrontend { auto PrintVersion() -> int { QTextStream stream(stdout); - stream << PROJECT_NAME << " " << GetProjectVersion() << '\n'; + stream << GetProjectName() << " " << GetProjectVersion() << '\n'; stream << "Copyright (©) 2021 Saturneric <[email protected]>" << '\n' << QCoreApplication::tr( "This is free software; see the source for copying conditions.") diff --git a/src/core/function/GlobalSettingStation.h b/src/core/function/GlobalSettingStation.h index c907bdb5..d3287ac2 100644 --- a/src/core/function/GlobalSettingStation.h +++ b/src/core/function/GlobalSettingStation.h @@ -28,6 +28,8 @@ #pragma once +#include <qsettings.h> + #include "core/function/basic/GpgFunctionObject.h" namespace GpgFrontend { diff --git a/src/core/utils/BuildInfoUtils.cpp b/src/core/utils/BuildInfoUtils.cpp index 261057b7..65a0b43a 100644 --- a/src/core/utils/BuildInfoUtils.cpp +++ b/src/core/utils/BuildInfoUtils.cpp @@ -5,6 +5,8 @@ namespace GpgFrontend { +auto GetProjectName() -> QString { return {PROJECT_NAME}; } + auto GetProjectVersion() -> QString { return (QStringList{} << "v" << VERSION_MAJOR << "." << VERSION_MINOR << "." << VERSION_PATCH) diff --git a/src/core/utils/BuildInfoUtils.h b/src/core/utils/BuildInfoUtils.h index 07b0bb21..dfc9efe3 100644 --- a/src/core/utils/BuildInfoUtils.h +++ b/src/core/utils/BuildInfoUtils.h @@ -37,6 +37,13 @@ namespace GpgFrontend { * * @return QString */ +auto GPGFRONTEND_CORE_EXPORT GetProjectName() -> QString; + +/** + * @brief + * + * @return QString + */ auto GPGFRONTEND_CORE_EXPORT GetProjectVersion() -> QString; /** diff --git a/src/main.cpp b/src/main.cpp index 77856fe0..085ba03f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,14 +30,18 @@ * \mainpage GpgFrontend Develop Document Main Page */ +#include <qcommandlineparser.h> +#include <qloggingcategory.h> + +// #include "GpgFrontendContext.h" +#include "core/utils/MemoryUtils.h" + +// #include "app.h" #include "cmd.h" #include "init.h" -// -#include "core/utils/MemoryUtils.h" - /** * * @param argc |