[calamares] Switch over to DBus unique activation
- By default, try to use DBus service to keep Calamares unique - The older implementation via KDSingleApplicationGuard is still available, just not used by default.
This commit is contained in:
parent
5af2a87709
commit
b7214b8ede
@ -54,6 +54,7 @@ option( BUILD_TESTING "Build the testing tree." ON )
|
||||
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
|
||||
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." OFF )
|
||||
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
|
||||
option( WITH_KF5DBus "Use DBus service for unique-application." ON )
|
||||
|
||||
# Possible debugging flags are:
|
||||
# - DEBUG_TIMEZONES draws latitude and longitude lines on the timezone
|
||||
@ -290,7 +291,7 @@ if( ECM_FOUND )
|
||||
include(KDEInstallDirs)
|
||||
endif()
|
||||
|
||||
find_package( KF5 QUIET COMPONENTS CoreAddons Crash )
|
||||
find_package( KF5 QUIET COMPONENTS CoreAddons Crash DBusAddons )
|
||||
set_package_properties(
|
||||
KF5::CoreAddons PROPERTIES
|
||||
TYPE REQUIRED
|
||||
@ -299,8 +300,17 @@ set_package_properties(
|
||||
PURPOSE "About Calamares"
|
||||
)
|
||||
if( NOT KF5Crash_FOUND )
|
||||
if( WITH_KF5Crash )
|
||||
message(WARNING "WITH_KF5Crash is set, but KF5::Crash is not available.")
|
||||
endif()
|
||||
set( WITH_KF5Crash OFF )
|
||||
endif()
|
||||
if( NOT KF5DBusAddons_FOUND )
|
||||
if( WITH_KF5DBus )
|
||||
message(WARNING "WITH_KF5DBus is set, but KF5::DBusAddons is not available.")
|
||||
endif()
|
||||
set( WITH_KF5DBus OFF )
|
||||
endif()
|
||||
|
||||
if( BUILD_TESTING )
|
||||
enable_testing()
|
||||
@ -520,6 +530,7 @@ add_feature_info(Python ${WITH_PYTHON} "Python job modules")
|
||||
add_feature_info(PythonQt ${WITH_PYTHONQT} "Python view modules")
|
||||
add_feature_info(Config ${INSTALL_CONFIG} "Install Calamares configuration")
|
||||
add_feature_info(KCrash ${WITH_KF5Crash} "Crash dumps via KCrash")
|
||||
add_feature_info(KDBusAddons ${WITH_KF5DBus} "Unique-application via DBus")
|
||||
|
||||
# Add all targets to the build-tree export set
|
||||
set( CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Calamares" CACHE PATH "Installation directory for CMake files" )
|
||||
|
@ -41,12 +41,13 @@ target_link_libraries( calamares_bin
|
||||
KF5::CoreAddons
|
||||
)
|
||||
if( WITH_KF5Crash )
|
||||
target_link_libraries( calamares_bin
|
||||
PRIVATE
|
||||
KF5::Crash
|
||||
)
|
||||
target_link_libraries( calamares_bin PRIVATE KF5::Crash )
|
||||
target_compile_definitions( calamares_bin PRIVATE WITH_KF5Crash )
|
||||
endif()
|
||||
if( WITH_KF5DBus )
|
||||
target_link_libraries( calamares_bin PRIVATE KF5::DBusAddons )
|
||||
target_compile_definitions( calamares_bin PRIVATE WITH_KF5DBus )
|
||||
endif()
|
||||
|
||||
install( TARGETS calamares_bin
|
||||
BUNDLE DESTINATION .
|
||||
|
@ -25,9 +25,15 @@
|
||||
#include "utils/Logger.h"
|
||||
#include "utils/Retranslator.h"
|
||||
|
||||
#ifndef WITH_KF5DBus
|
||||
#warning "KDSingleApplicationGuard is deprecated"
|
||||
#include "3rdparty/kdsingleapplicationguard/kdsingleapplicationguard.h"
|
||||
#endif
|
||||
|
||||
#include <KCoreAddons/KAboutData>
|
||||
#ifdef WITH_KF5DBus
|
||||
#include <KDBusAddons/KDBusService>
|
||||
#endif
|
||||
#ifdef WITH_KF5Crash
|
||||
#include <KCrash/KCrash>
|
||||
#endif
|
||||
@ -137,11 +143,12 @@ main( int argc, char* argv[] )
|
||||
|
||||
bool is_debug = handle_args( a );
|
||||
|
||||
if ( !is_debug )
|
||||
{
|
||||
KDSingleApplicationGuard guard( KDSingleApplicationGuard::AutoKillOtherInstances );
|
||||
|
||||
if ( !guard.isPrimaryInstance() )
|
||||
#ifdef WITH_KF5DBus
|
||||
KDBusService service( is_debug ? KDBusService::Multiple : KDBusService::Unique );
|
||||
#else
|
||||
KDSingleApplicationGuard guard( is_debug ? KDSingleApplicationGuard::NoPolicy
|
||||
: KDSingleApplicationGuard::AutoKillOtherInstances );
|
||||
if ( !is_debug && !guard.isPrimaryInstance() )
|
||||
{
|
||||
// Here we have not yet set-up the logger system, so qDebug() is ok
|
||||
auto instancelist = guard.instances();
|
||||
@ -156,7 +163,7 @@ main( int argc, char* argv[] )
|
||||
}
|
||||
return 69; // EX_UNAVAILABLE on FreeBSD
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Calamares::Settings::init( is_debug );
|
||||
a.init();
|
||||
|
Loading…
Reference in New Issue
Block a user