X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=CMakeLists.txt;h=d6408ec8db956ca1163cf2348afc640dece8e842;hp=ca98f3512c7a40611ce3edc0d703c97bdb9fba16;hb=refs%2Fheads%2Fmaster;hpb=597b6f74d41343f57e288694ec499e2303022f7e diff --git a/CMakeLists.txt b/CMakeLists.txt index ca98f35..16aec16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ -# Copyright © 2022 Soren Stoutner . +# Copyright 2022-2023 Soren Stoutner . # -# This file is part of Privacy Browser PC . +# This file is part of Privacy Browser PC . # # Privacy Browser PC is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -15,42 +15,74 @@ # You should have received a copy of the GNU General Public License # along with Privacy Browser PC. If not, see . + +# 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. +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. +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)