diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ae06ddb..9234e06 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,8 +20,10 @@ endif() find_package(Qt6 REQUIRED COMPONENTS ${QT_COMPONENTS}) -set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication") -add_subdirectory(third-party/singleapplication) +if (NOT APPLE) + set(QAPPLICATION_CLASS QApplication CACHE STRING "Inheritance class for SingleApplication") + add_subdirectory(third-party/singleapplication) +endif() if (CHECK_UPDATES) add_subdirectory(openpgp) @@ -272,13 +274,16 @@ target_link_libraries(feather PRIVATE Threads::Threads ${QRENCODE_LIBRARY} ${POLYSEED_LIBRARY} - SingleApplication::SingleApplication ${ICU_LIBRARIES} ${LIBZIP_LIBRARIES} ${ZLIB_LIBRARIES} ${BCUR_LIBRARY} ) +if(NOT APPLE) + target_link_libraries(feather PRIVATE SingleApplication::SingleApplication) +endif() + if(CHECK_UPDATES) target_link_libraries(feather PRIVATE openpgp) endif() diff --git a/src/main.cpp b/src/main.cpp index 8d1e406..43a9e72 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,7 +5,9 @@ #include #include #include +#if !defined(Q_OS_MAC) #include +#endif #include "config-feather.h" #include "constants.h" @@ -64,6 +66,8 @@ void signal_handler(int signum) { int main(int argc, char *argv[]) { + qDebug() << "Reached main"; + Q_INIT_RESOURCE(assets); #if defined(Q_OS_LINUX) && defined(STACK_TRACE) @@ -131,12 +135,18 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) { QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Round); #endif + qDebug() << "Setting up QApplication"; + +#if defined(Q_OS_MAC) + // https://github.com/itay-grudev/SingleApplication/issues/136#issuecomment-1925441403 + QApplication app(argc, argv); +#else SingleApplication app(argc, argv); +#endif QApplication::setQuitOnLastWindowClosed(false); QApplication::setApplicationName("FeatherWallet"); - // Setup config directories QString configDir = Config::defaultConfigDir().path(); QString config_dir_tor = QString("%1/%2").arg(configDir, "tor"); @@ -238,9 +248,11 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) { auto wm = windowManager(); wm->setEventFilter(&filter); +#if !defined(Q_OS_MAC) QObject::connect(&app, &SingleApplication::instanceStarted, [&wm]() { wm->raise(); }); +#endif return QApplication::exec(); }