aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-07-28 17:45:39 +0000
committersaturneric <[email protected]>2024-07-28 17:45:39 +0000
commit7a552f4d9dc0455b66ea2329bc1cd06a71bc6a79 (patch)
treec344bf0615bc49f80bb81519810bade0d6ea05ba
parentfix: errors in judgment conditions (diff)
downloadGpgFrontend-sdk/2.1.3.tar.gz
GpgFrontend-sdk/2.1.3.zip
feat: support more build modesdk/2.1.3
-rw-r--r--CMakeLists.txt51
-rw-r--r--src/CMakeLists.txt35
-rw-r--r--src/GpgFrontendContext.h4
-rw-r--r--src/cmd.cpp7
-rw-r--r--src/core/function/GlobalSettingStation.h2
-rw-r--r--src/core/utils/BuildInfoUtils.cpp2
-rw-r--r--src/core/utils/BuildInfoUtils.h7
-rw-r--r--src/main.cpp10
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