Cross-compilation example toolchain
This commit is contained in:
parent
9b301b3c8d
commit
4d2d0bd410
|
|
@ -0,0 +1,21 @@
|
|||
set(LLVM_MINGW /Users/admin/llvm-mingw-ucrt)
|
||||
set(CMAKE_PREFIX_PATH /Users/admin/Qt5.6.3-msvc2015/msvc2015_64)
|
||||
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
set(CMAKE_C_COMPILER_TARGET ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32)
|
||||
set(CMAKE_C_COMPILER ${LLVM_MINGW}/bin/x86_64-w64-mingw32-clang)
|
||||
set(CMAKE_CXX_COMPILER ${LLVM_MINGW}/bin/x86_64-w64-mingw32-clang++)
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
# This is working (thanks to Simon for finding this trick)
|
||||
set(CMAKE_AR ${LLVM_MINGW}/bin/llvm-ar)
|
||||
set(CMAKE_RANLIB ${LLVM_MINGW}/bin/x86_64-w64-mingw32-ranlib)
|
||||
set(CMAKE_RC_COMPILER ${LLVM_MINGW}/bin/llvm-rc)
|
||||
set(CMAKE_RC_COMPILER /Users/admin/Projects/zig-cross/cmake/zig-rc)
|
||||
|
||||
set(CMAKE_PROJECT_INCLUDE ${CMAKE_CURRENT_LIST_DIR}/qt-cross.cmake)
|
||||
set(CMAKE_CXX_FLAGS_INIT "-stdlib=libc++ -mlzcnt")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_INIT "--start-no-unused-arguments -rtlib=compiler-rt -unwindlib=libunwind --end-no-unused-arguments")
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT}")
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
include_guard()
|
||||
|
||||
message(STATUS "Configuring Qt for cross-compilation...")
|
||||
|
||||
# Qt
|
||||
#set(AUTOMOC_EXECUTABLE /Users/admin/Projects/qtbase-wasm32-wasi/bin/moc)
|
||||
#set(AUTORCC_EXECUTABLE /Users/admin/Projects/qtbase-wasm32-wasi/bin/rcc)
|
||||
#set(AUTOUIC_EXECUTABLE /Users/admin/Projects/qtbase-wasm32-wasi/bin/uic)
|
||||
set(QT_HOST_BIN_DIR /Users/admin/Projects/qtbase-wasm32-wasi/bin/)
|
||||
|
||||
function(qt5_host_tool name)
|
||||
if (NOT TARGET Qt5::${name})
|
||||
add_executable(Qt5::${name} IMPORTED)
|
||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
|
||||
set(imported_location ${QT_HOST_BIN_DIR}/${name}.exe)
|
||||
else()
|
||||
set(imported_location ${QT_HOST_BIN_DIR}/${name})
|
||||
endif()
|
||||
if(NOT EXISTS ${imported_location})
|
||||
message(FATAL_ERROR "Qt5 tool not found: ${imported_location}")
|
||||
endif()
|
||||
set_target_properties(Qt5::${name} PROPERTIES
|
||||
IMPORTED_LOCATION ${imported_location}
|
||||
)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
qt5_host_tool(qmake)
|
||||
qt5_host_tool(moc)
|
||||
qt5_host_tool(rcc)
|
||||
qt5_host_tool(uic)
|
||||
Loading…
Reference in New Issue