diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt --- a/src/qt/CMakeLists.txt +++ b/src/qt/CMakeLists.txt @@ -8,7 +8,7 @@ include(BrewHelper) find_brew_prefix(QT5_PREFIX qt5) -set(QT_REQUIRED_COMPONENTS Core Widgets Network Test) +set(QT_REQUIRED_COMPONENTS Core Widgets Network Test Gui) find_package(Qt5 COMPONENTS ${QT_REQUIRED_COMPONENTS} REQUIRED HINTS "${QT5_PREFIX}") # Find out more about Qt. This is similar to @@ -147,9 +147,44 @@ qrc_bitcoin_locale.cpp ) +if(QT_STATIC_BUILD) + target_compile_definitions(bitcoin-qt-base INTERFACE -DQT_STATICPLUGIN=1) +endif() + # Windows support if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") target_sources(bitcoin-qt-base PRIVATE winshutdownmonitor.cpp) + + # Use windows platform plugin + target_compile_definitions(bitcoin-qt-base INTERFACE + -DQT_QPA_PLATFORM_WINDOWS=1 + ) + + target_link_libraries(bitcoin-qt-base + Qt5::QWindowsIntegrationPlugin + ) + + macro(add_qt_dependency) + foreach(LIB ${ARGN}) + set(LIB_PATH "${LIB}_PATH") + find_library(${LIB_PATH} ${LIB}) + if(${LIB_PATH}) + target_link_libraries(bitcoin-qt-base ${${LIB_PATH}}) + endif() + endforeach() + endmacro() + + add_qt_dependency( + # Support for QT < 5.8 + Qt5PlatformSupport + # Support for QT >= 5.8 + Qt5EventDispatcherSupport + Qt5FontDatabaseSupport + Qt5ThemeSupport + Qt5FbSupport + Qt5DeviceDiscoverySupport + Qt5AccessibilitySupport + ) endif() target_include_directories(bitcoin-qt-base @@ -165,6 +200,7 @@ rpcclient Qt5::Widgets Qt5::Network + Qt5::Gui OpenSSL::SSL ${Protobuf_LIBRARIES} )