X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2FCMakeLists.txt;h=335a27d06975e7c32af2ea2db9b05f0e88418285;hb=HEAD;hp=75bdc675ddc57e730b703bbd641269b068d30e3a;hpb=6b2e1320fae530d918e617bbf2eab7b34e454498;p=PrivacyBrowserPC.git diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 75bdc67..799c44e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,33 +1,120 @@ -add_executable(privacybrowserpc) +# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-FileCopyrightText: 2022-2025 Soren Stoutner +# +# This file is part of Privacy Browser PC . +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program. If not, see . -target_sources(privacybrowserpc PRIVATE +# Create the executable and add the resources. +add_executable(privacybrowser resources.qrc) + +# List the sources to include in the executable. +target_sources(privacybrowser PRIVATE main.cpp - privacybrowserpcwindow.cpp - privacybrowserpcview.cpp ) -ecm_qt_declare_logging_category(privacybrowserpc - HEADER privacybrowserpcdebug.h - IDENTIFIER PRIVACYBROWSERPC - CATEGORY_NAME "privacybrowserpc" +# Add the Qt logging category. This will create the `debug.h` header file. +ecm_qt_declare_logging_category(privacybrowser + HEADER debug.h + IDENTIFIER PRIVACYBROWSER + CATEGORY_NAME "privacybrowser" ) -kconfig_add_kcfg_files(privacybrowserpc PrivacyBrowserPCSettings.kcfgc) -ki18n_wrap_ui(privacybrowserpc - privacybrowserpcview.ui - settings.ui + +# Include the KConfig controller file. +kconfig_add_kcfg_files(privacybrowser settings/Settings.kcfgc) + +# Use KDE Frameworks to handle internationalization of the following UI files. +ki18n_wrap_ui(privacybrowser + uis/AddBookmarkDialog.ui + uis/AddFolderDialog.ui + uis/AddOrEditCookieDialog.ui + uis/AddTabWidget.ui + uis/BookmarksDialog.ui + uis/CookiesDialog.ui + uis/DomainSettingsDialog.ui + uis/DurableCookiesDialog.ui + uis/EditBookmarkDialog.ui + uis/EditFolderDialog.ui + uis/FilterEntryDialog.ui + uis/FilterListsDialog.ui + uis/HttpAuthenticationDialog.ui + uis/RequestDetailDialog.ui + uis/RequestsDialog.ui + uis/SaveDialog.ui + uis/SettingsGeneral.ui + uis/SettingsPrivacy.ui + uis/SettingsSpellCheck.ui + uis/TabWidget.ui ) -target_link_libraries(privacybrowserpc - KF5::CoreAddons - KF5::I18n - KF5::XmlGui - KF5::ConfigWidgets - KF5::DBusAddons - KF5::Crash - Qt5::Widgets +# Link the following libraries. +target_link_libraries(privacybrowser + Qt6::Core + Qt6::Gui + Qt6::Sql + Qt6::PrintSupport + Qt6::Widgets + Qt6::WebEngineCore + Qt6::WebEngineWidgets + KF6::Completion + KF6::ConfigWidgets + KF6::CoreAddons + KF6::Crash + KF6::DBusAddons + KF6::DocTools + KF6::I18n + KF6::Notifications + KF6::KIOCore + KF6::KIOWidgets + KF6::XmlGui ) -install(TARGETS privacybrowserpc ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) -install(PROGRAMS org.example.privacybrowserpc.desktop DESTINATION ${KDE_INSTALL_APPDIR}) -install(FILES org.example.privacybrowserpc.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) -install(FILES privacybrowserpcui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/privacybrowserpc) +# Add the subdirectories. +add_subdirectory(databases) +add_subdirectory(delegates) +add_subdirectory(dialogs) +add_subdirectory(filters) +add_subdirectory(helpers) +add_subdirectory(interceptors) +add_subdirectory(ui.rcs) +add_subdirectory(widgets) +add_subdirectory(windows) + +# Install Privacy Browser using the default KDE arguments. +install(TARGETS privacybrowser ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + +# Install Privacy Browser according to the instructions in the desktop file, specifying the permissions. +install(PROGRAMS com.stoutner.privacybrowser.desktop DESTINATION ${KDE_INSTALL_APPDIR} PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) + +# Install the metainfo file. +install(FILES com.stoutner.privacybrowser.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) + +# Install the notifyrc file. +install(FILES privacybrowser.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFYRCDIR}) + +# Install the standard icons. +ecm_install_icons(ICONS icons/sc-apps-privacybrowser.svg DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/16-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/22-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/24-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/32-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/48-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/64-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/128-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/256-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/512-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) +ecm_install_icons(ICONS icons/1024-apps-privacybrowser.png DESTINATION ${KDE_INSTALL_ICONDIR}) + +# Install the symbolic icon (used by Gnome). +install(FILES icons/privacybrowser-symbolic.svg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/symbolic/apps/)