diff --git a/CMakeLists.txt b/CMakeLists.txt index 6eb1dde2..43d3e4eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,17 @@ enable_sanitizers(project_options) 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 --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c34e9c52..80404242 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -113,7 +113,7 @@ endif () 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 @@ -126,7 +126,6 @@ target_include_directories( flameshot PUBLIC $ $ - $ $ $ $ @@ -161,6 +160,15 @@ target_include_directories( $ $) +if (USE_EXTERNAL_SINGLEAPPLICATION) + add_compile_definitions(USE_EXTERNAL_SINGLEAPPLICATION=1) +else () + target_include_directories( + flameshot + PUBLIC + $) +endif() + target_link_libraries( flameshot project_warnings @@ -169,7 +177,7 @@ target_link_libraries( Qt5::DBus Qt5::Network Qt5::Widgets - SingleApplication::SingleApplication + ${QTSINGLEAPPLICATION_LIBRARY} spdlog::spdlog ) diff --git a/src/main.cpp b/src/main.cpp index e600ce55..32000989 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,7 +1,12 @@ // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: 2017-2019 Alejandro Sirgo Rica & Contributors +#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 @@ int main(int argc, char* argv[]) // 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;