From 7b7ff81a9fa270cedabaea8e0b6b4360a5787ee3 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Mon, 21 Oct 2024 16:39:15 -0400 Subject: [PATCH] build: Require libei and libportal from the system on linux Removing remaining meson parts --- .github/workflows/build-containers.yml | 48 ----------- .github/workflows/ci-linux.json | 46 ---------- cmake/Libraries.cmake | 34 +------- meson.build | 31 ------- meson_options.txt | 2 - scripts/install_deps.py | 81 ------------------ scripts/lib/meson.py | 84 ------------------- src/gui/src/MainWindow.cpp | 4 - src/lib/config.h.in | 9 -- src/lib/gui/CMakeLists.txt | 1 + src/lib/platform/CMakeLists.txt | 20 +++-- src/lib/platform/EiEventQueueBuffer.h | 2 - src/lib/platform/EiScreen.cpp | 23 +---- src/lib/platform/EiScreen.h | 5 -- src/lib/platform/PortalInputCapture.cpp | 8 +- src/lib/platform/PortalInputCapture.h | 6 -- src/lib/platform/PortalRemoteDesktop.cpp | 13 --- src/lib/platform/PortalRemoteDesktop.h | 8 -- subprojects/.gitignore | 11 --- subprojects/libei.wrap | 3 - subprojects/libportal.wrap | 4 - .../packagefiles/libportal/static-lib.diff | 15 ---- 22 files changed, 17 insertions(+), 441 deletions(-) delete mode 100644 meson.build delete mode 100644 meson_options.txt delete mode 100644 scripts/lib/meson.py delete mode 100644 subprojects/.gitignore delete mode 100644 subprojects/libei.wrap delete mode 100644 subprojects/libportal.wrap delete mode 100644 subprojects/packagefiles/libportal/static-lib.diff diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index e37ef751a..7d3309d44 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -32,30 +32,6 @@ jobs: base-image: debian:trixie-slim platform: amd64 - - name: debian-12-amd64 - runs-on: ubuntu-latest - config-dir: debian - base-image: debian:12-slim - platform: amd64 - - - name: debian-12-arm64 - runs-on: ubuntu-24.04-2-core-arm64 - config-dir: debian - base-image: arm64v8/debian:12-slim - platform: arm64 - - - name: ubuntu-24.04-amd64 - runs-on: ubuntu-latest - config-dir: debian - base-image: ubuntu:24.04 - platform: amd64 - - - name: ubuntu-22.04-amd64 - runs-on: ubuntu-latest - config-dir: debian - base-image: ubuntu:22.04 - platform: amd64 - - name: fedora-40-amd64 runs-on: ubuntu-latest config-dir: fedora @@ -68,24 +44,6 @@ jobs: base-image: arm64v8/fedora:40 platform: arm64 - - name: fedora-39-amd64 - runs-on: ubuntu-latest - config-dir: fedora - base-image: fedora:39 - platform: amd64 - - - name: rockylinux-9-amd64 - runs-on: ubuntu-latest - config-dir: fedora - base-image: rockylinux:9 - platform: amd64 - - - name: almalinux-9-amd64 - runs-on: ubuntu-latest - config-dir: fedora - base-image: almalinux:9 - platform: amd64 - - name: opensuse-amd64 runs-on: ubuntu-latest config-dir: opensuse @@ -98,12 +56,6 @@ jobs: base-image: archlinux:latest platform: amd64 - - name: manjaro-amd64 - config-dir: archlinux - runs-on: ubuntu-latest - base-image: manjarolinux/base:latest - platform: amd64 - steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/ci-linux.json b/.github/workflows/ci-linux.json index 12051a69d..d5385d8ee 100644 --- a/.github/workflows/ci-linux.json +++ b/.github/workflows/ci-linux.json @@ -4,31 +4,6 @@ "name": "debian-13-amd64", "container": "deskflow/deskflow:debian-13-amd64", "runs-on": "ubuntu-latest", - "extra-packages": false - }, - { - "name": "debian-12-arm64", - "container": "deskflow/deskflow:debian-12-arm64", - "runs-on": "ubuntu-24.04-4-core-arm64", - "extra-packages": false - }, - { - "name": "debian-12-amd64", - "container": "deskflow/deskflow:debian-12-amd64", - "runs-on": "ubuntu-latest", - "extra-packages": false - }, - { - "name": "ubuntu-24.04-amd64", - "container": "deskflow/deskflow:ubuntu-24.04-amd64", - "runs-on": "ubuntu-latest", - "extra-dep-args": "--meson-no-system libportal --meson-static libportal --subprojects", - "extra-cmake-args": "-DSYSTEM_LIBPORTAL=OFF -DSTATIC_LIBPORTAL=ON" - }, - { - "name": "ubuntu-22.04-amd64", - "container": "deskflow/deskflow:ubuntu-22.04-amd64", - "runs-on": "ubuntu-latest" }, { "name": "fedora-40-arm64", @@ -40,37 +15,16 @@ "container": "deskflow/deskflow:fedora-40-amd64", "runs-on": "ubuntu-latest" }, - { - "name": "fedora-39-amd64", - "container": "deskflow/deskflow:fedora-39-amd64", - "runs-on": "ubuntu-latest" - }, { "name": "opensuse-amd64", "container": "deskflow/deskflow:opensuse-amd64", "runs-on": "ubuntu-latest" }, - { - "name": "rockylinux-9-amd64", - "container": "deskflow/deskflow:rockylinux-9-amd64", - "runs-on": "ubuntu-latest" - }, - { - "name": "almalinux-9-amd64", - "container": "deskflow/deskflow:almalinux-9-amd64", - "runs-on": "ubuntu-latest" - }, { "name": "archlinux-amd64", "container": "deskflow/deskflow:archlinux-amd64", "runs-on": "ubuntu-latest", "arch-like": "true" - }, - { - "name": "manjaro-amd64", - "container": "deskflow/deskflow:manjaro-amd64", - "runs-on": "ubuntu-latest", - "arch-like": "true" } ] } diff --git a/cmake/Libraries.cmake b/cmake/Libraries.cmake index 9159ac446..1b60e83b6 100644 --- a/cmake/Libraries.cmake +++ b/cmake/Libraries.cmake @@ -200,7 +200,6 @@ macro(configure_wayland_libs) include(FindPkgConfig) if(PKG_CONFIG_FOUND) - configure_libei() configure_libportal() pkg_check_modules(LIBXKBCOMMON REQUIRED xkbcommon) @@ -214,41 +213,10 @@ macro(configure_wayland_libs) endmacro() -macro(configure_libei) - option(SYSTEM_LIBEI "Use system libei" ON) - if(SYSTEM_LIBEI) - pkg_check_modules(LIBEI QUIET "libei-1.0 >= ${LIBEI_MIN_VERSION}") - if(LIBEI_FOUND) - message(STATUS "libei version: ${LIBEI_VERSION}") - add_definitions(-DWINAPI_LIBEI=1) - include_directories(${LIBEI_INCLUDE_DIRS}) - else() - message(WARNING "libei >= ${LIBEI_MIN_VERSION} not found") - endif() - else() - set(libei_bin_dir ${PROJECT_BINARY_DIR}/meson/subprojects/libei/src) - set(libei_src_dir ${PROJECT_SOURCE_DIR}/subprojects/libei) - find_library( - LIBEI_LINK_LIBRARIES - NAMES ei - PATHS ${libei_bin_dir} - NO_DEFAULT_PATH) - if(LIBEI_LINK_LIBRARIES) - message(STATUS "Using local subproject libei") - set(LIBEI_FOUND true) - add_definitions(-DWINAPI_LIBEI=1) - set(LIBEI_INCLUDE_DIRS ${libei_src_dir}/src) - include_directories(${LIBEI_INCLUDE_DIRS}) - else() - message(WARNING "Local libei not found") - endif() - endif() -endmacro() - macro(configure_libportal) option(SYSTEM_LIBPORTAL "Use system libportal" ON) if(SYSTEM_LIBPORTAL) - pkg_check_modules(LIBPORTAL QUIET "libportal >= ${LIBPORTAL_MIN_VERSION}") + pkg_check_modules(LIBPORTAL REQUIRED QUIET "libportal >= ${LIBPORTAL_MIN_VERSION}") if(LIBPORTAL_FOUND) message(STATUS "libportal version: ${LIBPORTAL_VERSION}") check_libportal() diff --git a/meson.build b/meson.build deleted file mode 100644 index 5b1edc7c2..000000000 --- a/meson.build +++ /dev/null @@ -1,31 +0,0 @@ -# For now, we're only using Meson to resolve dependencies. CMake is called separately. -# In future, we may completely replace CMake with Meson. -# Where available, we use system packages, otherwise we use subprojects. -# Subprojects are also used to get the latest version during development. - -project('deskflow', 'cpp') - -if host_machine.system() == 'linux' - - system_libei = get_option('system-libei') - if system_libei - dependency('libei-1.0', required: false) - else - # Using the subproject is only useful for development; it's not intended for normal use. - # GNOME46 or above is required as this has the required bits for libei. - # Building on anything older is pointless as you won't be able to actually connect to anything. - subproject('libei', default_options: ['tests=disabled', 'liboeffis=disabled']) - endif - - system_libportal = get_option('system-libportal') - if system_libportal - dependency('libportal', required: false) - else - # Using the subproject is only useful for development; it's not intended for normal use. - subproject('libportal', default_options: [ - 'docs=false', - 'backend-gtk3=enabled', - 'backend-qt6=disabled' - ]) - endif -endif diff --git a/meson_options.txt b/meson_options.txt deleted file mode 100644 index db87004a3..000000000 --- a/meson_options.txt +++ /dev/null @@ -1,2 +0,0 @@ -option('system-libportal', type: 'boolean', value: true, description: 'Use system libportal') -option('system-libei', type: 'boolean', value: true, description: 'Use system libei') diff --git a/scripts/install_deps.py b/scripts/install_deps.py index 8e34f1a35..346a0e644 100755 --- a/scripts/install_deps.py +++ b/scripts/install_deps.py @@ -20,7 +20,6 @@ import lib.env as env import lib.cmd_utils as cmd_utils import lib.qt_utils as qt_utils import lib.github as github -import lib.meson as meson path_env_var = "PATH" cmake_prefix_env_var = "CMAKE_PREFIX_PATH" @@ -80,29 +79,6 @@ def parse_args(is_ci): action="store_true", help="Do not install system dependencies (apt, dnf, etc)", ) - parser.add_argument( - "--skip-meson", action="store_true", help="Do not setup and compile with Meson" - ) - parser.add_argument( - "--subprojects", - action="store_true", - help="Install dependencies for Meson subprojects (use with --meson-no-system)", - ) - parser.add_argument( - "--meson-install", - action="store_true", - help="Install built Meson subprojects to system", - ) - parser.add_argument( - "--meson-no-system", - nargs="+", - help="Specify which Meson subprojects to use instead of system dependencies", - ) - parser.add_argument( - "--meson-static", - nargs="+", - help="Specify which Meson subprojects to build as static libraries", - ) if env.is_windows(): parser.add_argument( @@ -177,30 +153,6 @@ def install(args): vcpkg.install(args.ci_env) - if not args.skip_meson: - if args.subprojects: - for subproject in args.meson_no_system or []: - deps = SubprojectDependencies(subproject) - deps.install() - - run_meson(args.meson_install, args.meson_no_system, args.meson_static) - - -# It's a bit weird to use Meson just for installing deps, but it's a stopgap until -# we fully switch from CMake to Meson. For the meantime, Meson will install the deps -# so that CMake can find them easily. Once we switch to Meson, it might be possible for -# Meson handle the deps resolution, so that we won't need to install them on the system. -def run_meson(install, no_system_list, static_list): - meson.setup(no_system_list, static_list) - - # Only compile and install on Linux for now, since we're only using Meson to fetch - # the deps on Windows and macOS. - if env.is_linux(): - meson.compile() - - if install: - meson.install() - class Dependencies: @@ -318,38 +270,5 @@ class Dependencies: linux.run_command(command, check=True) - subprojects = self.config.get_os_subprojects() - if subprojects: - for subproject in subprojects: - deps = SubprojectDependencies(subproject) - deps.install() - - -class SubprojectDependencies: - - def __init__(self, subproject): - from lib.config import Config - - self.subproject = subproject - self.config = Config() - - def install(self): - """Installs dependencies for the current platform.""" - - print(f"Installing dependencies for sub-project: {self.subproject}") - - if env.is_linux(): - self.linux() - else: - raise RuntimeError(f"Unsupported platform: {os}") - - def linux(self): - """Installs dependencies on Linux.""" - import lib.linux as linux - - command = self.config.get_subproject_deps_command(self.subproject) - linux.run_command(command, check=True) - - if __name__ == "__main__": main() diff --git a/scripts/lib/meson.py b/scripts/lib/meson.py deleted file mode 100644 index e22481f2b..000000000 --- a/scripts/lib/meson.py +++ /dev/null @@ -1,84 +0,0 @@ -# Deskflow -- mouse and keyboard sharing utility -# Copyright (C) 2024 Symless Ltd. -# -# This package is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# found in the file LICENSE that should have accompanied this file. -# -# This package 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 . - -import os, sys -import lib.cmd_utils as cmd_utils -import lib.env as env - -build_dir = "build/meson" - - -def meson_venv_bin(): - if not env.in_venv(): - raise RuntimeError("Not in a virtual environment") - - return os.path.join(os.path.dirname(sys.executable), "meson") - - -def setup(no_system_list, static_list): - cmd = [meson_venv_bin(), "setup", build_dir] - - for subproject in no_system_list or []: - cmd.append(f"-Dsystem-{subproject}=false") - - # This might be a bit rude, but Meson seems to cache a lot (like CMake), - # so wiping every time is the easiest way to ensure that the build is clean. - # Plus, the way we're using Meson (at the moment) is just for satisfying - # dependencies, so this script is run infrequently enough to not matter. - if os.path.exists(build_dir): - cmd.append("--wipe") - - cmd_utils.run(cmd, print_cmd=True) - - for subproject in static_list or []: - static_subproject(subproject) - - -def static_subproject(subproject): - if subproject == "libportal": - # HACK: This is a bit horrible. Ideally, Meson would take care of applying this patch, - # but it only seems to copy the .diff over and not apply the patch. - # - # Important: Static linking is not intended for package maintainers, only for beta testers. - # Static linking is also pretty horrible, but many distros will be slow to pick up 0.8.x - # which has input capture support. The sooner we can remove this patching code the better. - cmd_utils.run( - [ - "patch", - "-d", - "subprojects/libportal", - "-p1", - "-i", - "static-lib.diff", - ], - print_cmd=True, - check=False, - ) - else: - raise RuntimeError(f"Unknown subproject: {subproject}") - - -def compile(): - cmd_utils.run([meson_venv_bin(), "compile", "-C", build_dir], print_cmd=True) - - -def install(): - cmd = [meson_venv_bin(), "install", "-C", build_dir] - - has_sudo = cmd_utils.has_command("sudo") - if has_sudo: - cmd.insert(0, "sudo") - - cmd_utils.run(cmd, print_cmd=True) diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index 628a82a44..0b36f83ca 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -542,13 +542,9 @@ void MainWindow::open() void MainWindow::onCoreProcessStarting() { - -#if defined(WINAPI_XWINDOWS) or defined(WINAPI_LIBEI) if (deskflow::platform::isWayland()) { m_WaylandWarnings.showOnce(this, m_CoreProcess.mode()); } -#endif - saveSettings(); } diff --git a/src/lib/config.h.in b/src/lib/config.h.in index f966b4c6e..c14d04897 100644 --- a/src/lib/config.h.in +++ b/src/lib/config.h.in @@ -188,13 +188,4 @@ /* Define to `unsigned int` if does not define. */ #cmakedefine size_t @size_t@ -/* Define if libportal has xdp_session_connect_to_eis */ -#cmakedefine HAVE_LIBPORTAL_SESSION_CONNECT_TO_EIS @HAVE_LIBPORTAL_SESSION_CONNECT_TO_EIS@ - -/* Define if libportal has xdp_portal_create_remote_desktop_session_full */ -#cmakedefine HAVE_LIBPORTAL_CREATE_REMOTE_DESKTOP_SESSION_FULL @HAVE_LIBPORTAL_CREATE_REMOTE_DESKTOP_SESSION_FULL@ - -/* Define if libportal has input capture support */ -#cmakedefine HAVE_LIBPORTAL_INPUTCAPTURE @HAVE_LIBPORTAL_INPUTCAPTURE@ - // clang-format on diff --git a/src/lib/gui/CMakeLists.txt b/src/lib/gui/CMakeLists.txt index e11d0841e..3112a11c0 100644 --- a/src/lib/gui/CMakeLists.txt +++ b/src/lib/gui/CMakeLists.txt @@ -44,6 +44,7 @@ add_library(${target} STATIC ${sources} ${ui_files} ${qrc_file}) target_link_libraries( ${target} ${DESKFLOW_GUI_HOOK_LIB} + platform Qt6::Core Qt6::Widgets Qt6::Network) diff --git a/src/lib/platform/CMakeLists.txt b/src/lib/platform/CMakeLists.txt index f90c3682e..0506c2721 100644 --- a/src/lib/platform/CMakeLists.txt +++ b/src/lib/platform/CMakeLists.txt @@ -13,6 +13,13 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . +if(UNIX AND NOT APPLE) + pkg_check_modules(LIBEI REQUIRED QUIET "libei-1.0 >= 1.3") + message(STATUS "libei version: ${LIBEI_VERSION}") + + pkg_check_modules(LIBPORTAL REQUIRED QUIET "libportal >= 0.8") + message(STATUS "libportal version: ${LIBPORTAL_VERSION}") +endif() if(WIN32) file(GLOB headers "MSWindows*.h") @@ -68,16 +75,15 @@ add_library(platform STATIC ${sources}) target_link_libraries(platform client ${libs}) macro(link_wayland_libs) + target_compile_definitions(platform PUBLIC WINAPI_LIBEI WINAPI_LIBPORTAL HAVE_LIBPORTAL_INPUTCAPTURE) + target_link_libraries(platform ${LIBXKBCOMMON_LINK_LIBRARIES} - ${GLIB2_LINK_LIBRARIES} ${LIBM_LIBRARIES}) + ${GLIB2_LINK_LIBRARIES} ${LIBM_LIBRARIES} + ${LIBEI_LINK_LIBRARIES} ${LIBPORTAL_LINK_LIBRARIES} + ) - if(LIBEI_FOUND) - target_link_libraries(platform ${LIBEI_LINK_LIBRARIES}) - endif() + target_include_directories(platform PUBLIC ${LIBEI_INCLUDE_DIRS} ${LIBPORTAL_INCLUDE_DIRS}) - if(LIBPORTAL_FOUND) - target_link_libraries(platform ${LIBPORTAL_LINK_LIBRARIES}) - endif() endmacro() if(UNIX) diff --git a/src/lib/platform/EiEventQueueBuffer.h b/src/lib/platform/EiEventQueueBuffer.h index 1b9a9f733..8e3cf4820 100644 --- a/src/lib/platform/EiEventQueueBuffer.h +++ b/src/lib/platform/EiEventQueueBuffer.h @@ -18,8 +18,6 @@ #pragma once -#include "config.h" - #include "base/IEventQueueBuffer.h" #include "deskflow/IScreen.h" #include "mt/Thread.h" diff --git a/src/lib/platform/EiScreen.cpp b/src/lib/platform/EiScreen.cpp index ae0630695..9ca8bca09 100644 --- a/src/lib/platform/EiScreen.cpp +++ b/src/lib/platform/EiScreen.cpp @@ -29,11 +29,8 @@ #include "deskflow/XScreen.h" #include "platform/EiEventQueueBuffer.h" #include "platform/EiKeyState.h" - -#if WINAPI_LIBPORTAL #include "platform/PortalInputCapture.h" #include "platform/PortalRemoteDesktop.h" -#endif #include #include @@ -70,21 +67,13 @@ EiScreen::EiScreen(bool is_primary, IEventQueue *events, bool use_portal) new TMethodEventJob(this, &EiScreen::handle_connected_to_eis_event) ); if (is_primary) { -#if HAVE_LIBPORTAL_INPUTCAPTURE portal_input_capture_ = new PortalInputCapture(this, events_); -#else - throw std::invalid_argument("missing libportal input capture support"); -#endif // HAVE_LIBPORTAL_INPUTCAPTURE } else { -#if WINAPI_LIBPORTAL events_->adoptHandler( events_->forEi().sessionClosed(), getEventTarget(), new TMethodEventJob(this, &EiScreen::handle_portal_session_closed) ); portal_remote_desktop_ = new PortalRemoteDesktop(this, events_); -#else - throw std::invalid_argument("missing libportal remote desktop support"); -#endif // WINAPI_LIBPORTAL } } else { // Note: socket backend does not support reconnections @@ -105,12 +94,8 @@ EiScreen::~EiScreen() delete key_state_; -#if WINAPI_LIBPORTAL delete portal_remote_desktop_; -#endif -#if HAVE_LIBPORTAL_INPUTCAPTURE delete portal_input_capture_; -#endif } void EiScreen::handle_ei_log_event(ei *ei, ei_log_priority priority, const char *message, ei_log_context *context) @@ -365,13 +350,10 @@ void EiScreen::enter() ei_device_start_emulating(ei_abs_, sequence_number_); fakeMouseMove(cursor_x_, cursor_y_); } - } -#if HAVE_LIBPORTAL_INPUTCAPTURE - else { + } else { LOG_DEBUG("releasing input capture at x=%i y=%i", cursor_x_, cursor_y_); portal_input_capture_->release(cursor_x_, cursor_y_); } -#endif } bool EiScreen::canLeave() @@ -699,12 +681,9 @@ void EiScreen::on_motion_event(ei_event *event) if (is_on_screen_) { LOG_DEBUG("event: motion on primary x=%i y=%i)", cursor_x_, cursor_y_); sendEvent(events_->forIPrimaryScreen().motionOnPrimary(), MotionInfo::alloc(cursor_x_, cursor_y_)); - -#if HAVE_LIBPORTAL_INPUTCAPTURE if (portal_input_capture_->is_active()) { portal_input_capture_->release(); } -#endif } else { buffer_dx += dx; buffer_dy += dy; diff --git a/src/lib/platform/EiScreen.h b/src/lib/platform/EiScreen.h index 1d031a027..9edec8d80 100644 --- a/src/lib/platform/EiScreen.h +++ b/src/lib/platform/EiScreen.h @@ -18,7 +18,6 @@ #pragma once -#include "config.h" #include "deskflow/KeyMap.h" #include "deskflow/PlatformScreen.h" @@ -37,9 +36,7 @@ namespace deskflow { class EiClipboard; class EiKeyState; class PortalRemoteDesktop; -#if HAVE_LIBPORTAL_INPUTCAPTURE class PortalInputCapture; -#endif //! Implementation of IPlatformScreen for X11 class EiScreen : public PlatformScreen @@ -159,9 +156,7 @@ private: mutable std::mutex mutex_; PortalRemoteDesktop *portal_remote_desktop_ = nullptr; -#if HAVE_LIBPORTAL_INPUTCAPTURE PortalInputCapture *portal_input_capture_ = nullptr; -#endif struct HotKeyItem { diff --git a/src/lib/platform/PortalInputCapture.cpp b/src/lib/platform/PortalInputCapture.cpp index 3101ac128..09f670a14 100644 --- a/src/lib/platform/PortalInputCapture.cpp +++ b/src/lib/platform/PortalInputCapture.cpp @@ -16,14 +16,10 @@ * along with this program. If not, see . */ -#include "config.h" - -#if HAVE_LIBPORTAL_INPUTCAPTURE - +#include "platform/PortalInputCapture.h" #include "base/Event.h" #include "base/Log.h" #include "base/TMethodJob.h" -#include "platform/PortalInputCapture.h" #include // for EIS fd hack, remove #include // for EIS fd hack, remove @@ -395,5 +391,3 @@ void PortalInputCapture::glib_thread(void *) } } // namespace deskflow - -#endif diff --git a/src/lib/platform/PortalInputCapture.h b/src/lib/platform/PortalInputCapture.h index 3030cdb50..c9026fbf3 100644 --- a/src/lib/platform/PortalInputCapture.h +++ b/src/lib/platform/PortalInputCapture.h @@ -18,10 +18,6 @@ #pragma once -#include "config.h" - -#if HAVE_LIBPORTAL_INPUTCAPTURE - #include "mt/Thread.h" #include "platform/EiScreen.h" @@ -104,5 +100,3 @@ private: }; } // namespace deskflow - -#endif // HAVE_LIBPORTAL_INPUTCAPTURE diff --git a/src/lib/platform/PortalRemoteDesktop.cpp b/src/lib/platform/PortalRemoteDesktop.cpp index 4fbca8586..a0d8a3f5b 100644 --- a/src/lib/platform/PortalRemoteDesktop.cpp +++ b/src/lib/platform/PortalRemoteDesktop.cpp @@ -108,9 +108,7 @@ void PortalRemoteDesktop::cb_session_started(GObject *object, GAsyncResult *res) // version in the impl.portal), i.e. you'll need an updated compositor on // top of everything... auto fd = -1; -#if HAVE_LIBPORTAL_SESSION_CONNECT_TO_EIS fd = xdp_session_connect_to_eis(session, &error); -#endif if (fd < 0) { g_main_loop_quit(glib_main_loop_); events_->addEvent(Event::kQuit); @@ -159,17 +157,6 @@ void PortalRemoteDesktop::cb_init_remote_desktop_session(GObject *object, GAsync ); } -#if !defined(HAVE_LIBPORTAL_CREATE_REMOTE_DESKTOP_SESSION_FULL) -static inline void xdp_portal_create_remote_desktop_session_full( - XdpPortal *portal, XdpDeviceType devices, XdpOutputType outputs, XdpRemoteDesktopFlags flags, - XdpCursorMode cursor_mode, XdpPersistMode _unused1, const char *_unused2, GCancellable *cancellable, - GAsyncReadyCallback callback, gpointer data -) -{ - xdp_portal_create_remote_desktop_session(portal, devices, outputs, flags, cursor_mode, cancellable, callback, data); -} -#endif - gboolean PortalRemoteDesktop::init_remote_desktop_session() { LOG_DEBUG("setting up remote desktop session with restore token %s", session_restore_token_); diff --git a/src/lib/platform/PortalRemoteDesktop.h b/src/lib/platform/PortalRemoteDesktop.h index 6dd098727..ec49683db 100644 --- a/src/lib/platform/PortalRemoteDesktop.h +++ b/src/lib/platform/PortalRemoteDesktop.h @@ -18,20 +18,12 @@ #pragma once -#include "config.h" - #include "mt/Thread.h" #include "platform/EiScreen.h" #include #include -#if !HAVE_LIBPORTAL_OUTPUT_NONE -// Added in libportal ad82a74 Jun 2022, not yet released in libportal 0.6 -// should be used as a patch on ≤ 0.6, and non-git -#define XDP_OUTPUT_NONE (XdpOutputType)0 -#endif - namespace deskflow { class PortalRemoteDesktop diff --git a/subprojects/.gitignore b/subprojects/.gitignore deleted file mode 100644 index bfb099b45..000000000 --- a/subprojects/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -# Ignore all files in the subprojects directory. -* - -# Except for the wrap files. -!.gitignore -!*.wrap -!packagefiles/* - -# Ignore wraps added by subprojects. -gi-docgen.wrap -munit.wrap diff --git a/subprojects/libei.wrap b/subprojects/libei.wrap deleted file mode 100644 index ccd0acb76..000000000 --- a/subprojects/libei.wrap +++ /dev/null @@ -1,3 +0,0 @@ -[wrap-git] -url = https://gitlab.freedesktop.org/libinput/libei.git -revision = main diff --git a/subprojects/libportal.wrap b/subprojects/libportal.wrap deleted file mode 100644 index 56aa671f2..000000000 --- a/subprojects/libportal.wrap +++ /dev/null @@ -1,4 +0,0 @@ -[wrap-git] -url = https://github.com/flatpak/libportal.git -revision = main -patch_directory = libportal diff --git a/subprojects/packagefiles/libportal/static-lib.diff b/subprojects/packagefiles/libportal/static-lib.diff deleted file mode 100644 index 5e48ce48b..000000000 --- a/subprojects/packagefiles/libportal/static-lib.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/libportal/meson.build b/libportal/meson.build -index 316bd9c..37a17f7 100644 ---- a/libportal/meson.build -+++ b/libportal/meson.build -@@ -73,9 +73,8 @@ gio_unix_dep = dependency('gio-unix-2.0') - - install_headers(headers, subdir: 'libportal') - --libportal = library('portal', -+libportal = static_library('portal', - src, -- version: version, - include_directories: [top_inc, libportal_inc], - install: true, - dependencies: [gio_dep, gio_unix_dep],