From 3e505f47bcf52858c0d6a37f5baa1469a22beeed Mon Sep 17 00:00:00 2001 From: David Given Date: Tue, 18 Mar 2025 01:05:07 +0100 Subject: [PATCH] It now builds properly! --- build/protobuf.py | 79 +++++++++++++++++++++---------------- dep/fmt/build.py | 2 +- scripts/encodedecodetest.sh | 2 + src/gui/build.py | 6 +-- 4 files changed, 51 insertions(+), 38 deletions(-) diff --git a/build/protobuf.py b/build/protobuf.py index 59ba2272..d5bc0da1 100644 --- a/build/protobuf.py +++ b/build/protobuf.py @@ -31,41 +31,54 @@ def proto(self, name, srcs: Targets = [], deps: Targets = []): ] ) - dirs = sorted({"$[dir]/" + dirname(f) for f in filenamesof(srcs)}) - simplerule( - replaces=self, - ins=srcs, - outs=[f"={self.localname}.descriptor"], - deps=protodeps, - commands=( - ["mkdir -p " + (" ".join(dirs))] - + [f"$(CP) {f} $[dir]/{f}" for f in filenamesof(srcs)] - + [ - "cd $[dir] && " - + ( - " ".join( - [ - "$(PROTOC)", - "--proto_path=.", - "--include_source_info", - f"--descriptor_set_out={self.localname}.descriptor", - ] - + ( - [f"--descriptor_set_in={descriptorlist}"] - if descriptorlist - else [] + if srcs: + dirs = sorted({"$[dir]/" + dirname(f) for f in filenamesof(srcs)}) + simplerule( + replaces=self, + ins=srcs, + outs=[f"={self.localname}.descriptor"], + deps=protodeps, + commands=( + ["mkdir -p " + (" ".join(dirs))] + + [f"$(CP) {f} $[dir]/{f}" for f in filenamesof(srcs)] + + [ + "cd $[dir] && " + + ( + " ".join( + [ + "$(PROTOC)", + "--proto_path=.", + "--include_source_info", + f"--descriptor_set_out={self.localname}.descriptor", + ] + + ( + [f"--descriptor_set_in={descriptorlist}"] + if descriptorlist + else [] + ) + + ["$[ins]"] ) - + ["$[ins]"] ) - ) - ] - ), - label="PROTO", - args={ - "protosrcs": filenamesof(srcs), - "protodeps": set(protodeps) | {self}, - }, - ) + ] + ), + label="PROTO", + args={ + "protosrcs": filenamesof(srcs), + "protodeps": set(protodeps) | {self}, + }, + ) + else: + simplerule( + replaces=self, + ins=protodeps, + outs=["=stamp"], + commands=["touch $[outs]"], + label="PROTO", + args={ + "protosrcs": [], + "protodeps": set(protodeps), + }, + ) @Rule diff --git a/dep/fmt/build.py b/dep/fmt/build.py index 6cb1c1f8..31416523 100644 --- a/dep/fmt/build.py +++ b/dep/fmt/build.py @@ -21,6 +21,6 @@ cxxlibrary( "fmt/printf.h": "./include/fmt/printf.h", "fmt/ranges.h": "./include/fmt/ranges.h", "fmt/std.h": "./include/fmt/std.h", - "fmt/xchar.h": "./include/fmt/xchar.h" + "fmt/xchar.h": "./include/fmt/xchar.h", }, ) diff --git a/scripts/encodedecodetest.sh b/scripts/encodedecodetest.sh index 35bbb737..80842e24 100755 --- a/scripts/encodedecodetest.sh +++ b/scripts/encodedecodetest.sh @@ -14,7 +14,9 @@ destfile=$dir/dest.img dd if=/dev/urandom of=$srcfile bs=1048576 count=2 2>&1 +echo $fluxengine write $format -i $srcfile -d $fluxfile --drive.rotational_period_ms=200 $flags $fluxengine write $format -i $srcfile -d $fluxfile --drive.rotational_period_ms=200 $flags +echo $fluxengine read $format -s $fluxfile -o $destfile --drive.rotational_period_ms=200 $flags $fluxengine read $format -s $fluxfile -o $destfile --drive.rotational_period_ms=200 $flags if [ ! -s $destfile ]; then echo "Zero length output file!" >&2 diff --git a/src/gui/build.py b/src/gui/build.py index d9e0f963..1841f63b 100644 --- a/src/gui/build.py +++ b/src/gui/build.py @@ -16,7 +16,7 @@ endif """ ) -extrasrcs = [] +extrasrcs = ["./layout.cpp"] if config.windows: extrasrcs += [ simplerule( @@ -31,9 +31,7 @@ if config.windows: cxxprogram( name="gui", - srcs=glob("*.c", root_dir="src/gui") + - glob("*.h", root_dir="src/gui") - + extrasrcs, + srcs=glob("src/gui/*.cc") + glob("src/gui/*.h") + extrasrcs, cflags=["$(WX_CFLAGS)"], ldflags=["$(WX_LDFLAGS)"], deps=[