Skip to content

Commit ca37cdc

Browse files
committed
cmake: Add cross-compiling support to bitcoin-qt executable
1 parent 45cae3f commit ca37cdc

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

src/qt/CMakeLists.txt

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,68 @@ target_link_libraries(bitcoinqt
7979
rpc_client
8080
leveldb
8181
)
82+
if(CMAKE_CROSSCOMPILING)
83+
target_compile_definitions(bitcoinqt PRIVATE QT_STATICPLUGIN)
84+
target_link_libraries(Qt5::Core
85+
INTERFACE
86+
${CMAKE_PREFIX_PATH}/lib/libqtpcre2.a
87+
${CMAKE_PREFIX_PATH}/lib/libqtlibpng.a
88+
${CMAKE_PREFIX_PATH}/lib/libqtharfbuzz.a
89+
)
90+
if(CMAKE_SYSTEM_NAME STREQUAL Linux AND TARGET Qt5::QXcbIntegrationPlugin)
91+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_XCB)
92+
target_link_libraries(Qt5::Core
93+
INTERFACE
94+
-L${CMAKE_PREFIX_PATH}/lib
95+
freetype
96+
fontconfig
97+
xcb
98+
xcb-icccm
99+
xcb-image
100+
xcb-keysyms
101+
xcb-randr
102+
xcb-render
103+
xcb-render-util
104+
xcb-shape
105+
xcb-shm
106+
xcb-sync
107+
xcb-xfixes
108+
xcb-xinerama
109+
xcb-xkb
110+
xkbcommon
111+
xkbcommon-x11
112+
)
113+
elseif(CMAKE_SYSTEM_NAME STREQUAL Windows AND TARGET Qt5::QWindowsIntegrationPlugin AND TARGET Qt5::QWindowsVistaStylePlugin)
114+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_WINDOWS)
115+
target_link_libraries(Qt5::Core
116+
INTERFACE
117+
dwmapi
118+
imm32
119+
netapi32
120+
shlwapi
121+
userenv
122+
uxtheme
123+
version
124+
winmm
125+
wtsapi32
126+
)
127+
elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin AND TARGET Qt5::QCocoaIntegrationPlugin AND TARGET Qt5::QMacStylePlugin)
128+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_COCOA)
129+
target_link_libraries(Qt5::Core
130+
INTERFACE
131+
"-framework AppKit"
132+
"-framework Carbon"
133+
"-framework CoreVideo"
134+
"-framework IOKit"
135+
"-framework IOSurface"
136+
"-framework Metal"
137+
"-framework QuartzCore"
138+
"-framework Security"
139+
)
140+
elseif(CMAKE_SYSTEM_NAME STREQUAL Android AND TARGET Qt5::QAndroidPlatformIntegrationPlugin)
141+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_ANDROID)
142+
endif()
143+
endif()
82144

83145
add_executable(bitcoin-qt)
84146
target_sources(bitcoin-qt

0 commit comments

Comments
 (0)