]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - CMakeLists.txt
Add a default folder icon to the edit folder dialog. https://redmine.stoutner.com...
[PrivacyBrowserPC.git] / CMakeLists.txt
index ca98f3512c7a40611ce3edc0d703c97bdb9fba16..42b28dd527ca4dd9ae1208fe41b3e56abfdbbdc5 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+# Copyright 2022-2023 Soren Stoutner <soren@stoutner.com>.
 #
 # This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
 #
 # You should have received a copy of the GNU General Public License
 # along with Privacy Browser PC.  If not, see <http://www.gnu.org/licenses/>.
 
+
+# Set the minimum CMake version.
 cmake_minimum_required(VERSION 3.16)
 
+# Name the project.
 project(privacybrowser)
 
 # Set the minimum framework versions.
 set(QT_MIN_VERSION "5.15.0")
 set(KDE_FRAMEWORKS_MIN_VERSION "5.83.0")
 
+# Load the Extra CMake Modules that correspond to the KDE Frameworks version.
 find_package(ECM ${KDE_FRAMEWORKS_MIN_VERSION} REQUIRED NO_MODULE)
+
+# Set the CMake module path.
 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
 
+# Include the KDE modules.
 include(KDEInstallDirs)
 include(KDECMakeSettings)
 include(KDECompilerSettings NO_POLICY_SCOPE)
 
+# Include the Extra CMake Modules.
 include(ECMInstallIcons)
 include(ECMQtDeclareLoggingCategory)
 include(FeatureSummary)
 
-find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Widgets)
+# Include the Position Independent Executable checker.  <https://cmake.org/cmake/help/latest/policy/CMP0083.html>
+include(CheckPIESupported)
+
+# Check to see if Position Independent Executable is supported in the current linker and environment.
+check_pie_supported()
+
+# Add the Position Independent Executable compiler flag if it is supported in the current linker and environment.  <https://cmake.org/cmake/help/latest/variable/CMAKE_POSITION_INDEPENDENT_CODE.html>
+set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
+
+# Load the Qt components.
+find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
+    Core
+    Gui
+    PrintSupport
+    Sql
+    WebEngineCore
+    WebEngineWidgets
+    Widgets
+)
 
+# Load the KDE Frameworks components.
 find_package(KF5 ${KDE_FRAMEWORKS_MIN_VERSION} REQUIRED COMPONENTS
+    Completion
     ConfigWidgets
     CoreAddons
     Crash
     DBusAddons
     DocTools
     I18n
+    Notifications
+    KIO
     XmlGui
 )
 
+# Add the subdirectories.
 add_subdirectory(doc)
 add_subdirectory(src)
 
-# Make it possible to use the po files fetched by the fetch-translations step
-ki18n_install(po)
-kdoctools_install(po)
+# Install the PO files.  These should be enabled once there are PO translations.
+#ki18n_install(po)
+#kdoctools_install(po)
 
+# Generate a summary.
 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)