]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/CMakeLists.txt
Add user agent controls.
[PrivacyBrowserPC.git] / src / CMakeLists.txt
index 75bdc675ddc57e730b703bbd641269b068d30e3a..8f184ad26ee8ff6a3f9ade1726e2e36390774ec3 100644 (file)
@@ -1,33 +1,77 @@
-add_executable(privacybrowserpc)
+# Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+#
+# This file is part of Privacy Browser PC <https://www.stoutner.com/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.
+#
+# 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.
+#
+# 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/>.
 
-target_sources(privacybrowserpc PRIVATE
+
+# Create the executable and add the resources.
+add_executable(privacy-browser resources.qrc)
+
+# List the sources to include in the executable.
+target_sources(privacy-browser PRIVATE
+    BrowserWindow.cpp
     main.cpp
-    privacybrowserpcwindow.cpp
-    privacybrowserpcview.cpp
+    MainView.cpp
+    MouseEventFilter.cpp
+    UserAgentHelper.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(privacy-browser
+    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(privacy-browser Settings.kcfgc)
+
+# Use KDE Frameworks to handle internationalization of the following UI files.
+ki18n_wrap_ui(privacy-browser
+    MainView.ui
+    SettingsPrivacy.ui
+    SettingsGeneral.ui
 )
 
-target_link_libraries(privacybrowserpc
+# Link the following libraries.
+target_link_libraries(privacy-browser
+    Qt5::Core
+    Qt5::Gui
+    Qt5::Widgets
+    Qt5::WebEngineWidgets
+    KF5::Completion
+    KF5::ConfigWidgets
     KF5::CoreAddons
+    KF5::Crash
+    KF5::DBusAddons
+    KF5::DocTools
     KF5::I18n
     KF5::XmlGui
-    KF5::ConfigWidgets
-    KF5::DBusAddons
-    KF5::Crash
-    Qt5::Widgets
 )
 
-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)
+# Install Privacy Browser using the default KDE arguments.
+install(TARGETS privacy-browser ${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 Privacy Browser's metadata file.
+install(FILES com.stoutner.privacybrowser.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
+
+# Install Privacy Browser's RC (Runtime Configuration) file.
+install(FILES privacybrowserui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/privacybrowser)
+
+# Install Privacy Browser's icon.
+ecm_install_icons(ICONS icons/sc-apps-privacy-browser.svg DESTINATION ${KDE_INSTALL_ICONDIR})