Restore iOS build support (#2352)

* initial commit

* initial commit

* add port files

* ios: Changes to allow creating app bundle without xcode projects

* ios: Added mic perms request

* ios: Very basic app bundle creation script

* ios: Fix -log parameter

* ios: Sdk no longer hardcoded and option to compile for simulator

* general: Update gitignore

* ios: Enable game mode for the app

* ios: Compile instructions and updated ipa creation script

* ios: Code cleanup

* ios: Remove dylibs

* general: Remove extra submodules

* ios: Remove dylibs again

* ios: Implement suggested changes

* ios: Fix building as dylib instead of binary

* ios: Scripts for building mods

* ios: Move 'ios' contents to engine/platform/ios/bundle and modify scripts

* ios: Update createipa.sh to use waf install

* ios: Clean script and updated README

* general: Fix spelling mistake and outdated instructions

* ios: Clean up in xcompile.py

* ios: Fix createipa.sh generating an invalid ipa

* ios: Temporary fix for launch dialog textfield colors in dark mode
This commit is contained in:
ksagameng2
2025-11-01 16:32:00 +03:00
committed by GitHub
parent ee7dce68b8
commit a9bf700da4
33 changed files with 5705 additions and 23 deletions

27
scripts/ios/buildhlsdk.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
#cd into script directory
SCRIPTDIR=${0%/*}
cd $SCRIPTDIR
MODPATH=mod-build/$1
if [ -z $1 ]; then
MODPATH=mod-build/hlsdk
git clone --recursive https://github.com/FWGS/hlsdk-portable -b mobile_hacks $MODPATH
else
git clone --recursive https://github.com/FWGS/hlsdk-portable -b $1 $MODPATH
fi
mkdir ../../build/ios
IOSDIR=$(realpath ../../build/ios)
cd $MODPATH
#compiling hlsdk for ios release is broken, so just build for debug
cmake -DCMAKE_SYSTEM_NAME=iOS -DGAMEDIR=$IOSDIR -DCMAKE_BUILD_TYPE=Debug -B build -S .
cmake --build build --target install
cd ../../
if [ -d mod-build ]; then
rm -rf mod-build/
fi
exit 0

38
scripts/ios/createipa.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
#cd into script directory
cd "${0%/*}"
BUILDDIR=$(realpath ../../build)
echo $BUILDDIR
cd "../../engine/platform/ios/bundle"
if [ -d $BUILDDIR ]; then
mkdir -p "$BUILDDIR/ios/xash3d.app"
cp -r "$BUILDDIR/ios/dlls" "$BUILDDIR/ios/xash3d.app"
cp -r "$BUILDDIR/ios/cl_dlls" "$BUILDDIR/ios/xash3d.app"
cp *.plist "$BUILDDIR/ios/xash3d.app"
if [ ! -d $BUILDDIR/SDL2.framework ]; then
echo "Couldn't find SDL2.framework, place it in the build directory"
exit 1
fi
cp -r $BUILDDIR/SDL2.framework "$BUILDDIR/ios/xash3d.app"
cd ../../../../
./waf install --destdir="$BUILDDIR/ios/xash3d.app"
cd $BUILDDIR
rm -r "$BUILDDIR/ios/Payload/"
mkdir "$BUILDDIR/ios/Payload"
cp -r "$BUILDDIR/ios/xash3d.app" ios/Payload/
rm -r "$BUILDDIR/ios/xash3d.app"
cd ios
zip -r ../xash3d.ipa Payload
else
echo "Couldn't find the build directory, compile the engine before running this script!"
exit 1
fi
exit 0