aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt80
1 files changed, 79 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a96a11d..b82fd4dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,6 +4,84 @@ project(GpgFrontend VERSION 2.0.4 LANGUAGES CXX)
message(STATUS "GpgFrontend Build Configuration Started CMAKE Version ${CMAKE_VERSION}")
+# options
+option(GPGFRONTEND_BUILD_TYPE_TEST_CORE
+ "Only compile the core and generate the unit test program" OFF)
+option(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE
+ "Compile only the core and generate unit test programs that can evaluate test coverage" OFF)
+option(GPGFRONTEND_BUILD_TYPE_TEST_UI
+ "Only generate a graphical interface with basic functions" OFF)
+option(GPGFRONTEND_BUILD_TYPE_TEST_ALL
+ "Generate a graphical interface with all functions" OFF)
+option(GPGFRONTEND_BUILD_TYPE_STABLE
+ "Generate release version" ON)
+option(GENERATE_LINUX_INSTALL_SOFTWARE "Generate an installable version" OFF)
+option(GENERATE_APP_PACKAGE_DEB "Generate DEB package" OFF)
+option(CONFIGURE_FOR_XCODE_BUILD "Generate a version that can be successfully compiled and packaged in Xcode" OFF)
+
+# analyse options
+if (GPGFRONTEND_BUILD_TYPE_TEST_CORE)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_core")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_core_coverage")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_TEST_UI)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_ui")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_TEST_ALL)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_all")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_STABLE)
+
+ 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_APPLICATION_BUILD 1)
+endif ()
+
+if (GENERATE_LINUX_INSTALL_SOFTWARE)
+
+ 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(LINUX_INSTALL_SOFTWARE 1)
+ set(GENERATE_APP_PACKAGE_DEB 1)
+endif ()
+
+if (GENERATE_LINUX_INSTALL_SOFTWARE AND GENERATE_APP_PACKAGE_DEB)
+ set(APP_PACKAGE_DEB 1)
+endif ()
+
+if (CONFIGURE_FOR_XCODE_BUILD)
+ set(GENERATE_LINUX_INSTALL_SOFTWARE 0)
+ set(GENERATE_APP_PACKAGE_DEB 0)
+ set(LINUX_INSTALL_SOFTWARE 0)
+ set(APP_PACKAGE_DEB 0)
+
+ 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_APPLICATION_BUILD 1)
+endif ()
+
# C++
#Detect Compiler
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
@@ -228,7 +306,7 @@ if (GPG_STANDALONE_MODE)
add_compile_definitions(GPG_STANDALONE_MODE)
endif ()
-# Basic Envirnoment Configure
+# Basic Environment Configure
set(BASIC_ENV_CONFIG 1)
set(QT_MOC_CONFIG 1)
set(EASY_LOGGING_PP 1)