Arch files are now built as one library per subdirectory, and everything

is autodetected.
This commit is contained in:
David Given
2025-03-18 00:37:07 +01:00
parent 15a69f6dcb
commit 06e29142e6
4 changed files with 47 additions and 92 deletions

View File

@@ -18,7 +18,7 @@
#include "arch/rolandd20/rolandd20.h" #include "arch/rolandd20/rolandd20.h"
#include "arch/smaky6/smaky6.h" #include "arch/smaky6/smaky6.h"
#include "arch/tartu/tartu.h" #include "arch/tartu/tartu.h"
#include "arch/tids990/tids990" #include "arch/tids990/tids990.h"
#include "arch/victor9k/victor9k.h" #include "arch/victor9k/victor9k.h"
#include "arch/zilogmcz/zilogmcz.h" #include "arch/zilogmcz/zilogmcz.h"
#include "arch/arch.h" #include "arch/arch.h"

View File

@@ -1,106 +1,61 @@
from build.c import cxxlibrary from build.c import cxxlibrary
from build.protobuf import proto, protocc from build.protobuf import proto, protocc
from os.path import *
from glob import glob
import sys
archs = [f for f in glob("*", root_dir="arch") if isfile(f"arch/{f}/{f}.proto")]
ps = []
pls = []
cls = []
for a in archs:
ps += [
proto(
name=f"proto_{a}",
srcs=[f"arch/{a}/{a}.proto"],
deps=["lib/config+common_proto"],
)
]
pls += [
protocc(
name=f"proto_lib_{a}",
srcs=[f".+proto_{a}"],
deps=["lib/config+common_proto_lib"],
)
]
cls += [
cxxlibrary(
name=f"arch_{a}",
srcs=glob(f"arch/{a}/*.cc") + glob(f"arch/{a}/*.h"),
hdrs={f"arch/{a}/{a}.h": f"arch/{a}/{a}.h"},
deps=[
"lib/core",
"lib/data",
"lib/config",
"lib/encoders",
"lib/decoders",
],
)
]
proto( proto(
name="proto", name="proto",
srcs=[ deps=ps + ["lib/config+common_proto"],
"./aeslanier/aeslanier.proto",
"./agat/agat.proto",
"./amiga/amiga.proto",
"./apple2/apple2.proto",
"./brother/brother.proto",
"./c64/c64.proto",
"./f85/f85.proto",
"./fb100/fb100.proto",
"./ibm/ibm.proto",
"./macintosh/macintosh.proto",
"./micropolis/micropolis.proto",
"./mx/mx.proto",
"./northstar/northstar.proto",
"./rolandd20/rolandd20.proto",
"./smaky6/smaky6.proto",
"./tartu/tartu.proto",
"./tids990/tids990.proto",
"./victor9k/victor9k.proto",
"./zilogmcz/zilogmcz.proto",
],
deps=["lib/config+common_proto"],
) )
protocc( cxxlibrary(name="proto_lib", deps=pls)
name="proto_lib", srcs=[".+proto"], deps=["lib/config+common_proto_lib"]
)
cxxlibrary( cxxlibrary(
name="arch", name="arch",
srcs=[ srcs=[
"./arch.cc", "./arch.cc",
"./aeslanier/decoder.cc",
"./agat/agat.cc",
"./agat/decoder.cc",
"./agat/encoder.cc",
"./amiga/amiga.cc",
"./amiga/decoder.cc",
"./amiga/encoder.cc",
"./apple2/decoder.cc",
"./apple2/encoder.cc",
"./brother/decoder.cc",
"./brother/encoder.cc",
"./brother/header_gcr.h",
"./c64/c64.cc",
"./c64/decoder.cc",
"./c64/encoder.cc",
"./f85/decoder.cc",
"./fb100/decoder.cc",
"./ibm/decoder.cc",
"./ibm/encoder.cc",
"./macintosh/decoder.cc",
"./macintosh/encoder.cc",
"./macintosh/data_gcr.h",
"./micropolis/decoder.cc",
"./micropolis/encoder.cc",
"./mx/decoder.cc",
"./northstar/decoder.cc",
"./northstar/encoder.cc",
"./rolandd20/decoder.cc",
"./smaky6/decoder.cc",
"./tartu/decoder.cc",
"./tartu/encoder.cc",
"./tids990/decoder.cc",
"./tids990/encoder.cc",
"./victor9k/decoder.cc",
"./victor9k/encoder.cc",
"./zilogmcz/decoder.cc",
], ],
hdrs={ hdrs={
"arch/ibm/ibm.h": "./ibm/ibm.h",
"arch/apple2/data_gcr.h": "./apple2/data_gcr.h",
"arch/apple2/apple2.h": "./apple2/apple2.h",
"arch/amiga/amiga.h": "./amiga/amiga.h",
"arch/smaky6/smaky6.h": "./smaky6/smaky6.h",
"arch/tids990/tids990": "./tids990/tids990.h",
"arch/zilogmcz/zilogmcz.h": "./zilogmcz/zilogmcz.h",
"arch/amiga/amiga.h": "./amiga/amiga.h",
"arch/f85/data_gcr.h": "./f85/data_gcr.h",
"arch/f85/f85.h": "./f85/f85.h",
"arch/mx/mx.h": "./mx/mx.h",
"arch/aeslanier/aeslanier.h": "./aeslanier/aeslanier.h",
"arch/northstar/northstar.h": "./northstar/northstar.h",
"arch/brother/data_gcr.h": "./brother/data_gcr.h",
"arch/brother/brother.h": "./brother/brother.h",
"arch/brother/header_gcr.h": "./brother/header_gcr.h",
"arch/macintosh/data_gcr.h": "./macintosh/data_gcr.h",
"arch/macintosh/macintosh.h": "./macintosh/macintosh.h",
"arch/agat/agat.h": "./agat/agat.h",
"arch/fb100/fb100.h": "./fb100/fb100.h",
"arch/victor9k/data_gcr.h": "./victor9k/data_gcr.h",
"arch/victor9k/victor9k.h": "./victor9k/victor9k.h",
"arch/rolandd20/rolandd20.h": "./rolandd20/rolandd20.h",
"arch/micropolis/micropolis.h": "./micropolis/micropolis.h",
"arch/c64/data_gcr.h": "./c64/data_gcr.h",
"arch/c64/c64.h": "./c64/c64.h",
"arch/tartu/tartu.h": "./tartu/tartu.h",
"arch/arch.h": "./arch.h", "arch/arch.h": "./arch.h",
}, },
deps=["lib/core", "lib/data", "lib/config", "lib/encoders", "lib/decoders"], deps=cls
+ ["lib/core", "lib/data", "lib/config", "lib/encoders", "lib/decoders"],
) )

View File

@@ -1,7 +1,7 @@
#include "lib/core/globals.h" #include "lib/core/globals.h"
#include "lib/decoders/decoders.h" #include "lib/decoders/decoders.h"
#include "lib/encoders/encoders.h" #include "lib/encoders/encoders.h"
#include "arch/tids990/tids990" #include "arch/tids990/tids990.h"
#include "lib/core/crc.h" #include "lib/core/crc.h"
#include "lib/data/fluxmap.h" #include "lib/data/fluxmap.h"
#include "lib/data/fluxmapreader.h" #include "lib/data/fluxmapreader.h"

View File

@@ -1,7 +1,7 @@
#include "lib/core/globals.h" #include "lib/core/globals.h"
#include "lib/decoders/decoders.h" #include "lib/decoders/decoders.h"
#include "lib/encoders/encoders.h" #include "lib/encoders/encoders.h"
#include "arch/tids990/tids990" #include "arch/tids990/tids990.h"
#include "lib/core/crc.h" #include "lib/core/crc.h"
#include "lib/data/image.h" #include "lib/data/image.h"
#include "arch/tids990/tids990.pb.h" #include "arch/tids990/tids990.pb.h"