Skip to content

Commit 5b37317

Browse files
committed
cmake: Add cross-compiling support to bitcoin-qt executable
1 parent 53f5319 commit 5b37317

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
@@ -101,6 +101,68 @@ target_link_libraries(bitcoinqt
101101
rpc_client
102102
leveldb
103103
)
104+
if(CMAKE_CROSSCOMPILING)
105+
target_compile_definitions(bitcoinqt PRIVATE QT_STATICPLUGIN)
106+
target_link_libraries(Qt5::Core
107+
INTERFACE
108+
${CMAKE_PREFIX_PATH}/lib/libqtpcre2.a
109+
${CMAKE_PREFIX_PATH}/lib/libqtlibpng.a
110+
${CMAKE_PREFIX_PATH}/lib/libqtharfbuzz.a
111+
)
112+
if(CMAKE_SYSTEM_NAME STREQUAL Linux AND TARGET Qt5::QXcbIntegrationPlugin)
113+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_XCB)
114+
target_link_libraries(Qt5::Core
115+
INTERFACE
116+
-L${CMAKE_PREFIX_PATH}/lib
117+
freetype
118+
fontconfig
119+
xcb
120+
xcb-icccm
121+
xcb-image
122+
xcb-keysyms
123+
xcb-randr
124+
xcb-render
125+
xcb-render-util
126+
xcb-shape
127+
xcb-shm
128+
xcb-sync
129+
xcb-xfixes
130+
xcb-xinerama
131+
xcb-xkb
132+
xkbcommon
133+
xkbcommon-x11
134+
)
135+
elseif(CMAKE_SYSTEM_NAME STREQUAL Windows AND TARGET Qt5::QWindowsIntegrationPlugin AND TARGET Qt5::QWindowsVistaStylePlugin)
136+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_WINDOWS)
137+
target_link_libraries(Qt5::Core
138+
INTERFACE
139+
dwmapi
140+
imm32
141+
netapi32
142+
shlwapi
143+
userenv
144+
uxtheme
145+
version
146+
winmm
147+
wtsapi32
148+
)
149+
elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin AND TARGET Qt5::QCocoaIntegrationPlugin AND TARGET Qt5::QMacStylePlugin)
150+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_COCOA)
151+
target_link_libraries(Qt5::Core
152+
INTERFACE
153+
"-framework AppKit"
154+
"-framework Carbon"
155+
"-framework CoreVideo"
156+
"-framework IOKit"
157+
"-framework IOSurface"
158+
"-framework Metal"
159+
"-framework QuartzCore"
160+
"-framework Security"
161+
)
162+
elseif(CMAKE_SYSTEM_NAME STREQUAL Android AND TARGET Qt5::QAndroidPlatformIntegrationPlugin)
163+
target_compile_definitions(bitcoinqt PRIVATE QT_QPA_PLATFORM_ANDROID)
164+
endif()
165+
endif()
104166

105167
add_executable(bitcoin-qt)
106168
target_sources(bitcoin-qt

0 commit comments

Comments
 (0)