scripts: Add libretro core build scripts

This commit is contained in:
Connor McLaughlin 2021-05-23 16:08:57 +10:00
parent d4a13f511c
commit 143a82b543
2 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,31 @@
@echo off
echo Updating SCM version...
pushd %~dp0
cd ..\src\scmversion
start /w gen_scmversion.bat
popd
echo Setting MSVC environment...
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
echo Creating build directory...
pushd %~dp0
cd ..
if not exist build-libretro mkdir build-libretro
cd build-libretro
del /q duckstation_libretro_windows_x64.zip
rmdir /Q /S windows_x64
mkdir windows_x64
cd windows_x64
echo Running CMake...
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBRETRO_CORE=ON -DCMAKE_C_COMPILER:FILEPATH="%VCToolsInstallDir%\bin\HostX64\x64\cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="%VCToolsInstallDir%\bin\HostX64\x64\cl.exe" ..\..
echo Building...
ninja
if %errorlevel% neq 0 exit /b %errorlevel%
echo Zipping...
"C:\Program Files\7-Zip\7z.exe" a ../duckstation_libretro_windows_x64.zip ./duckstation_libretro.dll
echo All done.

39
scripts/build_libretro_cores.sh Executable file
View file

@ -0,0 +1,39 @@
#!/usr/bin/env bash
SCRIPTDIR=$(dirname $(realpath "${BASH_SOURCE[0]}"))
ROOTDIR=$SCRIPTDIR/..
BUILDDIR=$SCRIPTDIR/../build-libretro
set -e
make_build() {
PLATFORM=$1
OPTIONS=$2
SUFFIX=$3
echo Building for ${PLATFORM}...
cd $BUILDDIR
rm -fr $PLATFORM
mkdir -p $PLATFORM
cd $PLATFORM
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBRETRO_CORE=ON $OPTIONS $ROOTDIR
ninja
rm -f ../duckstation_${PLATFORM}.zip
zip -j ../duckstation_${PLATFORM}.zip duckstation_libretro${SUFFIX}.so
cd ..
}
echo Creating build directory...
mkdir -p $BUILDDIR
cd $BUILDDIR || exit $?
rm -f duckstation_libretro_android_aarch64.zip duckstation_libretro_android_armv7.zip duckstation_libretro_linux_x64.zip duckstation_libretro_linux_aarch64.zip duckstation_libretro_linux_armv7.zip
echo Building...
make_build linux_x64 "" ""
make_build linux_aarch64 "-DCMAKE_TOOLCHAIN_FILE=$ROOTDIR/CMakeModules/aarch64-cross-toolchain.cmake" ""
make_build linux_armv7 "-DCMAKE_TOOLCHAIN_FILE=$ROOTDIR/CMakeModules/armv7-cross-toolchain.cmake" ""
make_build android_aarch64 "-DANDROID_ABI=arm64-v8a -DCMAKE_TOOLCHAIN_FILE=/home/user/Android/ndk-bundle/build/cmake/android.toolchain.cmake" "_android"
make_build android_armv7 "-DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON -DCMAKE_TOOLCHAIN_FILE=/home/user/Android/ndk-bundle/build/cmake/android.toolchain.cmake" "_android"