Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions build_pc.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
@echo off
if "%1"=="" (
set BUILD_NAME=pc/build32
) else (
set BUILD_NAME=%1
)

if "%2"=="" (
set MINGW32=C:/msys64/mingw32
) else (
set MINGW32=%2
)

set PATH=%MINGW32%/bin;%PATH%
set SCRIPT_DIR=%~dp0
set BUILD_DIR=%SCRIPT_DIR%%BUILD_NAME%

echo "MINGW32 path: %MINGW32%"
echo "BUILD_DIR: %BUILD_DIR%"

if not exist "%BUILD_DIR%" mkdir "%BUILD_DIR%"
cd "%BUILD_DIR%"

if not exist "Makefile" echo "=== Configuring CMake ===" && cmake %SCRIPT_DIR%/pc -G Ninja -DMINGW32=%MINGW32% -DCMAKE_TOOLCHAIN_FILE="%SCRIPT_DIR%/pc/cmake/Toolchain-ninja.cmake"

echo "=== Building PC port ==="
ninja
25 changes: 25 additions & 0 deletions pc/cmake/Toolchain-ninja.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# CMake toolchain file for MinGW i686 (32-bit) cross-compilation from Linux
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR i686)

if(NOT DEFINED MINGW32)
set(MINGW32 C:/msys64/mingw32)
endif()

# Compilers
set(CMAKE_C_COMPILER ${MINGW32}/bin/i686-w64-mingw32-gcc.exe)
set(CMAKE_CXX_COMPILER ${MINGW32}/bin/i686-w64-mingw32-g++.exe)
set(CMAKE_RC_COMPILER ${MINGW32}/bin/windres.exe)

# Linker / binutils
set(CMAKE_LINKER ${MINGW32}/i686-w64-mingw32/bin/ld.exe)
set(CMAKE_AR ${MINGW32}/i686-w64-mingw32/bin/ar.exe)
set(CMAKE_RANLIB ${MINGW32}/i686-w64-mingw32/bin/ranlib.exe)
set(CMAKE_STRIP ${MINGW32}/i686-w64-mingw32/bin/strip.exe)

# Sysroot / search paths
set(CMAKE_FIND_ROOT_PATH ${MINGW32})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # don't look here for tools
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) # only look here for libs
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # only look here for headers
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) # only look here for packages