mirror of
https://github.com/mkxp-z/mkxp-z.git
synced 2025-09-05 05:33:14 +02:00
Temporarily use nightly build of RetroArch in libretro Emscripten autobuild
This commit is contained in:
parent
4b78778a38
commit
fafad03874
3 changed files with 15 additions and 17 deletions
25
.github/workflows/autobuild.yml
vendored
25
.github/workflows/autobuild.yml
vendored
|
@ -863,7 +863,7 @@ jobs:
|
||||||
- name: Set up Emscripten SDK
|
- name: Set up Emscripten SDK
|
||||||
uses: mymindstorm/setup-emsdk@v14
|
uses: mymindstorm/setup-emsdk@v14
|
||||||
with:
|
with:
|
||||||
version: 3.1.46
|
version: 4.0.6
|
||||||
|
|
||||||
- id: short-sha
|
- id: short-sha
|
||||||
name: Get Git commit hash
|
name: Get Git commit hash
|
||||||
|
@ -906,33 +906,30 @@ jobs:
|
||||||
mkdir ${{ runner.temp }}/dist
|
mkdir ${{ runner.temp }}/dist
|
||||||
cd build
|
cd build
|
||||||
CLICOLOR_FORCE=1 ninja -v
|
CLICOLOR_FORCE=1 ninja -v
|
||||||
mv mkxp-z_libretro.bc ${{ runner.temp }}
|
mv mkxp-z_libretro.a ${{ runner.temp }}
|
||||||
|
|
||||||
- name: Build frontend
|
- name: Build frontend
|
||||||
run: |
|
run: |
|
||||||
cd ${{ runner.temp }}
|
cd ${{ runner.temp }}
|
||||||
tag_name=$(curl -s https://api.github.com/repos/libretro/RetroArch/releases/latest | jq -r '.tag_name')
|
tag_name=$(curl -s https://api.github.com/repos/libretro/RetroArch/releases/latest | jq -r '.tag_name')
|
||||||
git clone https://github.com/libretro/RetroArch retroarch --depth 1 -b $tag_name
|
if [ $tag_name = 'v1.20.0' ]
|
||||||
mv mkxp-z_libretro.bc retroarch/libretro_emscripten.bc
|
then
|
||||||
|
# Use nightly instead of 1.20.0 for now
|
||||||
|
git clone https://github.com/libretro/RetroArch retroarch --depth 1 -b master
|
||||||
|
else
|
||||||
|
git clone https://github.com/libretro/RetroArch retroarch --depth 1 -b $tag_name
|
||||||
|
fi
|
||||||
|
mv mkxp-z_libretro.a retroarch/libretro_emscripten.a
|
||||||
cd retroarch
|
cd retroarch
|
||||||
if [ '${{ matrix.threading }}' = 'threaded' ]
|
if [ '${{ matrix.threading }}' = 'threaded' ]
|
||||||
then
|
then
|
||||||
if [ $tag_name = 'v1.20.0' ]
|
threading_flags='HAVE_THREADS=1 HAVE_AUDIOWORKLET=1 PROXY_TO_PTHREAD=1 HAVE_WASMFS=1 HAVE_EXTRA_WASMFS=1'
|
||||||
then
|
|
||||||
threading_flags='PTHREAD=1'
|
|
||||||
else
|
|
||||||
threading_flags='HAVE_THREADS=1 HAVE_AUDIOWORKLET=1 PROXY_TO_PTHREAD=1 HAVE_WASMFS=1 HAVE_EXTRA_WASMFS=1'
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
threading_flags=
|
threading_flags=
|
||||||
fi
|
fi
|
||||||
CLICOLOR_FORCE=1 emmake make -f Makefile.emscripten LIBRETRO=mkxp-z $threading_flags
|
CLICOLOR_FORCE=1 emmake make -f Makefile.emscripten LIBRETRO=mkxp-z $threading_flags
|
||||||
mv mkxp-z_libretro.wasm ${{ runner.temp }}/dist
|
mv mkxp-z_libretro.wasm ${{ runner.temp }}/dist
|
||||||
mv mkxp-z_libretro.js ${{ runner.temp }}/dist
|
mv mkxp-z_libretro.js ${{ runner.temp }}/dist
|
||||||
if [ '${{ matrix.threading }}' = 'threaded' ]
|
|
||||||
then
|
|
||||||
mv mkxp-z_libretro.worker.js ${{ runner.temp }}/dist
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|
|
@ -9,6 +9,7 @@ compilers = {'c': meson.get_compiler('c'), 'cpp': meson.get_compiler('cpp')}
|
||||||
is_libretro = get_option('libretro')
|
is_libretro = get_option('libretro')
|
||||||
is_emscripten = host_system == 'emscripten'
|
is_emscripten = host_system == 'emscripten'
|
||||||
core_is_static = is_libretro and (is_emscripten or host_system == 'bare' or host_system == 'none')
|
core_is_static = is_libretro and (is_emscripten or host_system == 'bare' or host_system == 'none')
|
||||||
|
core_is_relocatable_object = is_libretro and is_emscripten and compilers['c'].version().version_compare('<3.1.52')
|
||||||
is_vita = core_is_static and host_cpu_family == 'arm' and compilers['c'].has_header_symbol('sys/config.h', '__vita__')
|
is_vita = core_is_static and host_cpu_family == 'arm' and compilers['c'].has_header_symbol('sys/config.h', '__vita__')
|
||||||
is_devkitarm = core_is_static and host_cpu_family == 'arm' and not is_vita
|
is_devkitarm = core_is_static and host_cpu_family == 'arm' and not is_vita
|
||||||
is_devkitppc = core_is_static and host_cpu_family == 'ppc'
|
is_devkitppc = core_is_static and host_cpu_family == 'ppc'
|
||||||
|
@ -493,7 +494,7 @@ if is_libretro
|
||||||
global_dependencies_processed = global_dependencies
|
global_dependencies_processed = global_dependencies
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if is_emscripten
|
if core_is_relocatable_object
|
||||||
libretro_target_type = 'executable' # Actually a relocatable object; we just pass 'executable' as the target type to get Meson to use the correct commands
|
libretro_target_type = 'executable' # Actually a relocatable object; we just pass 'executable' as the target type to get Meson to use the correct commands
|
||||||
elif core_is_static
|
elif core_is_static
|
||||||
libretro_target_type = 'static_library'
|
libretro_target_type = 'static_library'
|
||||||
|
@ -504,7 +505,7 @@ if is_libretro
|
||||||
libretro = build_target(
|
libretro = build_target(
|
||||||
meson.project_name() + '_libretro',
|
meson.project_name() + '_libretro',
|
||||||
name_prefix: '',
|
name_prefix: '',
|
||||||
name_suffix: is_emscripten ? 'bc' : [],
|
name_suffix: core_is_relocatable_object ? 'bc' : [],
|
||||||
target_type: libretro_target_type,
|
target_type: libretro_target_type,
|
||||||
dependencies: global_dependencies_processed,
|
dependencies: global_dependencies_processed,
|
||||||
c_args: global_args,
|
c_args: global_args,
|
||||||
|
|
|
@ -25,4 +25,4 @@ option('gfx_backend', type: 'combo', value: 'gl', choices: ['gl', 'gles'], descr
|
||||||
option('libretro', type: 'boolean', value: false, description: 'Build a libretro core instead of an executable')
|
option('libretro', type: 'boolean', value: false, description: 'Build a libretro core instead of an executable')
|
||||||
option('libretro_stage1_path', type: 'string', value: 'libretro/build/libretro-stage1', description: 'Path to libretro-stage1 for libretro builds')
|
option('libretro_stage1_path', type: 'string', value: 'libretro/build/libretro-stage1', description: 'Path to libretro-stage1 for libretro builds')
|
||||||
option('ruby_lto', type: 'boolean', value: false, description: 'Enable link-time optimization for libruby in libretro builds, even if link-time optimization is disabled for everything else')
|
option('ruby_lto', type: 'boolean', value: false, description: 'Enable link-time optimization for libruby in libretro builds, even if link-time optimization is disabled for everything else')
|
||||||
option('emscripten_threaded', type: 'boolean', value: true, description: 'Enable multithreading support in libretro builds')
|
option('emscripten_threaded', type: 'boolean', value: true, description: 'Enable multithreading support in libretro Emscripten builds')
|
||||||
|
|
Loading…
Add table
Reference in a new issue