diff --git a/CHANGELOG.md b/CHANGELOG.md index 26ba041c00c87cb0b2132f58cb54a367dd4d3a32..794416aa8f3a363e58eb79f1cb558dffcdda750c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * It is no longer necessary to specify `REQUIRED += ...` nor `x_VERSION = $(X_DEP_VERSION)` within the module makefile ### Bugfixes +* Fixed issue where updated dependencies of substitution files did not retrigger a .db expansion. ### Other changes diff --git a/require-ess/tools/driver.makefile b/require-ess/tools/driver.makefile index d9c499d6c226e04fe874094dd6cf890125fcead3..7aceaba617bd5e44f6e127cfb8a48b828f366346 100644 --- a/require-ess/tools/driver.makefile +++ b/require-ess/tools/driver.makefile @@ -398,6 +398,8 @@ export SRCS_Linux # Perform default database expansion of .substitions/.templates into $(COMMON_DIR) db_internal: $(COMMON_DIR) +-include $(COMMON_DIR)/*.db.d + define SUBS_EXPAND vpath $(notdir $2) $(dir $2) db_internal: $(COMMON_DIR)/$(notdir $(basename $2).db) diff --git a/tests/test_build.py b/tests/test_build.py index 6670f6c7d88bd3e412cce484cee0b670596bc8ee..f3f4022ae2cd8630bd61d6a640d9a0bcde2209d5 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -264,3 +264,26 @@ def test_recursive_header_include(wrappers): ) assert rc == 0 assert f"Loaded {wrapper_c.name} version {module_version}" in outs + + +def test_updated_template_files(wrapper): + wrapper.add_var_to_makefile("SUBS", "x.substitutions") + + substitution_file = wrapper.module_dir / "x.substitutions" + substitution_file.write_text("file x.template {pattern {x} {y}}") + + template_file = wrapper.module_dir / "x.template" + template_file.write_text("record(ai, initial) {}") + + base_version = wrapper.get_env_var("EPICS_VERSION_NUMBER") + db_file = wrapper.module_dir / f"O.{base_version}_Common" / "x.db" + + rc, *_ = wrapper.run_make("db_internal") + assert rc == 0 + assert db_file.read_text() == "record(ai, initial) {}" + + template_file.write_text("record(ai, updated) {}") + + rc, *_ = wrapper.run_make("db_internal") + assert rc == 0 + assert db_file.read_text() == "record(ai, updated) {}"