кросс-компиляция для windows: cmake & amp; mxe: потерян в зависимостях

Я пытаюсь использовать cmake и MXE для кросс-компиляции для Windows.

Все отлично работает на * nix. Однако я не знаю, как заставить некоторые зависимости (Grantlee5 и Qt5WebKitWidgets) работать с MinGW и кросс-компиляцией.
Вот (минимальный) пример моего CMakeLists.txt:

cmake_minimum_required(VERSION 2.8.11)
project(MyProject)

set(QT_USE_QTXML TRUE)
set(QT_USE_QTWEBKIT TRUE)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")

# Instruct CMake to run moc automaticall when needed.
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

#find packages
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Xml REQUIRED)
find_package(Grantlee5 REQUIRED)
find_package(Qt5WebKitWidgets REQUIRED)
find_package(Git)

#(...) add all sources

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)

# Tell CMake to create the executable
add_executable(MyProjectExec ${SRCS})

target_link_libraries(MyProjectExec
Qt5::Widgets
Qt5::Xml
Grantlee5::Templates
Qt5::WebKitWidgets
)

Это работает нормально, если я просто использую «cmake». Однако если я использую инструментальную цепочку MXE для кросс-компиляции для Widnows (i686-w64-mingw32.static-cmake), Grantlee5 и Qt5WebKitWidgets выдают следующее сообщение:

Ошибка в CMakeLists.txt: xx (find_package): не удалось найти
файл конфигурации для пакета «Grantlee5», который совместим с
запрашиваемая версия «». [Так в оригинале]

Следующие файлы конфигурации были рассмотрены, но не приняты:

/usr/lib/cmake/Grantlee5/Grantlee5Config.cmake, version: 5.0.0 (64bit)

Конечно, мои Grantlee5-бинарные файлы не совместимы с Windows / MinGW.

ExternalProject_Add (Grantlee5 GIT_REPOSITORY https://github.com/steveire/grantlee.git)
кажется, что кросс-компиляция grantlee, однако это не удается на цели установки (конечно, я не могу установить бинарный файл windows в моей системе)

add_library (Grantlee5 / usr / local / src / grantlee /) разбивает оператор find_library. Grantlee получает сборку, но связывание не удается (включая grantlee / engine.h не найдено)

Как заставить cmake создавать Grantlee и Qt5WebKitWidgets из исходного кода для конкретной цели (в противном случае, используя доступные двоичные файлы для динамического связывания)? Каков «правильный» способ сделать это?

5

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]