Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Clang's native code coverage workflow #233

Closed
wants to merge 128 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
08e08a7
cmake: Add root `CMakeLists.txt` file
hebasto Apr 16, 2024
fb4908e
cmake: Introduce core interface libraries to encapsulate common flags
hebasto Mar 23, 2024
1433ff4
cmake: Add `config/bitcoin-config.h` support
hebasto Mar 23, 2024
2158673
cmake: Check system headers
hebasto Mar 23, 2024
2afbf28
cmake: Check system symbols
hebasto Apr 29, 2024
874d812
cmake: Check compiler features
hebasto Mar 23, 2024
a0d66f1
cmake: Add position independent code support
hebasto Jan 9, 2024
8c56ec7
cmake: Add platform-specific definitions and properties
hebasto Mar 23, 2024
402e35c
cmake: Build `crc32c` static library
hebasto Mar 23, 2024
7182bf4
cmake: Build `leveldb` static library
hebasto Mar 23, 2024
912c96e
cmake: Build `minisketch` static library
hebasto Mar 23, 2024
a550815
cmake: Build `secp256k1` static library
hebasto Jun 4, 2024
6cc1d2d
cmake: Build `univalue` static library
hebasto Jan 9, 2024
5b27271
cmake: Build `bitcoin_crypto` library
hebasto Mar 8, 2024
f95ced3
cmake: Build `bitcoin_util` static library
hebasto Apr 3, 2024
235950f
cmake: Build `bitcoin_consensus` library
hebasto Jan 9, 2024
3c4d878
depends: Fix Autotools-generated `libevent*.pc` files
hebasto Apr 22, 2024
5e37f11
cmake: Add `FindLibevent` module
hebasto May 17, 2024
2d820b4
cmake: Build `bitcoind` executable
hebasto May 4, 2024
74e6bbe
depends: Amend handling flags environment variables
hebasto Feb 4, 2024
61c69f5
build: Generate `toolchain.cmake` in depends
hebasto Jun 4, 2024
b7ed165
cmake: Add cross-compiling support
hebasto May 20, 2024
2956ca4
cmake: Add `TristateOption` module
hebasto Jan 9, 2024
a111659
cmake: Add `ccache` support
hebasto Jun 4, 2024
8b1b629
cmake: Add `libnatpmp` optional package support
hebasto Jun 4, 2024
0cac5dc
cmake: Add `libminiupnpc` optional package support
hebasto Apr 29, 2024
7bbbd06
depends: Fix Autotools-generated `libzmq.pc` file
hebasto Mar 20, 2024
7ebccae
cmake: Add `libzmq` optional package support
hebasto Apr 29, 2024
6155192
cmake: Add `systemtap-sdt` optional package support
hebasto Apr 29, 2024
54d5667
cmake: Build `bitcoin-cli` executable
hebasto May 20, 2024
68e68fd
cmake: Build `bitcoin-tx` executable
hebasto Jan 9, 2024
c26deba
cmake: Build `bitcoin-util` executable
hebasto Jan 9, 2024
756ccfc
cmake: Add wallet functionality
hebasto Jun 4, 2024
4e8db00
cmake: Add test config and runners
hebasto May 20, 2024
ec22b45
cmake: Build `bench_bitcoin` executable
hebasto Jun 4, 2024
26df8b8
cmake: Build `test_bitcoin` executable
hebasto Jun 4, 2024
9d1c537
cmake: Make `BUILD_<util>` defaults dependent on `BUILD_TESTS`
hebasto Jun 4, 2024
83b3490
cmake: Include CTest
hebasto Jan 9, 2024
83cca06
cmake: Add `TryAppendCXXFlags` module
hebasto Jan 9, 2024
1651a68
cmake: Add `TryAppendLinkerFlag` module
hebasto Jan 9, 2024
af44e12
cmake: Add platform-specific compiler flags
hebasto Mar 23, 2024
aa13fa9
cmake: Add platform-specific linker flags
hebasto Jan 9, 2024
e728baa
cmake: Redefine/adjust per-configuration flags
hebasto Apr 3, 2024
90a0a17
cmake: Add general compile options
hebasto Mar 23, 2024
a66dc7f
cmake: Add `HARDENING` option
hebasto Jun 4, 2024
604b13b
cmake: Add `REDUCE_EXPORTS` option
hebasto Mar 23, 2024
97e1624
cmake: Add `WERROR` option
hebasto Mar 23, 2024
95e7cc5
cmake: Implement `make install`
hebasto Jan 9, 2024
376019a
cmake: Generate `obj/build.h` header
hebasto Jan 9, 2024
8b60bd0
Revert "build, qt: Do not install *.prl files"
hebasto Jan 17, 2024
378f8b9
qt, build: Drop `QT_STATICPLUGIN` macro
hebasto Mar 1, 2024
cfb8a41
cmake: Build `bitcoin-qt` executable
hebasto May 4, 2024
9d1913a
cmake: Build `test_bitcoin-qt` executable
hebasto Mar 9, 2024
5cce952
qt: Drop `Q_IMPORT_PLUGIN` macros
hebasto Mar 1, 2024
9f71360
cmake: Add `libqrencode` optional package support
hebasto Apr 29, 2024
bf0885d
cmake: Add `SANITIZERS` option
hebasto Mar 23, 2024
1785f94
cmake: Add external signer support
hebasto Jun 4, 2024
5ac5216
cmake: Add fuzzing options
hebasto Jun 4, 2024
4ec174f
cmake: Add `AddWindowsResources` module
hebasto Jan 27, 2024
3249b63
cmake: Add `Maintenance` module
hebasto Jun 4, 2024
fd3c8b5
cmake: Migrate Guix build scripts to CMake
hebasto Jun 4, 2024
e36ae27
cmake: Add vcpkg manifest file
hebasto Jun 4, 2024
aec2084
cmake, vcpkg: Pin `libevent` version
hebasto May 13, 2024
8a902d3
cmake: Add preset for MSVC build
hebasto Feb 8, 2024
4edf431
Fix MSVC warning C4273 "inconsistent dll linkage"
hebasto Feb 26, 2024
8113eac
cmake: Add compiler diagnostic flags
hebasto Mar 25, 2024
1207200
test: Fix MSVC warning C4101 "unreferenced local variable"
hebasto Feb 26, 2024
1b5cf65
cmake: Build `bitcoinkernel` library
hebasto May 20, 2024
4847b61
cmake: Build `bitcoin-chainstate` executable
hebasto Apr 1, 2024
97f642f
cmake: Remove legacy MSVC build system
hebasto Mar 8, 2024
55d2ddc
depends: Bump libmultiprocess source
hebasto Mar 30, 2024
b731ba2
cmake: Add `MULTIPROCESS` option
hebasto Jun 4, 2024
99593b0
cmake: Add `docs` build target
hebasto Apr 23, 2024
f748110
cmake [KILL 3-STATE]: Switch `WITH_NATPMP` to boolean w/ default OFF
hebasto Apr 21, 2024
f52af92
cmake [KILL 3-STATE]: Switch `WITH_MINIUPNPC` to boolean w/ default OFF
hebasto Apr 21, 2024
e2c390d
cmake [KILL 3-STATE]: Switch `WITH_ZMQ` to boolean w/ default OFF
hebasto Apr 29, 2024
4408d6f
cmake [KILL 3-STATE]: Switch `MULTIPROCESS` to boolean w/ default OFF
hebasto Apr 21, 2024
dd44dfa
cmake [KILL 3-STATE]: Switch `WITH_QRENCODE` to boolean w/ default ON
hebasto Apr 24, 2024
aa80e36
cmake [KILL 3-STATE]: Switch `WITH_USDT` to boolean w/ default OFF
hebasto Apr 22, 2024
9f57186
cmake [KILL 3-STATE]: Switch `WITH_{SQLITE,BDB}` to boolean
hebasto Apr 22, 2024
b18c934
cmake [KILL 3-STATE]: Make WITH_GUI binary option w/ default OFF
hebasto Jun 4, 2024
8c99680
cmake [KILL 3-STATE]: Rename WITH_GUI to BUILD_GUI
hebasto Jun 4, 2024
47f252d
cmake: Add `WITH_DBUS` option
hebasto Apr 28, 2024
a4383c8
cmake, doc: Update `release-process.md`
hebasto Feb 26, 2024
5b702d8
cmake, docs: Update MSVC build docs
hebasto May 20, 2024
8db83cd
cmake, doc: Update `build-osx.md`
hebasto May 20, 2024
7b93750
cmake, doc: Update `build-freebsd.md`
hebasto May 20, 2024
bd01dd1
cmake, doc: Update `build-openbsd.md`
hebasto May 20, 2024
1ff2274
cmake, doc: Update `build-netbsd.md`
hebasto May 20, 2024
ef0398d
cmake, doc: Update `build-unix.md`
hebasto May 22, 2024
98346f8
cmake, doc: Update `depends/README.md`
hebasto Apr 27, 2024
2562a5b
cmake, doc: Switch fuzzing docs to CMake
hebasto Jun 4, 2024
84b83b3
cmake: Add `APPEND_{CPP,C,CXX,LD}FLAGS` cache variables
hebasto Apr 26, 2024
4dd97a8
cmake: Display `APPEND_{CPP,C,CXX,LD}FLAGS` in summary
hebasto May 9, 2024
b8987ab
depends: Rename `cmake_system` > `cmake_system_name`
hebasto May 15, 2024
a4f4817
depends: Add `CMAKE_SYSTEM_VERSION` to CMake toolchain file
hebasto May 15, 2024
7aae550
cmake: Add CI-specific presets
hebasto Jun 4, 2024
dec4ca3
ci: Test CMake edge cases
hebasto Jun 4, 2024
5825234
cmake, ci: Skip `miniupnpc` package in depends
hebasto May 22, 2024
e3f0f1d
ci: Migrate CI scripts to CMake
hebasto Jun 4, 2024
b333f6a
cmake, lint: Adjust `lint_includes_build_config`
hebasto Apr 28, 2024
597da83
Remove unused `#include <config/bitcoin-config.h>`
hebasto Apr 28, 2024
d43c34c
fixup! cmake, docs: Update MSVC build docs
hebasto Jun 4, 2024
b0ee403
Merge hebasto/bitcoin#222: cmake: Fix doc links
hebasto Jun 5, 2024
7669f29
cmake: Add `Coverage` and `CoverageFuzz` scripts
hebasto May 6, 2024
776c834
fixup! ci: Test CMake edge cases
hebasto Jun 6, 2024
11960b3
fixup! ci: Test CMake edge cases
hebasto Jun 7, 2024
9eee188
fixup! ci: Migrate CI scripts to CMake
hebasto Jun 7, 2024
8c92d73
fixup! ci: Migrate CI scripts to CMake
hebasto Jun 7, 2024
29d3b52
Merge hebasto/bitcoin#225: cmake, ci: Fix native Windows jobs
hebasto Jun 7, 2024
2677998
Merge hebasto/bitcoin#191: cmake: Add `Coverage` script
hebasto Jun 8, 2024
ca1f7b8
fixup! cmake: Add test config and runners
hebasto Jun 8, 2024
1ec9926
qa: Consider `cache` and `config.ini` relative to invocation directory
hebasto Jun 9, 2024
7e94254
qa: Do not assume running `feature_asmap.py` from source directory
hebasto Jun 8, 2024
bb12261
refactor: disable self-assign warning for tests
theuni Jun 5, 2024
160fd92
fixup! cmake: Add compiler diagnostic flags
hebasto Jun 10, 2024
0007a17
Merge hebasto/bitcoin#227: cmake: Port PR30235 from the master branch
hebasto Jun 10, 2024
b38d2bc
fixup! cmake: Build `bitcoind` executable
hebasto Jun 10, 2024
e104fa9
fixup! cmake: Build `bitcoind` executable
hebasto Jun 6, 2024
8ce80b9
Merge hebasto/bitcoin#224: cmake: Improve Boost checks
hebasto Jun 10, 2024
8975005
Merge hebasto/bitcoin#226: cmake, test: Enable running individual fun…
hebasto Jun 11, 2024
939434d
cmake, doc: Update `build-windows-mingw.md`
hebasto Jun 17, 2024
8e19100
Merge hebasto/bitcoin#231: cmake, doc: Update `build-windows-mingw.md`
hebasto Jun 17, 2024
686a731
cmake [KILL 3-STATE]: Switch `WITH_CCACHE` to boolean
hebasto Jun 17, 2024
4cd15f1
cmake: Remove unused `TristateOption` module
hebasto Jun 17, 2024
c98d7ae
Merge hebasto/bitcoin#215: cmake: Rework `WITH_CCACHE`
hebasto Jun 17, 2024
2c1621d
fixup! cmake: Add `Coverage` and `CoverageFuzz` scripts
vasild Jun 18, 2024
194758b
fixup! cmake: Add `Coverage` and `CoverageFuzz` scripts
vasild Jun 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -218,7 +218,7 @@ add_threads_if_needed()
include(AddBoostIfNeeded)
add_boost_if_needed()

if(BUILD_DAEMON OR BUILD_CLI OR BUILD_TESTS OR BUILD_BENCH)
if(BUILD_DAEMON OR WITH_GUI OR BUILD_CLI OR BUILD_TESTS OR BUILD_BENCH)
find_package(Libevent 2.1.8 MODULE REQUIRED)
endif()

@@ -296,6 +296,8 @@ else()
unset(c_flags_debug_overridden)
endif()

include(cmake/optional_qt.cmake)

include(cmake/optional.cmake)

# Don't allow extended (non-ASCII) symbols in identifiers. This is easier for code review.
@@ -409,6 +411,7 @@ message("Configure summary")
message("=================")
message("Executables:")
message(" bitcoind ............................ ${BUILD_DAEMON}")
message(" bitcoin-qt (GUI) .................... ${WITH_GUI}")
message(" bitcoin-cli ......................... ${BUILD_CLI}")
message(" bitcoin-tx .......................... ${BUILD_TX}")
message(" bitcoin-util ........................ ${BUILD_UTIL}")
50 changes: 50 additions & 0 deletions cmake/optional_qt.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Copyright (c) 2023-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit/.

set(WITH_GUI "AUTO" CACHE STRING "Build GUI ([AUTO], Qt5, OFF)")
set(with_gui_values AUTO Qt5 OFF)
if(NOT WITH_GUI IN_LIST with_gui_values)
message(FATAL_ERROR "WITH_GUI value is \"${WITH_GUI}\", but must be one of \"AUTO\", \"Qt5\" or \"OFF\".")
endif()

if(WITH_GUI)
set(QT_NO_CREATE_VERSIONLESS_FUNCTIONS ON)
set(QT_NO_CREATE_VERSIONLESS_TARGETS ON)

set(qt5_brew_prefix)
if(CMAKE_HOST_APPLE)
find_program(HOMEBREW_EXECUTABLE brew)
if(HOMEBREW_EXECUTABLE)
execute_process(
COMMAND ${HOMEBREW_EXECUTABLE} --prefix qt@5
OUTPUT_VARIABLE qt5_brew_prefix
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
endif()

if(WITH_GUI STREQUAL "AUTO")
# The PATH_SUFFIXES option is required on OpenBSD systems.
find_package(QT NAMES Qt5
COMPONENTS Core
HINTS ${qt5_brew_prefix}
PATH_SUFFIXES Qt5
)
if(QT_FOUND)
set(WITH_GUI Qt${QT_VERSION_MAJOR})
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
enable_language(OBJCXX)
set(CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_OBJCXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_OBJCXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_OBJCXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
endif()
else()
message(WARNING "Qt not found, disabling.\n"
"To skip this warning check, use \"-DWITH_GUI=OFF\".\n")
set(WITH_GUI OFF)
endif()
endif()
endif()
9 changes: 5 additions & 4 deletions depends/packages/qt.mk
Original file line number Diff line number Diff line change
@@ -263,13 +263,14 @@ define $(package)_build_cmds
$(MAKE)
endef

# TODO: Investigate whether specific targets can be used here to minimize the amount of files/components installed.
define $(package)_stage_cmds
$(MAKE) -C qtbase/src INSTALL_ROOT=$($(package)_staging_dir) $(addsuffix -install_subtargets,$(addprefix sub-,$($(package)_qt_libs))) && \
$(MAKE) -C qttools/src/linguist INSTALL_ROOT=$($(package)_staging_dir) $(addsuffix -install_subtargets,$(addprefix sub-,$($(package)_linguist_tools))) && \
$(MAKE) -C qtbase INSTALL_ROOT=$($(package)_staging_dir) install && \
$(MAKE) -C qttools INSTALL_ROOT=$($(package)_staging_dir) install && \
$(MAKE) -C qttranslations INSTALL_ROOT=$($(package)_staging_dir) install_subtargets
endef

define $(package)_postprocess_cmds
rm -rf native/mkspecs/ native/lib/ lib/cmake/ && \
rm -f lib/lib*.la lib/*.prl plugins/*/*.prl
rm -rf doc/ native/lib/ && \
rm -f lib/lib*.la
endef
5 changes: 5 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -320,6 +320,11 @@ if(BUILD_UTIL)
endif()


if(WITH_GUI)
add_subdirectory(qt)
endif()


add_subdirectory(test/util)
if(BUILD_BENCH)
add_subdirectory(bench)
207 changes: 207 additions & 0 deletions src/qt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Copyright (c) 2023-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or https://opensource.org/license/mit/.

function(import_plugins target)
if(QT_IS_STATIC)
set(plugins Qt5::QMinimalIntegrationPlugin)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
list(APPEND plugins Qt5::QXcbIntegrationPlugin)
elseif(WIN32)
list(APPEND plugins Qt5::QWindowsIntegrationPlugin Qt5::QWindowsVistaStylePlugin)
elseif(APPLE)
list(APPEND plugins Qt5::QCocoaIntegrationPlugin Qt5::QMacStylePlugin)
endif()
qt5_import_plugins(${target}
INCLUDE ${plugins}
EXCLUDE_BY_TYPE imageformats iconengines
)
endif()
endfunction()

# See:
# - https://cmake.org/cmake/help/latest/manual/cmake-qt.7.html
# - https://doc.qt.io/qt-5/cmake-manual.html

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOUIC_SEARCH_PATHS forms)

set(qt_minimum_required_version 5.11.3)

set(qt_components Core Gui Widgets Network LinguistTools)

if(CMAKE_CROSSCOMPILING)
# The find_package(Qt ...) function internally uses find_library()
# calls for all dependencies to ensure their availability.
# In turn, the find_library() inspects the well-known locations
# on the file system; therefore, it must be able to find
# platform-specific system libraries, for example:
# /usr/x86_64-w64-mingw32/lib/libm.a or /usr/arm-linux-gnueabihf/lib/libm.a.
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
endif()

find_package(Qt5 ${qt_minimum_required_version} REQUIRED
COMPONENTS ${qt_components}
HINTS ${qt5_brew_prefix}
PATH_SUFFIXES Qt5 # Required on OpenBSD systems.
)
unset(qt_components)
message(STATUS "Found Qt: ${Qt5_DIR} (found suitable version \"${Qt5_VERSION}\", minimum required is \"${qt_minimum_required_version}\")")
unset(qt_minimum_required_version)

include(CMakePushCheckState)
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_LIBRARIES Qt5::Core)
include(CheckCXXSourceCompiles)
check_cxx_source_compiles("
#include <QtGlobal>

#if !defined(QT_STATIC)
#error Qt is not static
#endif
int main() {}
" QT_IS_STATIC
)
cmake_pop_check_state()

# TODO: The file(GLOB ...) command should be replaced with an explicit
# file list. Such a change must be synced with the corresponding change
# to https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/update-translations.py
file(GLOB ts_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} locale/*.ts)
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/locale)
qt5_add_translation(qm_files ${ts_files})

configure_file(bitcoin_locale.qrc bitcoin_locale.qrc COPYONLY)

add_library(bitcoinqt STATIC EXCLUDE_FROM_ALL
bantablemodel.cpp
bitcoin.cpp
bitcoinaddressvalidator.cpp
bitcoinamountfield.cpp
bitcoingui.cpp
bitcoinunits.cpp
clientmodel.cpp
csvmodelwriter.cpp
guiutil.cpp
initexecutor.cpp
intro.cpp
modaloverlay.cpp
networkstyle.cpp
notificator.cpp
optionsdialog.cpp
optionsmodel.cpp
peertablemodel.cpp
peertablesortproxy.cpp
platformstyle.cpp
qvalidatedlineedit.cpp
qvaluecombobox.cpp
rpcconsole.cpp
splashscreen.cpp
trafficgraphwidget.cpp
utilitydialog.cpp
$<$<PLATFORM_ID:Windows>:winshutdownmonitor.cpp>
$<$<PLATFORM_ID:Darwin>:macdockiconhandler.mm>
$<$<PLATFORM_ID:Darwin>:macnotificationhandler.mm>
$<$<PLATFORM_ID:Darwin>:macos_appnap.mm>
bitcoin.qrc
${CMAKE_CURRENT_BINARY_DIR}/bitcoin_locale.qrc
)
target_compile_definitions(bitcoinqt
PUBLIC
QT_NO_KEYWORDS
QT_USE_QSTRINGBUILDER
)
target_include_directories(bitcoinqt
PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
)
set_property(SOURCE macnotificationhandler.mm
# Ignore warnings "'NSUserNotificationCenter' is deprecated: first deprecated in macOS 11.0".
APPEND PROPERTY COMPILE_OPTIONS -Wno-deprecated-declarations
)
target_link_libraries(bitcoinqt
PUBLIC
Qt5::Widgets
PRIVATE
core_interface
bitcoin_cli
leveldb
Boost::headers
$<TARGET_NAME_IF_EXISTS:NATPMP::NATPMP>
$<TARGET_NAME_IF_EXISTS:MiniUPnPc::MiniUPnPc>
$<$<PLATFORM_ID:Darwin>:-framework\ AppKit>
$<$<CXX_COMPILER_ID:MSVC>:shlwapi>
)

if(ENABLE_WALLET)
target_sources(bitcoinqt
PRIVATE
addressbookpage.cpp
addresstablemodel.cpp
askpassphrasedialog.cpp
coincontroldialog.cpp
coincontroltreewidget.cpp
createwalletdialog.cpp
editaddressdialog.cpp
openuridialog.cpp
overviewpage.cpp
paymentserver.cpp
psbtoperationsdialog.cpp
qrimagewidget.cpp
receivecoinsdialog.cpp
receiverequestdialog.cpp
recentrequeststablemodel.cpp
sendcoinsdialog.cpp
sendcoinsentry.cpp
signverifymessagedialog.cpp
transactiondesc.cpp
transactiondescdialog.cpp
transactionfilterproxy.cpp
transactionoverviewwidget.cpp
transactionrecord.cpp
transactiontablemodel.cpp
transactionview.cpp
walletcontroller.cpp
walletframe.cpp
walletmodel.cpp
walletmodeltransaction.cpp
walletview.cpp
)
target_link_libraries(bitcoinqt
PRIVATE
bitcoin_wallet
Qt5::Network
)
endif()

if(QT_IS_STATIC)
# We want to define static plugins to link ourselves, thus preventing
# automatic linking against a "sane" set of default static plugins.
qt5_import_plugins(bitcoinqt
EXCLUDE_BY_TYPE bearer iconengines imageformats platforms styles
)
endif()

add_executable(bitcoin-qt
main.cpp
../init/bitcoin-qt.cpp
)

target_link_libraries(bitcoin-qt
core_interface
bitcoinqt
bitcoin_node
)

import_plugins(bitcoin-qt)

if(WIN32)
set_target_properties(bitcoin-qt PROPERTIES WIN32_EXECUTABLE TRUE)
endif()

install(TARGETS bitcoin-qt
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT GUI
)