Skip to content

Commit 7a8704d

Browse files
authored
Update stm32 generated code and properly set up data dependency as lazy (#331)
* update stm32 generated code and properly set up data dependency as lazy * ignore untracked files
1 parent 18fecdc commit 7a8704d

File tree

3 files changed

+131916
-143075
lines changed

3 files changed

+131916
-143075
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ jobs:
158158

159159
stm32-gen-check:
160160
name: Check that stm32 generated code is up to date
161-
continue-on-error: true
162161
runs-on: ubuntu-latest
163162
steps:
164163
- name: Checkout code
@@ -168,11 +167,11 @@ jobs:
168167
with:
169168
version: ${{ env.ZIG_VERSION }}
170169
- name: Generate Code
171-
run: zig build update
170+
run: zig build -Dgenerate
172171
working-directory: port/stmicro/stm32
173172
- name: Check for code diffs
174173
run: |
175-
if [[ $(git status --porcelain) ]]; then
174+
if [[ $(git status --porcelain | grep -v '^??') ]]; then
176175
echo "Code differences detected:"
177176
git diff
178177
echo "Please commit or fix these changes to proceed."

port/stmicro/stm32/build.zig

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,28 +48,30 @@ pub fn init(dep: *std.Build.Dependency) Self {
4848
}
4949

5050
pub fn build(b: *std.Build) !void {
51-
const update = b.step("update", "Update chip definitions from embassy-rs/stm32-data-generated");
51+
const generate = b.option(bool, "generate", "Generate chip definitions from embassy-rs/stm32-data-generated") orelse false;
5252

53-
const stm32_data_generated = b.lazyDependency("stm32-data-generated", .{}) orelse return;
53+
if (generate) {
54+
const stm32_data_generated = b.lazyDependency("stm32-data-generated", .{}) orelse return;
5455

55-
const generate_optimize = .ReleaseSafe;
56-
const regz_dep = b.dependency("microzig/tools/regz", .{
57-
.optimize = generate_optimize,
58-
});
59-
const regz = regz_dep.module("regz");
56+
const generate_optimize = .ReleaseSafe;
57+
const regz_dep = b.dependency("microzig/tools/regz", .{
58+
.optimize = generate_optimize,
59+
});
60+
const regz = regz_dep.module("regz");
6061

61-
const generate = b.addExecutable(.{
62-
.name = "generate",
63-
.root_source_file = b.path("src/generate.zig"),
64-
.target = b.host,
65-
.optimize = generate_optimize,
66-
});
67-
generate.root_module.addImport("regz", regz);
62+
const generate_exe = b.addExecutable(.{
63+
.name = "generate",
64+
.root_source_file = b.path("src/generate.zig"),
65+
.target = b.host,
66+
.optimize = generate_optimize,
67+
});
68+
generate_exe.root_module.addImport("regz", regz);
6869

69-
const generate_run = b.addRunArtifact(generate);
70-
generate_run.max_stdio_size = std.math.maxInt(usize);
71-
generate_run.addFileArg(stm32_data_generated.path("."));
72-
update.dependOn(&generate_run.step);
73-
74-
_ = b.step("test", "Run platform agnostic unit tests");
70+
const generate_run = b.addRunArtifact(generate_exe);
71+
generate_run.max_stdio_size = std.math.maxInt(usize);
72+
generate_run.addFileArg(stm32_data_generated.path("."));
73+
b.getInstallStep().dependOn(&generate_run.step);
74+
} else {
75+
_ = b.step("test", "Run platform agnostic unit tests");
76+
}
7577
}

0 commit comments

Comments
 (0)