From 2334a88229d6eaa0f93c025fd6590a260991db1d Mon Sep 17 00:00:00 2001 From: Rachael Alexanderson Date: Mon, 8 Jan 2024 08:19:52 -0500 Subject: [PATCH] - add arm setup cross compiler (requires x64 precompiled version in build/) --- auto-setup-windows-arm.cmd | 89 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 auto-setup-windows-arm.cmd diff --git a/auto-setup-windows-arm.cmd b/auto-setup-windows-arm.cmd new file mode 100644 index 000000000..efefa157c --- /dev/null +++ b/auto-setup-windows-arm.cmd @@ -0,0 +1,89 @@ +@echo off +goto aftercopyright + +** +** auto-setup-windows-arm.cmd +** Automatic (easy) setup and build script for Windows ARM (cross compiling on x64) - please have a +** build of x64 in your build folder ready before executing this script! +** +** Note that this script assumes you have both 'git' and 'cmake' installed properly and in your PATH! +** This script also assumes you have installed a build system that cmake can automatically detect. +** Such as Visual Studio Community. Requires appropriate SDK installed too! +** Without these items, this script will FAIL! So make sure you have your build environment properly +** set up in order for this script to succeed. +** +** The purpose of this script is to get someone easily going with a full working compile of GZDoom. +** This allows anyone to make simple changes or tweaks to the engine as they see fit and easily +** compile their own copy without having to follow complex instructions to get it working. +** Every build environment is different, and every computer system is different - this should work +** in most typical systems under Windows but it may fail under certain types of systems or conditions. +** Not guaranteed to work and your mileage will vary. +** +**--------------------------------------------------------------------------- +** Copyright 2024 Rachael Alexanderson and the GZDoom team +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** 1. Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** 3. The name of the author may not be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +**--------------------------------------------------------------------------- +** + +:aftercopyright + + +setlocal +rem -- Always operate within the build-arm folder +if not exist "%~dp0\build-arm" mkdir "%~dp0\build-arm" +pushd "%~dp0\build-arm" + +if exist ..\build\vcpkg if exist ..\build\vcpkg\* git -C ../build/vcpkg pull +if not exist ..\build\vcpkg goto :nobuild + +if exist zmusic if exist zmusic\* git -C ./zmusic pull +if not exist zmusic git clone https://github.com/zdoom/zmusic + +mkdir "%~dp0\build-arm\zmusic\build" +mkdir "%~dp0\build-arm\vcpkg_installed" + +cmake -A ARM64 -S ./zmusic -B ./zmusic/build ^ + -DCMAKE_TOOLCHAIN_FILE=../../build/vcpkg/scripts/buildsystems/vcpkg.cmake ^ + -DVCPKG_LIBSNDFILE=1 ^ + -DVCPKG_INSTALLLED_DIR=../vcpkg_installed/ ^ + -DCMAKE_CROSSCOMPILING=TRUE +cmake --build ./zmusic/build --config Release -- -maxcpucount -verbosity:minimal + +cmake -A ARM64 -S .. -B . ^ + -DCMAKE_TOOLCHAIN_FILE=../build/vcpkg/scripts/buildsystems/vcpkg.cmake ^ + -DZMUSIC_INCLUDE_DIR=./zmusic/include ^ + -DZMUSIC_LIBRARIES=./zmusic/build/source/Release/zmusic.lib ^ + -DVCPKG_INSTALLLED_DIR=./vcpkg_installed/ ^ + -DFORCE_CROSSCOMPILE=TRUE ^ + -DIMPORT_EXECUTABLES=../build/ImportExecutables.cmake +cmake --build . --config RelWithDebInfo -- -maxcpucount -verbosity:minimal + +rem -- If successful, show the build +if exist RelWithDebInfo\gzdoom.exe explorer.exe RelWithDebInfo + +goto :eof +:nobuild +echo Please use auto-setup-windows.cmd to create an x64 build first!