summaryrefslogtreecommitdiff
blob: 20e8f6bb5f319b7fee25aed0b9daf3fa8e72b4ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
diff -ruN a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt	2021-04-28 20:19:06.995353847 +0300
+++ b/CMakeLists.txt	2021-04-28 21:06:25.811315173 +0300
@@ -86,7 +86,17 @@
 set(QAPPLICATION_CLASS
         QApplication
         CACHE STRING "Inheritance class for SingleApplication")
-add_subdirectory(external/singleapplication)
+
+if(USE_EXTERNAL_SINGLEAPPLICATION)
+  # look for external QtSingleApplication
+  # package dev-qt/qtsingleapplication provides no symlink to current version
+  set(qtsingleapplication_libs libQt5Solutions_SingleApplication-2.6 Qt5Solutions_SingleApplication-2.6)
+  find_library(QTSINGLEAPPLICATION_LIBRARY NAMES ${qtsingleapplication_libs})
+  message(STATUS "Using external SingleApplication library")
+else()
+  add_subdirectory(external/singleapplication)
+  set(QTSINGLEAPPLICATION_LIBRARY SingleApplication::SingleApplication)
+endif()
 
 if(USE_EXTERNAL_SPDLOG)
   find_package(spdlog REQUIRED)
diff -ruN a/src/CMakeLists.txt b/src/CMakeLists.txt
--- a/src/CMakeLists.txt	2021-04-28 20:19:07.048354525 +0300
+++ b/src/CMakeLists.txt	2021-04-28 21:07:44.651559479 +0300
@@ -107,7 +107,7 @@
 
 target_sources(
         flameshot
-        PRIVATE # ${CMAKE_CURRENT_SOURCE_DIR}/../external/singleapplication/singleapplication.cpp
+        PRIVATE
         ${CMAKE_CURRENT_SOURCE_DIR}/../external/Qt-Color-Widgets/src/color_utils.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/../external/Qt-Color-Widgets/src/color_wheel.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/../external/Qt-Color-Widgets/include/color_wheel.hpp
@@ -120,7 +120,6 @@
         flameshot
         PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../>
         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>
-        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../external/singleapplication/>
         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../external/Qt-Color-Widgets/include>
         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../dbus/>
         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cli>
@@ -153,6 +152,15 @@
         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/widgets/capture>
         $<INSTALL_INTERFACE:include/mylib>)
 
+if (USE_EXTERNAL_SINGLEAPPLICATION)
+    add_compile_definitions(USE_EXTERNAL_SINGLEAPPLICATION=1)
+else ()
+    target_include_directories(
+        flameshot
+        PUBLIC
+        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../external/singleapplication>)
+endif()
+
 target_link_libraries(
         flameshot
         project_warnings
@@ -161,7 +169,7 @@
         Qt5::DBus
         Qt5::Network
         Qt5::Widgets
-        SingleApplication::SingleApplication
+        ${QTSINGLEAPPLICATION_LIBRARY}
         spdlog::spdlog
 )
 
diff -ruN a/src/main.cpp b/src/main.cpp
--- a/src/main.cpp	2021-04-28 20:19:07.051354563 +0300
+++ b/src/main.cpp	2021-04-28 20:59:32.921808263 +0300
@@ -1,7 +1,12 @@
 // SPDX-License-Identifier: GPL-3.0-or-later
 // SPDX-FileCopyrightText: 2017-2019 Alejandro Sirgo Rica & Contributors
 
-#include "singleapplication.h"
+#ifndef USE_EXTERNAL_SINGLEAPPLICATION
+    #include "singleapplication.h"
+#else
+    #include "QtSolutions/qtsingleapplication.h"
+#endif
+
 #include "src/cli/commandlineparser.h"
 #include "src/config/styleoverride.h"
 #include "src/core/capturerequest.h"
@@ -65,7 +70,11 @@
 
     // no arguments, just launch Flameshot
     if (argc == 1) {
+#ifndef USE_EXTERNAL_SINGLEAPPLICATION
         SingleApplication app(argc, argv);
+#else
+        QtSingleApplication app(argc, argv);
+#endif
         QApplication::setStyle(new StyleOverride);
 
         QTranslator translator, qtTranslator;