From 4995a5583134952c3a12f008694153ab9b157ca3 Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Mon, 18 Dec 2023 20:01:30 -0800 Subject: [PATCH] Add ability to have extern sources Former-commit-id: 45b4e8abbbc9b9b40045b161e201447777b65483 --- configure.py | 77 ++++++++++++++++++++++++++---------------------- extern/musyx | 2 +- tools/project.py | 12 ++++++-- 3 files changed, 52 insertions(+), 39 deletions(-) diff --git a/configure.py b/configure.py index de73d9bf..2753901c 100755 --- a/configure.py +++ b/configure.py @@ -240,6 +240,7 @@ def DolphinLib(lib_name, objects): "lib": lib_name + "D" if config.debug else "", "mw_version": "GC/1.2.5n", "cflags": cflags_base, + "extern": False, "host": False, "objects": objects, } @@ -250,6 +251,7 @@ def RetroLib(lib_name, objects): "lib": lib_name + "CW" + "D" if config.debug else "", "mw_version": "GC/1.3.2", "cflags": cflags_retro, + "extern": False, "host": False, "objects": objects, } @@ -258,8 +260,10 @@ def RetroLib(lib_name, objects): def MusyX(objects, mw_version="GC/1.3.2", debug=False, major=2, minor=0, patch=0): cflags = cflags_musyx if not debug else cflags_musyx_debug return { - "lib": "musyx" + "D" if config.debug else "", + "lib": "musyx", "mw_version": mw_version, + "extern": True, + "extern_source": "extern/musyx/src", "host": False, "cflags": [ *cflags, @@ -913,6 +917,7 @@ config.libs = [ "lib": "zlib", "mw_version": "GC/1.3.2", "cflags": cflags_runtime, + "extern": False, "host": False, "objects": [ Object(Matching, "Kyoto/zlib/adler32.c"), @@ -1110,6 +1115,7 @@ config.libs = [ "lib": "MSL_C.PPCEABI.bare.H", "mw_version": "GC/1.3.2", "cflags": cflags_runtime, + "extern": False, "host": False, "objects": [ Object(Matching, "Runtime/__mem.c"), @@ -1185,41 +1191,39 @@ config.libs = [ # minor=5, # patch=3, objects=[ - Object( - Matching, "musyx/runtime/seq.c", source="extern/musyx/runtime/seq.c" - ), - Object(Matching, "musyx/runtime/synth.c", source="extern/musyx/synth.c"), - Object(Matching, "musyx/runtime/seq_api.c", source="extern/musyx/seq_api.c"), - Object(Matching, "musyx/runtime/snd_synthapi.c", source="extern/musyx/snd_synthapi.c"), - Object(NonMatching, "musyx/runtime/stream.c", source="extern/musyx/stream.c"), - Object(Matching, "musyx/runtime/synthdata.c", source="extern/musyx/synthdata.c"), - Object(NonMatching, "musyx/runtime/synthmacros.c", source="extern/musyx/synthmacros.c"), - Object(Matching, "musyx/runtime/synthvoice.c", source="extern/musyx/synthvoice.c"), - Object(Matching, "musyx/runtime/synth_ac.c", source="extern/musyx/synth_ac.c"), - Object(Matching, "musyx/runtime/synth_adsr.c", source="extern/musyx/synth_adsr.c"), - Object(Matching, "musyx/runtime/synth_vsamples.c", source="extern/musyx/synth_vsamples.c"), - Object(Matching, "musyx/runtime/synth_dbtab.c", source="extern/musyx/synth_dbtab.c"), - Object(Matching, "musyx/runtime/s_data.c", source="extern/musyx/s_data.c"), - Object(NonMatching, "musyx/runtime/hw_dspctrl.c", source="extern/musyx/hw_dspctrl.c"), - Object(Matching, "musyx/runtime/hw_volconv.c", source="extern/musyx/hw_volconv.c"), - Object(Matching, "musyx/runtime/snd3d.c", source="extern/musyx/snd3d.c"), - Object(Matching, "musyx/runtime/snd_init.c", source="extern/musyx/snd_init.c"), - Object(Matching, "musyx/runtime/snd_math.c", source="extern/musyx/snd_math.c"), - Object(NonMatching, "musyx/runtime/snd_midictrl.c", source="extern/musyx/snd_midictrl.c"), - Object(Matching, "musyx/runtime/snd_service.c", source="extern/musyx/snd_service.c"), - Object(Matching, "musyx/runtime/hardware.c", source="extern/musyx/hardware.c"), - Object(Matching, "musyx/runtime/hw_aramdma.c", source="extern/musyx/hw_aramdma.c"), - Object(Matching, "musyx/runtime/dsp_import.c", source="extern/musyx/dsp_import.c"), - Object(Matching, "musyx/runtime/hw_dolphin.c", source="extern/musyx/hw_dolphin.c"), - Object(Matching, "musyx/runtime/hw_memory.c", source="extern/musyx/hw_memory.c"), - Object(Matching, "musyx/runtime/hw_lib_dummy.c", source="extern/musyx/hw_lib_dummy.c"), - Object(Matching, "musyx/runtime/CheapReverb/creverb_fx.c", source="extern/musyx/creverb_fx.c"), - Object(Matching, "musyx/runtime/CheapReverb/creverb.c", source="extern/musyx/creverb.c"), - Object(Matching, "musyx/runtime/StdReverb/reverb_fx.c", source="extern/musyx/reverb_fx.c"), - Object(Matching, "musyx/runtime/StdReverb/reverb.c", source="extern/musyx/reverb.c"), - Object(Matching, "musyx/runtime/Delay/delay_fx.c", source="extern/musyx/delay_fx.c"), - Object(Matching, "musyx/runtime/Chorus/chorus_fx.c", source="extern/musyx/chorus_fx.c"), - Object(Matching, "musyx/runtime/profile.c", source="extern/musyx/profile.c"), + Object(Matching, "musyx/runtime/seq.c"), + Object(Matching, "musyx/runtime/synth.c"), + Object(Matching, "musyx/runtime/seq_api.c"), + Object(Matching, "musyx/runtime/snd_synthapi.c"), + Object(NonMatching, "musyx/runtime/stream.c"), + Object(Matching, "musyx/runtime/synthdata.c"), + Object(NonMatching, "musyx/runtime/synthmacros.c"), + Object(Matching, "musyx/runtime/synthvoice.c"), + Object(Matching, "musyx/runtime/synth_ac.c"), + Object(Matching, "musyx/runtime/synth_adsr.c"), + Object(Matching, "musyx/runtime/synth_vsamples.c"), + Object(Matching, "musyx/runtime/synth_dbtab.c"), + Object(Matching, "musyx/runtime/s_data.c"), + Object(NonMatching, "musyx/runtime/hw_dspctrl.c"), + Object(Matching, "musyx/runtime/hw_volconv.c"), + Object(Matching, "musyx/runtime/snd3d.c"), + Object(Matching, "musyx/runtime/snd_init.c"), + Object(Matching, "musyx/runtime/snd_math.c"), + Object(NonMatching, "musyx/runtime/snd_midictrl.c"), + Object(Matching, "musyx/runtime/snd_service.c"), + Object(Matching, "musyx/runtime/hardware.c"), + Object(Matching, "musyx/runtime/hw_aramdma.c"), + Object(Matching, "musyx/runtime/dsp_import.c"), + Object(Matching, "musyx/runtime/hw_dolphin.c"), + Object(Matching, "musyx/runtime/hw_memory.c"), + Object(Matching, "musyx/runtime/hw_lib_dummy.c"), + Object(Matching, "musyx/runtime/CheapReverb/creverb_fx.c"), + Object(Matching, "musyx/runtime/CheapReverb/creverb.c"), + Object(Matching, "musyx/runtime/StdReverb/reverb_fx.c"), + Object(Matching, "musyx/runtime/StdReverb/reverb.c"), + Object(Matching, "musyx/runtime/Delay/delay_fx.c"), + Object(Matching, "musyx/runtime/Chorus/chorus_fx.c"), + Object(Matching, "musyx/runtime/profile.c"), ], ), { @@ -1238,6 +1242,7 @@ config.libs = [ "-D_DEBUG=1", "-enum int", ], + "extern": True, "host": False, "objects": [ Object(NonMatching, "musyx/txwin/txwin.c"), diff --git a/extern/musyx b/extern/musyx index 6f76370d..28424c82 160000 --- a/extern/musyx +++ b/extern/musyx @@ -1 +1 @@ -Subproject commit 6f76370d3614c260b43cbd6cc875ac9de885359d +Subproject commit 28424c828c8c462e26953ded3b08e6f3a0c8e489 diff --git a/tools/project.py b/tools/project.py index dc16e332..d3dabb95 100644 --- a/tools/project.py +++ b/tools/project.py @@ -511,7 +511,11 @@ def generate_build_ninja(config, build_config): options = obj.options completed = obj.completed - unit_src_path = config.src_dir / options["source"] + if "extern" in lib.keys() and lib["extern"]: + unit_src_path = Path(lib["extern_source"]) / options["source"] + else: + unit_src_path = config.src_dir / options["source"] + if not unit_src_path.exists(): if config.warn_missing_source: print(f"Missing source file {unit_src_path}") @@ -828,7 +832,11 @@ def generate_objdiff_config(config, build_config): return lib, obj = result - unit_src_path = config.src_dir / obj.options["source"] + if "extern" in lib.keys() and lib["extern"]: + unit_src_path = Path(lib["extern_source"]) / obj.options["source"] + else: + unit_src_path = config.src_dir / obj.options["source"] + print(unit_src_path) if not unit_src_path.exists(): objdiff_config["units"].append(unit_config) return