X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2FCMakeLists.txt;h=335a27d06975e7c32af2ea2db9b05f0e88418285;hp=077ff051da2a63c212052ae9c89fd16362bf3fe4;hb=refs%2Fheads%2Fmaster;hpb=597b6f74d41343f57e288694ec499e2303022f7e diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 077ff05..799c44e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,51 +1,120 @@ -# Copyright © 2022 Soren Stoutner . +# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-FileCopyrightText: 2022-2025 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 -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# 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. # -# Privacy Browser PC 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. +# 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 Privacy Browser PC. If not, see . +# You should have received a copy of the GNU General Public License along with +# this program. If not, see . # 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 - mainwindow.cpp - privacybrowserpcview.cpp ) +# Add the Qt logging category. This will create the `debug.h` header file. ecm_qt_declare_logging_category(privacybrowser - HEADER privacybrowserpcdebug.h + HEADER debug.h IDENTIFIER PRIVACYBROWSER CATEGORY_NAME "privacybrowser" ) -kconfig_add_kcfg_files(privacybrowser PrivacyBrowserPCSettings.kcfgc) + +# 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 - privacybrowserpcview.ui - settings.ui + 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 ) +# Link the following libraries. target_link_libraries(privacybrowser - KF5::CoreAddons - KF5::I18n - KF5::XmlGui - KF5::ConfigWidgets - KF5::DBusAddons - KF5::Crash - Qt5::Widgets + 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 ) +# 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(PROGRAMS com.stoutner.privacybrowser DESTINATION ${KDE_INSTALL_APPDIR}) -install(FILES com.stounter.privacybrowser.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) -install(FILES privacybrowserpcui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/privacybrowser) # TODO + +# 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/)