From 7f5562530f9a1decfae9e4c88b95422c82ed829c Mon Sep 17 00:00:00 2001 From: Aki Date: Sat, 17 Feb 2024 22:19:05 +0100 Subject: Fix running cross-compiled executables by CMake with i686-w64-mingw --- cmake/toolchains/i686-w64-mingw32-wine | 7 +++++++ cmake/toolchains/i686-w64-mingw32.cmake | 11 ++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100755 cmake/toolchains/i686-w64-mingw32-wine diff --git a/cmake/toolchains/i686-w64-mingw32-wine b/cmake/toolchains/i686-w64-mingw32-wine new file mode 100755 index 0000000..65b4aad --- /dev/null +++ b/cmake/toolchains/i686-w64-mingw32-wine @@ -0,0 +1,7 @@ +#!/bin/sh -e +toolchain=i686-w64-mingw32 +prefix=/usr/$toolchain +export WINEPREFIX=$HOME/.wine-$toolchain +export WINEPATH=$prefix/bin +export WINEARCH=win32 +exec /usr/bin/wine "$@" diff --git a/cmake/toolchains/i686-w64-mingw32.cmake b/cmake/toolchains/i686-w64-mingw32.cmake index 30df69e..b4d66eb 100644 --- a/cmake/toolchains/i686-w64-mingw32.cmake +++ b/cmake/toolchains/i686-w64-mingw32.cmake @@ -6,19 +6,20 @@ # Or use CMAKE_TOOLCHAIN_FILE variable. set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_PROCESSOR i686) set(CMAKE_CROSSCOMPILING ON) +set(TOOLCHAIN_DIR "${CMAKE_CURRENT_LIST_DIR}") -find_program(WINE wine) -if(WINE) - set(CMAKE_CROSSCOMPILING_EMULATOR ${WINE}) -endif() +set(CMAKE_CROSSCOMPILING_EMULATOR "${TOOLCHAIN_DIR}/i686-w64-mingw32-wine") set(TOOLCHAIN_PREFIX i686-w64-mingw32) set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++) set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) +set(CMAKE_MC_COMPILER ${TOOLCHAIN_PREFIX}-windmc) set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX}) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) \ No newline at end of file +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) -- cgit v1.1