From: gg Date: Thu, 15 Jan 2026 04:04:09 +0000 (-0500) Subject: support legacy Qt 5 flags, include src/CMakeLists.txt X-Git-Url: https://git.nutra.tk/v1?a=commitdiff_plain;h=b0542c99e973a3df6c1949b8015bcb1eb40b577f;p=gamesguru%2Ffeather.git support legacy Qt 5 flags, include src/CMakeLists.txt --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 617a7196..8f2b83b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,9 +48,10 @@ set(PACKAGE_URL "https://featherwallet.org/") set(COPYRIGHT_YEAR "2025") set(COPYRIGHT_HOLDERS "The Monero Project") -cmake_policy(SET CMP0074 NEW) +# Policies for better dependency finding +cmake_policy(SET CMP0074 NEW) # find_package() uses _ROOT variables if(POLICY CMP0148) - cmake_policy(SET CMP0148 OLD) + cmake_policy(SET CMP0148 OLD) # Python modules endif() # Configurable options @@ -304,6 +305,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MINGW_FLAG} -std=c11 ${C_SECURITY_FLAGS} $ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MINGW_FLAG} ${CXX_SECURITY_FLAGS} ${ANTI_AV_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LD_SECURITY_FLAGS} ${STATIC_FLAGS}") +# Ensure src sees all flags add_subdirectory(src) configure_file("${CMAKE_SOURCE_DIR}/contrib/installers/windows/setup.nsi.in" "${CMAKE_SOURCE_DIR}/contrib/installers/windows/setup.nsi" @ONLY) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1dcfc990..17d11cc5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,26 +12,46 @@ set(QT_COMPONENTS Network Svg WebSockets - SvgWidgets ) +# Qt6 has SvgWidgets separate, Qt5 includes it in Svg +set(QT6_COMPONENTS ${QT_COMPONENTS} SvgWidgets) + if (WITH_SCANNER) list(APPEND QT_COMPONENTS Multimedia MultimediaWidgets) + list(APPEND QT6_COMPONENTS Multimedia MultimediaWidgets) endif() -IF (UNIX AND NOT APPLE) - list(APPEND QT_COMPONENTS WaylandClient) +if (UNIX AND NOT APPLE) + list(APPEND QT6_COMPONENTS WaylandClient) endif() -find_package(Qt6 REQUIRED COMPONENTS ${QT_COMPONENTS}) +# 1. Try to find complete Qt 6 (Quietly) +find_package(Qt6 COMPONENTS ${QT6_COMPONENTS} QUIET) + +if (Qt6_FOUND) + message(STATUS "Qt 6 found! Building with Qt ${Qt6_VERSION}") + set(QT_MAJOR_VERSION 6) + set(QT_NAMESPACE "Qt6") +else() + # 2. Fallback to Qt 5 + message(STATUS "Qt 6 not found (or missing modules). Falling back to Qt 5...") + set(QT_MAJOR_VERSION 5) + set(QT_NAMESPACE "Qt5") + find_package(Qt5 REQUIRED COMPONENTS ${QT_COMPONENTS}) +endif() if (CHECK_UPDATES) add_subdirectory(openpgp) endif() -qt_add_resources(RESOURCES assets.qrc assets_tor.qrc assets_docs.qrc) +if (QT_MAJOR_VERSION EQUAL 6) + qt_add_resources(RESOURCES assets.qrc assets_tor.qrc assets_docs.qrc) +else() + qt5_add_resources(RESOURCES assets.qrc assets_tor.qrc assets_docs.qrc) +endif() # Compile source files (.h/.cpp) file(GLOB SOURCE_FILES @@ -277,13 +297,12 @@ target_link_libraries(feather PRIVATE ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${EXTRA_LIBRARIES} - Qt::Core - Qt::Widgets - Qt::Gui - Qt::Network - Qt::Svg - Qt::WebSockets - Qt::SvgWidgets + ${QT_NAMESPACE}::Core + ${QT_NAMESPACE}::Widgets + ${QT_NAMESPACE}::Gui + ${QT_NAMESPACE}::Network + ${QT_NAMESPACE}::Svg + ${QT_NAMESPACE}::WebSockets Threads::Threads ${QRENCODE_LIBRARY} ${POLYSEED_LIBRARY} @@ -292,6 +311,11 @@ target_link_libraries(feather PRIVATE ${ZLIB_LIBRARIES} ) +# Qt6 separates SvgWidgets; Qt5 bundles it. Link explicitly if Qt6. +if (QT_MAJOR_VERSION EQUAL 6) + target_link_libraries(feather PRIVATE Qt6::SvgWidgets) +endif() + if(CHECK_UPDATES) target_link_libraries(feather PRIVATE openpgp) endif() @@ -322,22 +346,24 @@ if (WITH_SCANNER) endif() target_link_libraries(feather PRIVATE - Qt::Multimedia - Qt::MultimediaWidgets + ${QT_NAMESPACE}::Multimedia + ${QT_NAMESPACE}::MultimediaWidgets ${ZXING_LIBRARIES} ${BCUR_LIBRARY} ) endif() if(UNIX AND NOT APPLE) - target_link_libraries(feather PRIVATE Qt::WaylandClient) + if (QT_MAJOR_VERSION EQUAL 6) + target_link_libraries(feather PRIVATE Qt6::WaylandClient) + endif() endif() -if(STATIC AND APPLE) +if(STATIC AND APPLE AND QT_MAJOR_VERSION EQUAL 6) target_link_libraries(feather PRIVATE Qt6::QDarwinCameraPermissionPlugin) endif() -if(STATIC AND UNIX AND NOT APPLE) +if(STATIC AND UNIX AND NOT APPLE AND QT_MAJOR_VERSION EQUAL 6) target_link_libraries(feather PRIVATE Qt6::QComposePlatformInputContextPlugin) target_link_libraries(feather PRIVATE Qt6::QWaylandIntegrationPlugin) endif() @@ -400,4 +426,6 @@ if(APPLE) file(COPY "${CMAKE_SOURCE_DIR}/src/assets/images/appicons/appicon.icns" DESTINATION "${CMAKE_SOURCE_DIR}/installed/feather.app/Contents/Resources/" ) endif() -qt_finalize_executable(feather) +if (COMMAND qt_finalize_executable) + qt_finalize_executable(feather) +endif()