diff --git a/CMakeLists.txt b/CMakeLists.txt index a85d6a9..a7d97ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,24 +18,15 @@ set(COPYRIGHT_HOLDERS "The Monero Project") # Configurable options option(STATIC "Link libraries statically, requires static Qt" OFF) option(SELF_CONTAINED "Disable when building Feather for packages" OFF) -option(STACK_TRACE "Dump stack trace on crash (Linux only)" OFF) -option(DONATE_BEG "Prompt donation window every once in a while" OFF) - -# Updater -option(CHECK_UPDATES "Enable checking for application updates" OFF) -option(PLATFORM_INSTALLER "Built-in updater fetches installer (windows-only)" OFF) - -# Tor -option(TOR_DIR "Directory containing Tor binaries to embed inside Feather" OFF) -option(TOR_VERSION "Tor version for bundled Tor binary" OFF) -option(TOR_INSTALLED "Tor binary is available in the installation directory" OFF) - -# Components -option(WITH_SCANNER "Enable webcam QR scanner" ON) -option(USE_DEVICE_TREZOR "Trezor support compilation" ON) option(LOCALMONERO "Include LocalMonero module" ON) option(XMRIG "Include XMRig module" ON) - +option(TOR_DIR "Directory containing Tor binaries to embed inside Feather" OFF) +option(CHECK_UPDATES "Enable checking for application updates" OFF) +option(PLATFORM_INSTALLER "Built-in updater fetches installer (windows-only)" OFF) +option(USE_DEVICE_TREZOR "Trezor support compilation" ON) +option(DONATE_BEG "Prompt donation window every once in a while" OFF) +option(WITH_SCANNER "Enable webcam QR scanner" ON) +option(STACK_TRACE "Dump stack trace on crash (Linux only)" OFF) list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_SOURCE_DIR}/cmake") include(CheckCCompilerFlag) diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh index ab2163e..3ef6fb9 100755 --- a/contrib/guix/libexec/build.sh +++ b/contrib/guix/libexec/build.sh @@ -279,7 +279,7 @@ mkdir -p "$DISTSRC" *mingw32) case "$OPTIONS" in installer) - CMAKEVARS+=" -DPLATFORM_INSTALLER=On -DTOR_DIR=Off -DTOR_VERSION=Off -DTOR_INSTALLED=On" + CMAKEVARS+=" -DPLATFORM_INSTALLER=On -DTOR_DIR=Off -DTOR_VERSION=Off" ;; esac ;; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3245d5f..9d4877d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -187,10 +187,6 @@ if(TOR_DIR) target_compile_definitions(feather PRIVATE HAS_TOR_BIN=1) endif() -if(TOR_INSTALLED) - target_compile_definitions(feather PRIVATE TOR_INSTALLED=1) -endif() - if(XMRIG) target_compile_definitions(feather PRIVATE HAS_XMRIG=1) endif() @@ -322,4 +318,4 @@ else() install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/feather.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/assets/images/appicons/256x256.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/256x256/apps RENAME "feather.png") endif() -endif() +endif() \ No newline at end of file diff --git a/src/utils/TorManager.cpp b/src/utils/TorManager.cpp index 21d6b8f..977711f 100644 --- a/src/utils/TorManager.cpp +++ b/src/utils/TorManager.cpp @@ -21,7 +21,7 @@ TorManager::TorManager(QObject *parent) connect(m_checkConnectionTimer, &QTimer::timeout, this, &TorManager::checkConnection); this->torDir = Config::defaultConfigDir().filePath("tor"); -#if defined(TOR_INSTALLED) +#if defined(PLATFORM_INSTALLER) // When installed, use directory relative to application path. this->torDir = QDir(Utils::applicationPath()).filePath("tor"); #endif @@ -73,6 +73,10 @@ void TorManager::start() { } QFile torFile{this->torPath}; + QString alternativeTorFile = QCoreApplication::applicationDirPath() + "/tor"; + if (!torFile.exists() && QFileInfo(alternativeTorFile).isFile()) { + this->torPath = alternativeTorFile; + } qDebug() << QString("Start process: %1").arg(this->torPath); @@ -186,7 +190,7 @@ bool TorManager::unpackBins() { this->torPath = QDir(this->torDir).filePath(torBin); -#if defined(TOR_INSTALLED) +#if defined(PLATFORM_INSTALLER) // We don't need to unpack if Tor was installed using the installer return true; #endif @@ -250,7 +254,7 @@ bool TorManager::shouldStartTorDaemon() { } // Don't start a Tor daemon if we don't have one -#if !defined(HAS_TOR_BIN) && !defined(TOR_INSTALLED) +#if !defined(HAS_TOR_BIN) && !defined(PLATFORM_INSTALLER) qWarning() << "Feather built without embedded Tor. Assuming --use-local-tor"; return false; #endif diff --git a/src/widgets/NetworkProxyWidget.cpp b/src/widgets/NetworkProxyWidget.cpp index b5d56fb..0af68eb 100644 --- a/src/widgets/NetworkProxyWidget.cpp +++ b/src/widgets/NetworkProxyWidget.cpp @@ -44,7 +44,7 @@ NetworkProxyWidget::NetworkProxyWidget(QWidget *parent) // [Tor settings] // [Let Feather start and manage a Tor daemon] -#if !defined(HAS_TOR_BIN) && !defined(TOR_INSTALLED) +#if !defined(HAS_TOR_BIN) && !defined(PLATFORM_INSTALLER) ui->checkBox_torManaged->setChecked(false); ui->checkBox_torManaged->setEnabled(false); ui->checkBox_torManaged->setToolTip("Feather was bundled without Tor"); @@ -69,7 +69,7 @@ NetworkProxyWidget::NetworkProxyWidget(QWidget *parent) // [Show Tor logs] ui->frame_torShowLogs->setVisible(!config()->get(Config::useLocalTor).toBool()); -#if !defined(HAS_TOR_BIN) && !defined(TOR_INSTALLED) +#if !defined(HAS_TOR_BIN) && !defined(PLATFORM_INSTALLER) ui->frame_torShowLogs->setVisible(false); #endif connect(ui->btn_torShowLogs, &QPushButton::clicked, [this]{