From fabf1080b62a54c7ec2dc6da7709186c80cb20cd Mon Sep 17 00:00:00 2001
From: aqua
Date: Fri, 26 Apr 2024 22:24:19 +0300
Subject: Added cmakelists
---
CMakeLists.txt | 36 +++++++
include/version.h.in | 8 --
lib/bookmarks/CMakeLists.txt | 9 ++
lib/bookmarks/meson.build | 16 ---
lib/configuration/CMakeLists.txt | 6 ++
lib/downloads/CMakeLists.txt | 8 ++
lib/downloads/meson.build | 19 ----
lib/pluginloader/CMakeLists.txt | 0
lib/session_formats/CMakeLists.txt | 5 +
lib/urlfilter/CMakeLists.txt | 27 +++++
lib/urlfilter/meson.build | 26 -----
src/CMakeLists.txt | 76 +++++++++++++
src/about/CMakeLists.txt | 12 +++
src/about/aboutdialog.cpp | 6 +-
src/about/meson.build | 21 ----
src/browser.cpp | 13 ++-
src/main.cpp | 117 ++-------------------
src/version.h.in | 8 ++
src/webengine/CMakeLists.txt | 10 ++
subprojects/args.wrap | 6 --
subprojects/catch2.wrap | 10 --
.../packagefiles/SingleApplication/meson.build | 38 -------
.../SingleApplication/meson_options.txt | 1 -
subprojects/singleapplication.wrap | 8 --
subprojects/spdlog.wrap | 10 --
25 files changed, 222 insertions(+), 274 deletions(-)
create mode 100644 CMakeLists.txt
delete mode 100644 include/version.h.in
create mode 100644 lib/bookmarks/CMakeLists.txt
delete mode 100644 lib/bookmarks/meson.build
create mode 100644 lib/configuration/CMakeLists.txt
create mode 100644 lib/downloads/CMakeLists.txt
delete mode 100644 lib/downloads/meson.build
create mode 100644 lib/pluginloader/CMakeLists.txt
create mode 100644 lib/session_formats/CMakeLists.txt
create mode 100644 lib/urlfilter/CMakeLists.txt
delete mode 100644 lib/urlfilter/meson.build
create mode 100644 src/CMakeLists.txt
create mode 100644 src/about/CMakeLists.txt
delete mode 100644 src/about/meson.build
create mode 100644 src/version.h.in
create mode 100644 src/webengine/CMakeLists.txt
delete mode 100644 subprojects/args.wrap
delete mode 100644 subprojects/catch2.wrap
delete mode 100644 subprojects/packagefiles/SingleApplication/meson.build
delete mode 100644 subprojects/packagefiles/SingleApplication/meson_options.txt
delete mode 100644 subprojects/singleapplication.wrap
delete mode 100644 subprojects/spdlog.wrap
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..5fae124
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,36 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(smolbote VERSION 0.1.0 LANGUAGES CXX)
+
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+# set C++ standard for all targets
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+# dependencies
+find_package(GTest)
+enable_testing()
+
+find_package(spdlog)
+
+find_package(Qt6 6.0.0 COMPONENTS Network Widgets SvgWidgets WebEngineCore WebEngineWidgets Concurrent REQUIRED)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
+set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication")
+add_subdirectory(third_party/SingleApplication)
+
+add_subdirectory(lib/bookmarks)
+add_subdirectory(lib/configuration)
+add_subdirectory(lib/downloads)
+#add_subdirectory(lib/pluginloader)
+add_subdirectory(lib/session_formats)
+add_subdirectory(lib/urlfilter)
+
+add_subdirectory(src/about)
+add_subdirectory(src/webengine)
+add_subdirectory(src)
+
diff --git a/include/version.h.in b/include/version.h.in
deleted file mode 100644
index 44f10d9..0000000
--- a/include/version.h.in
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef SMOLBOTE_VERSION_H
-#define SMOLBOTE_VERSION_H
-
-// output of 'git describe --long --abbrev=40':
-// x.y.z-0-g0123456789012345678901234567890123456789
-#define poi_Version "@VCS_TAG@"
-
-#endif // SMOLBOTE_VERSION_H
diff --git a/lib/bookmarks/CMakeLists.txt b/lib/bookmarks/CMakeLists.txt
new file mode 100644
index 0000000..d4bd3c7
--- /dev/null
+++ b/lib/bookmarks/CMakeLists.txt
@@ -0,0 +1,9 @@
+add_library(bookmarks STATIC
+ bookmarkformat.cpp bookmarkformat.h
+ bookmarkitem.cpp bookmarkitem.h
+ bookmarkmodel.cpp bookmarkmodel.h
+ formats/xbel.cpp formats/xbel.h
+ formats/ffjson.cpp formats/ffjson.h
+)
+target_link_libraries(bookmarks PUBLIC Qt6::Widgets)
+target_include_directories(bookmarks PUBLIC ${CMAKE_CURRENT_LIST_DIR})
diff --git a/lib/bookmarks/meson.build b/lib/bookmarks/meson.build
deleted file mode 100644
index 81c1ece..0000000
--- a/lib/bookmarks/meson.build
+++ /dev/null
@@ -1,16 +0,0 @@
-bookmarks_moc = mod_qt5.preprocess(
- moc_headers: [ 'bookmarkmodel.h' ],
- dependencies: dep_qt5
-)
-
-bookmarks_lib = static_library('bookmarks',
- [ bookmarks_moc,
- 'bookmarkformat.cpp', 'formats/xbel.cpp', 'formats/ffjson.cpp',
- 'bookmarkitem.cpp', 'bookmarkmodel.cpp' ],
- dependencies: dep_qt5
-)
-
-dep_bookmarks = declare_dependency(
- include_directories: include_directories('.'),
- link_with: bookmarks_lib
-)
diff --git a/lib/configuration/CMakeLists.txt b/lib/configuration/CMakeLists.txt
new file mode 100644
index 0000000..9e2f34e
--- /dev/null
+++ b/lib/configuration/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_library(configuration STATIC
+ configuration.cpp configuration.h
+ qt_specialization.cpp qt_specialization.h
+)
+target_link_libraries(configuration PUBLIC Qt6::Gui)
+target_include_directories(configuration PUBLIC ${CMAKE_CURRENT_LIST_DIR})
diff --git a/lib/downloads/CMakeLists.txt b/lib/downloads/CMakeLists.txt
new file mode 100644
index 0000000..b310e3a
--- /dev/null
+++ b/lib/downloads/CMakeLists.txt
@@ -0,0 +1,8 @@
+add_library(downloads STATIC
+ downloadsform.ui
+ downloadswidget.cpp downloadswidget.h
+ widgets/downloaditemform.ui widgets/downloaditemwidget.cpp widgets/downloaditemwidget.h
+ widgets/elidedlabel.cpp widgets/elidedlabel.h
+)
+target_link_libraries(downloads PUBLIC Qt6::Widgets Qt6::WebEngineWidgets)
+target_include_directories(downloads PUBLIC ${CMAKE_CURRENT_LIST_DIR})
diff --git a/lib/downloads/meson.build b/lib/downloads/meson.build
deleted file mode 100644
index 9b86391..0000000
--- a/lib/downloads/meson.build
+++ /dev/null
@@ -1,19 +0,0 @@
-downloads_inc = include_directories('.')
-downloads_moc = mod_qt5.preprocess(
- moc_headers: ['downloadswidget.h', 'widgets/downloaditemwidget.h', 'widgets/elidedlabel.h'],
- ui_files: ['downloadsform.ui', 'widgets/downloaditemform.ui'],
- dependencies: dep_qt5
-)
-
-downloads_lib = static_library('downloads',
- ['downloadswidget.cpp', downloads_moc,
- 'widgets/downloaditemwidget.cpp', 'widgets/elidedlabel.cpp'],
- dependencies: dep_qt5
-)
-
-dep_downloads = declare_dependency(
- include_directories: downloads_inc,
- link_with: downloads_lib,
- sources: ['downloadswidget.cpp', downloads_moc,
- 'widgets/downloaditemwidget.cpp', 'widgets/elidedlabel.cpp']
-)
diff --git a/lib/pluginloader/CMakeLists.txt b/lib/pluginloader/CMakeLists.txt
new file mode 100644
index 0000000..e69de29
diff --git a/lib/session_formats/CMakeLists.txt b/lib/session_formats/CMakeLists.txt
new file mode 100644
index 0000000..c043559
--- /dev/null
+++ b/lib/session_formats/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_library(session_formats STATIC
+ session_json.cpp session_json.hpp
+)
+target_link_libraries(session_formats PUBLIC Qt6::Core)
+target_include_directories(session_formats PUBLIC ${CMAKE_CURRENT_LIST_DIR} ${PROJECT_SOURCE_DIR}/include)
diff --git a/lib/urlfilter/CMakeLists.txt b/lib/urlfilter/CMakeLists.txt
new file mode 100644
index 0000000..012839d
--- /dev/null
+++ b/lib/urlfilter/CMakeLists.txt
@@ -0,0 +1,27 @@
+add_library(urlfilter STATIC
+ matcher.h urlfilter.h
+ adblock/adblocklist.cpp adblock/adblocklist.h
+ adblock/parser.cpp adblock/parser.h
+ hostlist/hostlist.cpp hostlist/hostlist.h
+)
+target_link_libraries(urlfilter PUBLIC Qt6::WebEngineCore)
+target_include_directories(urlfilter PUBLIC ${CMAKE_CURRENT_LIST_DIR})
+
+
+add_executable(test_urlfilter_matcher test/matcher.cpp)
+target_link_libraries(test_urlfilter_matcher PUBLIC urlfilter GTest::gtest_main)
+gtest_add_tests(TARGET test_urlfilter_matcher
+ SOURCES test/matcher.cpp
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/test)
+
+add_executable(test_urlfilter_hostlist test/hostlist.cpp)
+target_link_libraries(test_urlfilter_hostlist PUBLIC urlfilter GTest::gtest_main)
+gtest_add_tests(TARGET test_urlfilter_hostlist
+ SOURCES test/hostlist.cpp
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/test)
+
+add_executable(test_urlfilter_adblock test/adblock.cpp)
+target_link_libraries(test_urlfilter_adblock PUBLIC urlfilter GTest::gtest_main)
+gtest_add_tests(TARGET test_urlfilter_adblock
+ SOURCES test/adblock.cpp
+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/test)
diff --git a/lib/urlfilter/meson.build b/lib/urlfilter/meson.build
deleted file mode 100644
index 2591028..0000000
--- a/lib/urlfilter/meson.build
+++ /dev/null
@@ -1,26 +0,0 @@
-urlfilter_lib = static_library('urlfilter',
- ['urlfilter.h', 'matcher.h',
- 'hostlist/hostlist.cpp', 'hostlist/hostlist.h',
- 'adblock/adblocklist.cpp', 'adblock/adblocklist.h', 'adblock/parser.cpp', 'adblock/parser.h'],
- dependencies: dep_qt5
-)
-
-dep_urlfilter = declare_dependency(
- include_directories: include_directories('.'),
- link_with: urlfilter_lib
-)
-
-if dep_gtest.found()
- test('urlfilter: matcher',
- executable('urlfilter-matcher', dependencies: [dep_qt5, dep_gtest, dep_urlfilter], sources: ['test/matcher.cpp']),
- workdir: meson.current_source_dir() / 'test'
- )
- test('urlfilter: host list',
- executable('urlfilter-hostlist', dependencies: [dep_qt5, dep_gtest, dep_urlfilter], sources: ['test/hostlist.cpp']),
- workdir: meson.current_source_dir() / 'test'
- )
- test('urlfilter: adblock list',
- executable('urlfilter-adblocklist', dependencies: [dep_qt5, dep_gtest, dep_urlfilter], sources: ['test/adblock.cpp']),
- workdir: meson.current_source_dir() / 'test'
- )
-endif
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..b1ec891
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,76 @@
+# settings.h
+add_custom_target(settings.h
+ ${PROJECT_SOURCE_DIR}/scripts/gen-default-cfg.py
+ --kconfig ${PROJECT_SOURCE_DIR}/Kconfig
+ --dotconfig ${PROJECT_SOURCE_DIR}/linux/.config
+ --input ${CMAKE_CURRENT_LIST_DIR}/settings.h.in
+ --output settings.h
+ BYPRODUCTS settings.h
+)
+
+# version.h
+configure_file(version.h.in version.h)
+
+add_executable(poi
+ applicationmenu.cpp
+ applicationmenu.h
+ bookmarks/bookmarksform.ui
+ bookmarks/bookmarkstoolbar.cpp
+ bookmarks/bookmarkstoolbar.h
+ bookmarks/bookmarkswidget.cpp
+ bookmarks/bookmarkswidget.h
+ #bookmarks/builtins.cpp
+ bookmarks/editbookmarkdialog.cpp
+ bookmarks/editbookmarkdialog.h
+ bookmarks/editbookmarkdialog.ui
+ browser.cpp
+ browser.h
+ #builtins.cpp
+ #builtins.h
+ #crashhandler.cpp
+ #crashhandler.h
+ #crashhandler_dummy.cpp
+ main.cpp
+ mainwindow/addressbar.cpp
+ mainwindow/addressbar.h
+ mainwindow/addressbar.ui
+ mainwindow/mainwindow.cpp
+ mainwindow/mainwindow.h
+ mainwindow/menubar.cpp
+ mainwindow/menubar.h
+ mainwindow/widgets/completer.cpp
+ mainwindow/widgets/completer.h
+ mainwindow/widgets/dockwidget.cpp
+ mainwindow/widgets/dockwidget.h
+ mainwindow/widgets/menusearch.cpp
+ mainwindow/widgets/menusearch.h
+ mainwindow/widgets/navigationbar.cpp
+ mainwindow/widgets/navigationbar.h
+ mainwindow/widgets/searchform.cpp
+ mainwindow/widgets/searchform.h
+ mainwindow/widgets/searchform.ui
+ mainwindow/widgets/urllineedit.cpp
+ mainwindow/widgets/urllineedit.h
+ session/savesessiondialog.cpp
+ session/savesessiondialog.h
+ session/savesessiondialog.ui
+ session/sessiondialog.cpp
+ session/sessiondialog.h
+ session/sessiondialog.ui
+ subwindow/subwindow.cpp
+ subwindow/subwindow.h
+ subwindow/tabwidget.cpp
+ subwindow/tabwidget.h
+ util.cpp
+ util.h
+ wallet/wallet.cpp
+ wallet/wallet.h
+)
+target_sources(poi PRIVATE settings.h)
+target_include_directories(poi PRIVATE ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+target_link_libraries(poi
+ PRIVATE SingleApplication::SingleApplication spdlog::spdlog
+ PRIVATE bookmarks configuration downloads session_formats urlfilter
+ PRIVATE about webengine
+)
+
diff --git a/src/about/CMakeLists.txt b/src/about/CMakeLists.txt
new file mode 100644
index 0000000..f1e2c41
--- /dev/null
+++ b/src/about/CMakeLists.txt
@@ -0,0 +1,12 @@
+add_library(about STATIC
+ aboutdialog.cpp aboutdialog.h aboutdialog.ui
+ aboutplugin.cpp aboutplugin.h aboutplugin.ui
+)
+target_link_libraries(about PUBLIC Qt6::Widgets Qt6::SvgWidgets)
+target_include_directories(about PUBLIC ${CMAKE_CURRENT_LIST_DIR})
+
+# tests
+add_executable(test_about test/main.cpp)
+target_link_libraries(test_about PRIVATE about)
+add_test(NAME about_dialog COMMAND $ -platform offscreen)
+set_property(TEST about_dialog PROPERTY ENVIRONMENT autoclose=1)
diff --git a/src/about/aboutdialog.cpp b/src/about/aboutdialog.cpp
index 894b1ec..1013866 100644
--- a/src/about/aboutdialog.cpp
+++ b/src/about/aboutdialog.cpp
@@ -8,7 +8,6 @@
#include "aboutdialog.h"
#include "ui_aboutdialog.h"
-#include
// compiler
// clang also defines __GNUC__, so we need to check for clang first
@@ -59,7 +58,7 @@ AboutDialog::AboutDialog(QWidget *parent)
"This program is distributed in the hope that it will be useful, but without any warranty.
"
"You can read the full terms of the license on the GNU website.
"));
- ui->detailsLabel->setText(tr("Version " poi_Version "
"
+ ui->detailsLabel->setText(tr("Version %1
"
"Compiled with " compiler "
"
"Libraries:
"
"- Qt5 " QT_VERSION_STR "
"
@@ -69,7 +68,8 @@ AboutDialog::AboutDialog(QWidget *parent)
#ifdef CONFIG_USEBREAKPAD
"- Breakpad
"
#endif
- "
"));
+ "")
+ .arg(qApp->applicationVersion()));
}
AboutDialog::~AboutDialog()
diff --git a/src/about/meson.build b/src/about/meson.build
deleted file mode 100644
index 49274a8..0000000
--- a/src/about/meson.build
+++ /dev/null
@@ -1,21 +0,0 @@
-about_moc = mod_qt5.preprocess(
- moc_headers: ['aboutdialog.h', 'aboutplugin.h'],
- ui_files: ['aboutdialog.ui', 'aboutplugin.ui'],
- dependencies: dep_qt5
-)
-
-dep_about = declare_dependency(
- include_directories: '.',
- link_with: static_library('about',
- [ 'aboutdialog.cpp', 'aboutplugin.cpp', about_moc, version_h],
- dependencies: [dep_qt5])
-)
-
-poi_sourceset.add(dep_about)
-
-test('about dialog', executable('about',
- sources: 'test/main.cpp',
- dependencies: [ dep_qt5, dep_about, dep_catch ]),
- args: [ '-platform', 'offscreen' ],
- env: 'autoclose=1'
-)
diff --git a/src/browser.cpp b/src/browser.cpp
index f748e2f..a2ae8c9 100644
--- a/src/browser.cpp
+++ b/src/browser.cpp
@@ -31,7 +31,7 @@
#include
#include
#include
-#include
+// #include
#include
#include
@@ -142,22 +142,31 @@ bool Browser::loadPlugin(const QString &path)
}
Configuration conf;
+ bool loaded = false;
+
+#ifdef HAVE_PLUGINLOADER
const auto state = PluginLoader::signature_state(
conf.value("plugins.signature.ignored").value(),
conf.value("plugins.signature.checked").value(),
conf.value("plugins.signature.enforced").value());
auto *loader = new PluginLoader(path, state, this);
- const bool loaded = loader->load();
+ loaded = loader->load();
+#endif
if(!loaded) {
+#ifdef HAVE_PLUGINLOADER
delete loader;
+#endif
return false;
}
+#ifdef HAVE_PLUGINLOADER
auto *info = new PluginInfo(loader);
m_plugins.append(info);
emit pluginAdded(loader);
+#endif
+
return true;
}
diff --git a/src/main.cpp b/src/main.cpp
index aa08236..60c3031 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -7,36 +7,16 @@
*/
#include "browser.h"
-#include "builtins.h"
#include "configuration.h"
-#include "crashhandler.h"
#include "session/sessiondialog.h"
#include "session_json.hpp"
#include "settings.h"
-#include "util.h"
-#include "version.h"
+#include
#include
#include
#include
-#include
-#include
-#include
#include
-// a helper function to join the keys of a command_map into a string
-inline std::string join_keys(const command_map &map, const std::string sep = ", ")
-{
- std::vector keys(map.size());
- std::transform(map.begin(), map.end(), keys.begin(), [](auto pair) { return pair.first; });
- std::sort(keys.begin(), keys.end());
-
- std::string k;
- std::for_each(keys.begin(), keys.end() - 1, [&k, &sep](const std::string &piece) { k += piece + sep; });
- k += keys.back();
-
- return k;
-}
-
int main(int argc, char **argv)
{
// change log pattern
@@ -45,105 +25,30 @@ int main(int argc, char **argv)
spdlog::set_level(spdlog::level::debug); // Set global log level to debug
#endif
- const command_map commands{
- { "configuration", builtins::configuration },
- { "bookmarks", builtins::bookmarks },
- };
-
- const std::vector args(argv + 1, argv + argc);
- args::ArgumentParser parser("smolbote: yet another no-frills browser", "Subcommands: " + join_keys(commands));
- parser.Prog(argv[0]);
-
- args::HelpFlag cmd_help(parser, "help", "Display this help message.", { 'h', "help" });
- args::Flag cmd_version(parser, "version", "Display version information.", { 'v', "version" });
- args::Flag cmd_build(parser, "build", "Display build commit.", { 'b', "build" });
-
- args::ValueFlag cmd_config(parser, "config", "Set the configuration file.", { 'c', "config" });
-
- args::Flag cmd_noRemote(parser, "no-remote", "Do not accept or send remote commands.", { "no-remote" });
-
- args::Flag cmd_pickSession(parser, "pick-session", "Show all available sessions and select which one to open", { "pick-session" });
- args::ValueFlag cmd_session(parser, "session", "Open the specified session.", { 's', "session" });
-
- args::PositionalList cmd_args(parser, "URL(s)", "List of URLs to open");
- cmd_args.KickOut(true);
-
- try {
- auto next = parser.ParseArgs(args);
-
- if(cmd_version)
- return builtins::version();
- if(cmd_build)
- return builtins::build();
-
- // create and load configuration
- spdlog::debug("Loading configuration {}", init_conf(args::get(cmd_config)));
-
- if(cmd_args) {
- const auto front = args::get(cmd_args).front();
- const auto cmd = commands.find(front);
- if(cmd != commands.end()) {
- return cmd->second(argv[0], next, std::end(args));
- }
- }
-
- } catch(args::Help &) {
- std::cout << parser;
- return 0;
-
- } catch(args::Error &e) {
- std::cerr << e.what() << std::endl;
- std::cerr << parser;
- return -1;
- }
+ init_conf("");
// argc, argv, allowSecondary
Browser app(argc, argv);
// set this, otherwise the webview becomes black when using a stylesheet
app.setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
- {
- Configuration conf;
-
- if(conf.value("usebreakpad").value()) {
- /* FIXME
- CrashHandler::Context ctx(
- conf.value("path.crashdump").value(),
- conf.value("path.crashhandler").value());
-
- if(CrashHandler::install_handler(ctx)) {
- spdlog::info("Installed breakpad crash handler: {}", ctx.dumppath);
- } else {
- spdlog::warn("Failed to install breakpad crash handler: {}", ctx.dumppath);
- }
- */
- }
-
- // load plugins
- for(const QString &path : Util::files(conf.value("plugins.path").value(), { "*.so", "*.dll" })) {
- if(app.loadPlugin(path)) {
- spdlog::debug("Loaded plugin [{}]", qUtf8Printable(path));
- } else {
- spdlog::warn("Failed loading plugin [{}]", qUtf8Printable(path));
- }
- }
- }
+ QCommandLineParser parser;
+ parser.addHelpOption();
+ parser.addPositionalArgument("url", "URLs to open");
+ parser.process(app);
const auto profile = []() {
Configuration c;
return c.value("profile.default").value();
}();
- QStringList urls;
- for(const auto &u : args::get(cmd_args)) {
- urls.append(QString::fromStdString(u));
- }
+ QStringList urls = parser.positionalArguments();
if(urls.isEmpty()) {
urls.append(QString());
}
// if app is primary, create new sessions from received messages
- if(app.isPrimary() && !cmd_noRemote) {
+ if(app.isPrimary() /*&& !cmd_noRemote*/) {
QObject::connect(&app, &Browser::receivedMessage, &app, [&app](quint32 instanceId, QByteArray message) {
Q_UNUSED(instanceId);
JsonSession session(message);
@@ -153,7 +58,7 @@ int main(int argc, char **argv)
{
const auto session = [&]() {
- if(cmd_session) {
+ /*if(cmd_session) {
QFile sessionJson(QString::fromStdString(args::get(cmd_session)));
if(sessionJson.open(QIODevice::ReadOnly | QIODevice::Text)) {
return JsonSession(sessionJson.readAll());
@@ -164,11 +69,11 @@ int main(int argc, char **argv)
if(const auto pick = dlg.pickSession()) {
return JsonSession(pick.value());
}
- }
+ }*/
return JsonSession(profile, urls);
}();
- if(app.isPrimary() || cmd_noRemote) {
+ if(app.isPrimary() /*|| cmd_noRemote */) {
app.open(session.get());
} else {
// app is secondary and not standalone
diff --git a/src/version.h.in b/src/version.h.in
new file mode 100644
index 0000000..b387811
--- /dev/null
+++ b/src/version.h.in
@@ -0,0 +1,8 @@
+#ifndef SMOLBOTE_VERSION_H
+#define SMOLBOTE_VERSION_H
+
+// output of 'git describe --long --abbrev=40':
+// x.y.z-0-g0123456789012345678901234567890123456789
+#define poi_Version "@CMAKE_PROJECT_VERSION@"
+
+#endif // SMOLBOTE_VERSION_H
diff --git a/src/webengine/CMakeLists.txt b/src/webengine/CMakeLists.txt
new file mode 100644
index 0000000..704a6d0
--- /dev/null
+++ b/src/webengine/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_library(webengine STATIC
+ urlinterceptor.cpp urlinterceptor.h
+ webpage.cpp webpage.h
+ webprofile.cpp webprofile.h
+ webprofilemanager.cpp webprofilemanager.h
+ webviewcontextmenu.cpp webviewcontextmenu.h
+ webview.cpp webview.h
+)
+target_link_libraries(webengine PUBLIC Qt6::WebEngineCore Qt6::WebEngineWidgets)
+target_include_directories(webengine PUBLIC ${CMAKE_CURRENT_LIST_DIR} ${PROJECT_SOURCE_DIR}/include)
diff --git a/subprojects/args.wrap b/subprojects/args.wrap
deleted file mode 100644
index ac19afa..0000000
--- a/subprojects/args.wrap
+++ /dev/null
@@ -1,6 +0,0 @@
-[wrap-file]
-directory = args.hxx-6.2.2
-
-source_url = https://neueland.iserlohn-fortress.net/releases/args.hxx-6.2.2.tar.xz
-source_filename = args.hxx-6.2.2.tar.xz
-source_hash = c1ed4bc76d3c343f493e6ae2c10ebcf3fdfaf013210b0a3dead04cef30c63fb6
diff --git a/subprojects/catch2.wrap b/subprojects/catch2.wrap
deleted file mode 100644
index 2e20085..0000000
--- a/subprojects/catch2.wrap
+++ /dev/null
@@ -1,10 +0,0 @@
-[wrap-file]
-directory = Catch2-2.11.3
-
-source_url = https://github.com/catchorg/Catch2/archive/v2.11.3.zip
-source_filename = Catch2-2.11.3.zip
-source_hash = c5a0a7510379c6f37f70b329986a335a7b8489d67ac417ce8f4262d0cae4cc5d
-
-patch_url = https://wrapdb.mesonbuild.com/v1/projects/catch2/2.11.3/1/get_zip
-patch_filename = catch2-2.11.3-1-wrap.zip
-patch_hash = 63c09cb68280435040ad304b3dd87ecfe69dbc216608991d0a82569a63119e57
diff --git a/subprojects/packagefiles/SingleApplication/meson.build b/subprojects/packagefiles/SingleApplication/meson.build
deleted file mode 100644
index 4a583cd..0000000
--- a/subprojects/packagefiles/SingleApplication/meson.build
+++ /dev/null
@@ -1,38 +0,0 @@
-project('SingleApplication', ['cpp'],
- version: '3.5.1',
- default_options: ['cpp_std=c++2a', 'warning_level=3'],
- license: 'MIT',
-)
-
-mod_qt5 = import('qt6')
-dep_qt5 = dependency('qt6', modules: [ 'Core', 'Network', 'Gui', 'Widgets' ], include_type: 'system')
-
-SingleApplication_inc = include_directories('.')
-
-SingleApplication_moc = mod_qt5.preprocess(
- moc_headers: [ 'singleapplication.h', 'singleapplication_p.h'],
- moc_extra_arguments: ['-DQAPPLICATION_CLASS=QApplication'],
- dependencies: dep_qt5
-)
-
-SingleApplication_lib = static_library('SingleApplication',
- [ 'singleapplication.cpp', 'singleapplication_p.cpp', SingleApplication_moc ],
- include_directories: SingleApplication_inc,
- cpp_args: '-DQAPPLICATION_CLASS=QApplication',
- dependencies: dep_qt5
-)
-
-SingleApplication_dep = declare_dependency(
- include_directories: SingleApplication_inc,
- link_with: SingleApplication_lib
-).as_system('system')
-
-# On windows, SingleApplication needs to be linked against advapi32. This is
-# done by adding 'advapi32' to cpp_winlibs, where it should be by default.
-
-if get_option('examples')
- subdir('examples/basic')
- subdir('examples/calculator')
- subdir('examples/sending_arguments')
-endif
-
diff --git a/subprojects/packagefiles/SingleApplication/meson_options.txt b/subprojects/packagefiles/SingleApplication/meson_options.txt
deleted file mode 100644
index 21e68e0..0000000
--- a/subprojects/packagefiles/SingleApplication/meson_options.txt
+++ /dev/null
@@ -1 +0,0 @@
-option('examples', description: 'Build examples', type: 'boolean', value: false)
diff --git a/subprojects/singleapplication.wrap b/subprojects/singleapplication.wrap
deleted file mode 100644
index 52d0f62..0000000
--- a/subprojects/singleapplication.wrap
+++ /dev/null
@@ -1,8 +0,0 @@
-[wrap-file]
-directory = SingleApplication-3.5.1
-
-source_url = https://github.com/itay-grudev/SingleApplication/archive/refs/tags/v3.5.1.tar.gz
-source_filename = SingleApplication-3.5.1.tar.gz
-source_hash = d2f02d94887bd8ffbf2a1a4bbc83293f4393dfbfa34f746ac627ea6ca18415ac
-
-patch_directory = SingleApplication
diff --git a/subprojects/spdlog.wrap b/subprojects/spdlog.wrap
deleted file mode 100644
index b0f760b..0000000
--- a/subprojects/spdlog.wrap
+++ /dev/null
@@ -1,10 +0,0 @@
-[wrap-file]
-directory = spdlog-1.4.2
-
-source_url = https://github.com/gabime/spdlog/archive/v1.4.2.tar.gz
-source_filename = v1.4.2.tar.gz
-source_hash = 821c85b120ad15d87ca2bc44185fa9091409777c756029125a02f81354072157
-
-patch_url = https://wrapdb.mesonbuild.com/v1/projects/spdlog/1.4.2/1/get_zip
-patch_filename = spdlog-1.4.2-1-wrap.zip
-patch_hash = e0616f2a956670b0b23daba08f14d4f51a9551e74071269bc218cd05b666b229
--
cgit v1.2.1