Skip to content

Commit fd8d79e

Browse files
[build] Do not overwrite generated repo SConscript files
The `modm:build:scons` module will check if repositories have generated their own SConscript file before generating one for them. Co-authored-by: Niklas Hauser <[email protected]>
1 parent 5f15719 commit fd8d79e

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

tools/build_script_generator/scons/module.lb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ from os.path import join, relpath, isdir, exists
1717
def init(module):
1818
module.name = ":build:scons"
1919
module.description = FileReader("module.md")
20+
module.order = 10000 # do project-wide file generation last
2021

2122

2223
def prepare(module, options):
@@ -207,7 +208,12 @@ def post_build(env):
207208
if nflag: return nflag;
208209
return '"{}"'.format(flag)
209210

210-
for repo in repositories:
211+
# Generate SConscript files for each repository that doesn't already have one
212+
repos_with_sconscript = set(op.repository for op in env.buildlog.operations
213+
if op.filename == f"{op.repository}/SConscript")
214+
repos_without_sconscript = set(repositories) - repos_with_sconscript
215+
216+
for repo in repos_without_sconscript:
211217
files = []
212218
repo_filter = lambda scope: scope.repository == repo
213219
repo_flags = env.query("::collect_flags")(env, repo_filter)
@@ -237,7 +243,6 @@ def post_build(env):
237243
"is_modm": repo == "modm",
238244
})
239245

240-
# Generate library SConscript
241246
env.outbasepath = repo
242247
env.template("resources/SConscript.in", "SConscript",
243248
filters={"flags_format": flags_format,

0 commit comments

Comments
 (0)