diff --git a/libretro-fetch.sh b/libretro-fetch.sh index 6225cff8..0bbbdbb3 100755 --- a/libretro-fetch.sh +++ b/libretro-fetch.sh @@ -47,260 +47,230 @@ fetch_tools() { } # FIXME: Not ready for a meta-fetch rule -#libretro_bsnes_url="https://github.com/libretro/bsnes-libretro.git" -#libretro_bsnes_dir="libretro-bsnes" +#libretro_bsnes_fetch_url="https://github.com/libretro/bsnes-libretro.git" #libretro_bsnes_name="bsnes/higan" -libretro_snes9x_url="https://github.com/libretro/snes9x.git" -libretro_snes9x_dir="libretro-snes9x" +libretro_snes9x_fetch_url="https://github.com/libretro/snes9x.git" libretro_snes9x_name="SNES9x" -libretro_snes9x_url="https://github.com/libretro/snes9x-next.git" -libretro_snes9x_dir="libretro-snes9x_next" +libretro_snes9x_fetch_url="https://github.com/libretro/snes9x-next.git" libretro_snes9x_name="SNES9x Next" -libretro_genesis_plus_gx_url="https://github.com/libretro/Genesis-Plus-GX.git" -libretro_genesis_plus_gx="libretro-genesis_plus_gx" +libretro_genesis_plus_gx_fetch_url="https://github.com/libretro/Genesis-Plus-GX.git" libretro_genesis_plus_gx="Genesis Plus GX" -libretro_fb_alpha_url="https://github.com/libretro/fba-libretro.git" -libretro_fb_alpha_dir="libretro-fb_alpha" +libretro_fb_alpha_fetch_url="https://github.com/libretro/fba-libretro.git" libretro_fb_alpha_name="Final Burn Alpha" -libretro_vba_next_url="https://github.com/libretro/vba-next.git" -libretro_vba_next_dir="libretro-vba_next" +libretro_vba_next_fetch_url="https://github.com/libretro/vba-next.git" libretro_vba_next_name="VBA Next" -libretro_vbam_url="https://github.com/libretro/vbam-libretro.git" -libretro_vbam_dir="libretro-vbam" +libretro_vbam_fetch_url="https://github.com/libretro/vbam-libretro.git" libretro_vbam_name="VBA-M" -libretro_handy_url="https://github.com/libretro/libretro-handy.git" -libretro_handy_dir="libretro-handy" +libretro_handy_fetch_url="https://github.com/libretro/libretro-handy.git" libretro_handy_name="Handy" -libretro_bnes_url="https://github.com/libretro/bnes-libretro.git" -libretro_bnes_dir="libretro-bnes" +libretro_bnes_fetch_url="https://github.com/libretro/bnes-libretro.git" libretro_bnes_name="bnes/higan" -libretro_fceumm_url="https://github.com/libretro/libretro-fceumm.git" -libretro_fceumm_dir="libretro-fceumm" +libretro_fceumm_fetch_url="https://github.com/libretro/libretro-fceumm.git" libretro_fceumm_name="FCEUmm" -libretro_gambatte_url="https://github.com/libretro/gambatte-libretro.git" -libretro_gambatte_dir="libretro-gambatte" +libretro_gambatte_fetch_url="https://github.com/libretro/gambatte-libretro.git" libretro_gambatte_name="Gambatte" -libretro_meteor_url="https://github.com/libretro/meteor-libretro.git" -libretro_meteor_dir="libretro-meteor" +libretro_meteor_fetch_url="https://github.com/libretro/meteor-libretro.git" libretro_meteor_name="Meteor" -libretro_nxengine_url="https://github.com/libretro/nxengine-libretro.git" -libretro_nxengine_dir="libretro-nxengine" +libretro_nxengine_fetch_url="https://github.com/libretro/nxengine-libretro.git" libretro_nxengine_name="NXEngine" -libretro_prboom_url="https://github.com/libretro/libretro-prboom.git" -libretro_prboom_dir="libretro-prboom" +libretro_prboom_fetch_url="https://github.com/libretro/libretro-prboom.git" libretro_prboom_name="PrBoom" -libretro_stella_url="https://github.com/libretro/stella-libretro.git" -libretro_stella_dir="libretro-stella" +libretro_stella_fetch_url="https://github.com/libretro/stella-libretro.git" libretro_stella_name="Stella" -libretro_desmume_url="https://github.com/libretro/desmume.git" -libretro_desmume_dir="libretro-desmume" +libretro_desmume_fetch_url="https://github.com/libretro/desmume.git" libretro_desmume_name="DeSmuME" -libretro_quicknes_url="https://github.com/libretro/QuickNES_Core.git" -libretro_quicknes_dir="libretro-quicknes" +libretro_quicknes_fetch_url="https://github.com/libretro/QuickNES_Core.git" libretro_quicknes_name="QuickNES" -libretro_nestopia_url="https://github.com/libretro/nestopia.git" -libretro_nestopia_dir="libretro-nestopia" +libretro_nestopia_fetch_url="https://github.com/libretro/nestopia.git" libretro_nestopia_name="Nestopia" -libretro_tyrquake_url="https://github.com/libretro/tyrquake.git" -libretro_tyrquake_dir="libretro-tyrquake" +libretro_tyrquake_fetch_url="https://github.com/libretro/tyrquake.git" libretro_tyrquake_name="TyrQuake" -libretro_pcsx_rearmed_url="https://github.com/libretro/pcsx_rearmed.git" -libretro_pcsx_rearmed_dir="libretro-pcsx_rearmed" +libretro_pcsx_rearmed_fetch_url="https://github.com/libretro/pcsx_rearmed.git" libretro_pcsx_rearmed_name="PCSX ReARMed" -libretro_mednafen_gba_url="https://github.com/libretro/beetle-gba-libretro.git" -libretro_mednafen_gba_dir="libretro-mednafen_gba" +libretro_mednafen_gba_fetch_url="https://github.com/libretro/beetle-gba-libretro.git" libretro_mednafen_gba_name="Mednafen/Beetle GBA" -libretro_mednafen_lynx_url="https://github.com/libretro/beetle-lynx-libretro.git" -libretro_mednafen_lynx_dir="libretro-mednafen_lynx" +libretro_mednafen_lynx_fetch_url="https://github.com/libretro/beetle-lynx-libretro.git" libretro_mednafen_lynx_name="Mednafen/Beetle Lynx" -libretro_mednafen_ngp_url="https://github.com/libretro/beetle-ngp-libretro.git" -libretro_mednafen_ngp_dir="libretro-mednafen_ngp" +libretro_mednafen_ngp_fetch_url="https://github.com/libretro/beetle-ngp-libretro.git" libretro_mednafen_ngp_name="Mednafen/Beetle NeoPop" -libretro_mednafen_pce_fast_url="https://github.com/libretro/beetle-pce-fast-libretro.git" -libretro_mednafen_pce_fast_dir="libretro-mednafen_pce_fast" +libretro_mednafen_pce_fast_fetch_url="https://github.com/libretro/beetle-pce-fast-libretro.git" libretro_mednafen_pce_fast_name="Mednafen/Beetle PCE FAST" -libretro_mednafen_supergrafx_url="https://github.com/libretro/beetle-supergrafx-libretro.git" -libretro_mednafen_supergrafx_dir="libretro-mednafen_supergrafx" +libretro_mednafen_supergrafx_fetch_url="https://github.com/libretro/beetle-supergrafx-libretro.git" libretro_mednafen_supergrafx_name="Mednafen/Beetle SuperGrafx" -libretro_mednafen_psx_url="https://github.com/libretro/mednafen-psx-libretro.git" -libretro_mednafen_psx_dir="libretro-mednafen_psx" +libretro_mednafen_psx_fetch_url="https://github.com/libretro/mednafen-psx-libretro.git" libretro_mednafen_psx_name="Mednafen PSX" -libretro_mednafen_pcfx_url="https://github.com/libretro/beetle-pcfx-libretro.git" -libretro_mednafen_pcfx_dir="libretro-mednafen_pcfx" +libretro_mednafen_pcfx_fetch_url="https://github.com/libretro/beetle-pcfx-libretro.git" libretro_mednafen_pcfx_name="Mednafen/Beetle PC-FX" -libretro_mednafen_snes_url="https://github.com/libretro/beetle-bsnes-libretro.git" -libretro_mednafen_snes_dir="libretro-mednafen_snes" +libretro_mednafen_snes_fetch_url="https://github.com/libretro/beetle-bsnes-libretro.git" libretro_mednafen_snes_name="Mednafen/Beetle bsnes" -libretro_mednafen_vb_url="https://github.com/libretro/beetle-vb-libretro.git" -libretro_mednafen_vb_dir="libretro-mednafen_vb" +libretro_mednafen_vb_fetch_url="https://github.com/libretro/beetle-vb-libretro.git" libretro_mednafen_vb_name="Mednafen/Beetle VB" -libretro_mednafen_wswan_url="https://github.com/libretro/beetle-wswan-libretro.git" -libretro_mednafen_wswan_dir="libretro-mednafen_wswan" +libretro_mednafen_wswan_fetch_url="https://github.com/libretro/beetle-wswan-libretro.git" libretro_mednafen_wswan_name="Mednafen/Beetle WonderSwan" -libretro_scummvm_url="https://github.com/libretro/scummvm.git" -libretro_scummvm_dir="libretro-scummvm" +libretro_scummvm_fetch_url="https://github.com/libretro/scummvm.git" libretro_scummvm_name="ScummVM" -libretro_yabause_url="https://github.com/libretro/yabause.git" -libretro_yabause_dir="libretro-yabause" +libretro_yabause_fetch_url="https://github.com/libretro/yabause.git" libretro_yabause_name="Yabause" -libretro_dosbox_url="https://github.com/libretro/dosbox-libretro.git" -libretro_dosbox_dir="libretro-dosbox" +libretro_dosbox_fetch_url="https://github.com/libretro/dosbox-libretro.git" libretro_dosbox_name="DOSBox" -libretro_virtualjaguar_url="https://github.com/libretro/virtualjaguar-libretro.git" -libretro_virtualjaguar_dir="libretro-virtualjaguar" +libretro_virtualjaguar_fetch_url="https://github.com/libretro/virtualjaguar-libretro.git" libretro_virtualjaguar_name="Virtual Jaguar" -libretro_mame078_url="https://github.com/libretro/mame2003-libretro.git" -libretro_mame078_dir="libretro-mame078" +libretro_mame078_fetch_url="https://github.com/libretro/mame2003-libretro.git" libretro_mame078_name="MAME 2003 (0.78)" -libretro_mame139_url="https://github.com/libretro/mame2010-libretro.git" -libretro_mame139_dir="libretro-mame139" +libretro_mame139_fetch_url="https://github.com/libretro/mame2010-libretro.git" libretro_mame139_name="MAME 2010 (0.139)" -libretro_mame_url="https://github.com/libretro/mame.git" -libretro_mame_dir="libretro-mame" +libretro_mame_fetch_url="https://github.com/libretro/mame.git" libretro_mame_name="MAME (git)" -libretro_ffmpeg_url="https://github.com/libretro/FFmpeg.git" -libretro_ffmpeg_dir="libretro-ffmpeg" +libretro_ffmpeg_fetch_url="https://github.com/libretro/FFmpeg.git" libretro_ffmpeg_name="FFmpeg" -libretro_bsnes_cplusplus98_url="https://github.com/libretro/bsnes-libretro-cplusplus98.git" -libretro_bsnes_cplusplus98_dir="libretro-bsnes_cplusplus98" +libretro_bsnes_cplusplus98_fetch_url="https://github.com/libretro/bsnes-libretro-cplusplus98.git" libretro_bsnes_cplusplus98_name="bsnes C++98 (v0.85)" -libretro_bsnes_mercury_url="https://github.com/libretro/bsnes-mercury.git" -libretro_bsnes_mercury_dir="libretro-bsnes_mercury" +libretro_bsnes_mercury_fetch_url="https://github.com/libretro/bsnes-mercury.git" libretro_bsnes_mercury_name="bsnes-mercury" -libretro_picodrive_url="https://github.com/libretro/picodrive.git" -libretro_picodrive_dir="libretro-picodrive" +libretro_picodrive_fetch_url="https://github.com/libretro/picodrive.git" libretro_picodrive_name="Picodrive" -libretro_picodrive_fetch_modules="1" -libretro_picodrive_update_modules="1" +libretro_picodrive_git_submodules="1" +libretro_picodrive_git_submodules_update="1" -libretro_tgbdual_url="https://github.com/libretro/tgbdual-libretro.git" -libretro_tgbdual_dir="libretro-tgbdual" +libretro_tgbdual_fetch_url="https://github.com/libretro/tgbdual-libretro.git" libretro_tgbdual_name="TGB Dual" -libretro_mupen64plus_url="https://github.com/libretro/mupen64plus-libretro.git" -libretro_mupen64plus_dir="libretro-mupen64plus" +libretro_mupen64plus_fetch_url="https://github.com/libretro/mupen64plus-libretro.git" libretro_mupen64plus_name="Mupen64Plus" -libretro_dinothawr_url="https://github.com/libretro/Dinothawr.git" -libretro_dinothawr_dir="libretro-dinothawr" -libretro_dinothawr_name="Dinothawr" +libretro_dinothawr_fetch_url="https://github.com/libretro/Dinothawr.git" -libretro_uae_url="https://github.com/libretro/libretro-uae.git" -libretro_uae_dir="libretro-uae" +libretro_uae_fetch_url="https://github.com/libretro/libretro-uae.git" libretro_uae_name="UAE" -libretro_3dengine_url="https://github.com/libretro/libretro-3dengine.git" -libretro_3dengine_dir="libretro-3dengine" +libretro_3dengine_fetch_url="https://github.com/libretro/libretro-3dengine.git" libretro_3dengine_name="3DEngine" -libretro_remotejoy_url="https://github.com/libretro/libretro-remotejoy.git" -libretro_remotejoy_dir="libretro-remotejoy" +libretro_remotejoy_fetch_url="https://github.com/libretro/libretro-remotejoy.git" libretro_remotejoy_name="RemoteJoy" -libretro_bluemsx_url="https://github.com/libretro/blueMSX-libretro.git" -libretro_bluemsx_dir="libretro-bluemsx" +libretro_bluemsx_fetch_url="https://github.com/libretro/blueMSX-libretro.git" libretro_bluemsx_name="blueMSX" -libretro_fmsx_url="https://github.com/libretro/fmsx-libretro.git" -libretro_fmsx_dir="libretro-fmsx" +libretro_fmsx_fetch_url="https://github.com/libretro/fmsx-libretro.git" libretro_fmsx_name="fMSX" -libretro_2048_url="https://github.com/libretro/libretro-2048.git" -libretro_2048_dir="libretro-2048" -libretro_2048_name="2048" +libretro_2048_fetch_url="https://github.com/libretro/libretro-2048.git" -libretro_vecx_url="https://github.com/libretro/libretro-vecx.git" -libretro_vecx_dir="libretro-vecx" -libretro_vecx_name="vecx" +libretro_vecx_fetch_url="https://github.com/libretro/libretro-vecx.git" -libretro_ppsspp_url="https://github.com/libretro/ppsspp.git" -libretro_ppsspp_dir="libretro-ppsspp" +libretro_ppsspp_fetch_url="https://github.com/libretro/ppsspp.git" libretro_ppsspp_name="PPSSPP" -libretro_ppsspp_fetch_submodules="1" -libretro_ppsspp_update_submodules="1" +libretro_ppsspp_git_submodules="1" +libretro_ppsspp_git_submodules_update="1" -libretro_prosystem_url="https://github.com/libretro/prosystem-libretro.git" -libretro_prosystem_dir="libretro-prosystem" +libretro_prosystem_fetch_url="https://github.com/libretro/prosystem-libretro.git" libretro_prosystem_name="ProSystem" -libretro_o2em_url="https://github.com/libretro/libretro-o2em.git" -libretro_o2em_dir="libretro-o2em" +libretro_o2em_fetch_url="https://github.com/libretro/libretro-o2em.git" libretro_o2em_name="O2EM" -libretro_4do_url="https://github.com/libretro/4do-libretro.git" -libretro_4do_dir="libretro-4do" +libretro_4do_fetch_url="https://github.com/libretro/4do-libretro.git" libretro_4do_name="4DO" -libretro_catsfc_url="https://github.com/libretro/CATSFC-libretro.git" -libretro_catsfc_dir="libretro-catsfc" +libretro_catsfc_fetch_url="https://github.com/libretro/CATSFC-libretro.git" libretro_catsfc_name="CATSFC" -libretro_stonesoup_url="https://github.com/libretro/crawl-ref.git" -libretro_stonesoup_dir="libretro-stonesoup" +libretro_stonesoup_fetch_url="https://github.com/libretro/crawl-ref.git" libretro_stonesoup_name="Dungeon Crawl Stone Soup" -libretro_stonesoup_fetch_submodules="1" +libretro_stonesoup_git_submodules="1" -libretro_hatari_url="https://github.com/libretro/hatari.git" -libretro_hatari_dir="libretro-hatari" +libretro_hatari_fetch_url="https://github.com/libretro/hatari.git" libretro_hatari_name="Hatari" -libretro_tempgba_url="https://github.com/libretro/TempGBA-libretro.git" -libretro_tempgba_dir="libretro-tempgba" +libretro_tempgba_fetch_url="https://github.com/libretro/TempGBA-libretro.git" libretro_tempgba_name="TempGBA" -libretro_gpsp_url="https://github.com/libretro/gpsp.git" -libretro_gpsp_dir="libretro-gpsp" +libretro_gpsp_fetch_url="https://github.com/libretro/gpsp.git" libretro_gpsp_name="gpSP" -libretro_emux_url="https://github.com/libretro/emux.git" -libretro_emux_dir="libretro-emux" +libretro_emux_fetch_url="https://github.com/libretro/emux.git" libretro_emux_name="Emux" -libretro_fuse_url="https://github.com/libretro/fuse-libretro.git" -libretro_fuse_dir="libretro-fuse" +libretro_fuse_fetch_url="https://github.com/libretro/fuse-libretro.git" libretro_fuse_name="Fuse" +# libretro_fetch_core: Download the given core using its fetch rules +# +# $1 Name of the core to fetch +libretro_fetch_core() { + eval "core_name=\$libretro_${1}_name" + [ -z "$core_name" ] && core_name="$1" + echo "=== $core_name" + + eval "core_fetch_rule=\$libretro_${1}_fetch_rule" + [ -z "$core_fetch_rule" ] && core_fetch_rule=fetch_git + + eval "core_dir=\$libretro_${1}_dir" + [ -z "$core_dir" ] && core_dir="libretro-$1" + + case "$core_fetch_rule" in + fetch_git) + eval "core_fetch_url=\$libretro_${1}_fetch_url" + if [ -z "$core_fetch_url" ]; then + echo "libretro_fetch_core:No URL set to fetch $1 via git." + exit 1 + fi + + eval "core_git_submodules=\$libretro_${1}_git_submodules" + eval "core_git_submodules_update=\$libretro_${1}_git_submodules_update" + + echo "Fetching ${1}..." + $core_fetch_rule "$core_fetch_url" "$core_dir" "" $core_git_submodules $core_git_submodules_update + ;; + *) + echo "libretro_fetch_core:Unknown fetch rule for $1: \"$core_fetch_rule\"." + exit 1 + ;; + esac +} + fetch_libretro_bsnes() { fetch_project_bsnes "https://github.com/libretro/bsnes-libretro.git" "libretro-bsnes" "libretro/bSNES" } @@ -557,7 +527,14 @@ fetch_libretro_common() { if [ -n "$1" ]; then while [ -n "$1" ]; do - "$1" + case "$1" in + fetch_libretro_*) + $1 + ;; + *) + libretro_fetch_core $1 + ;; + esac shift done else