diff options
| author | Junio C Hamano <gitster@pobox.com> | 2026-03-04 10:53:00 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-03-04 10:53:00 -0800 |
| commit | efd5fdbcf9efce78eb536d440dcf42379d9b3197 (patch) | |
| tree | 0875d4d17684040a2aa5e504f6fbd5f9c2f8cf29 | |
| parent | bcc2fc2311da726e1da3c0eb0b539a802f8589c0 (diff) | |
| parent | ebeea3c471c82638170764989d57d9dc24cc7450 (diff) | |
| download | git-efd5fdbcf9efce78eb536d440dcf42379d9b3197.tar.xz | |
Merge branch 'dk/meson-regen-config-list'
Fix dependency screw-up in meson-based builds.
* dk/meson-regen-config-list:
build: regenerate config-list.h when Documentation changes
| -rw-r--r-- | Makefile | 5 | ||||
| -rwxr-xr-x | generate-configlist.sh | 16 | ||||
| -rw-r--r-- | meson.build | 5 |
3 files changed, 22 insertions, 4 deletions
@@ -2688,9 +2688,10 @@ $(BUILT_INS): git$X cp $< $@ config-list.h: generate-configlist.sh + @mkdir -p .depend + $(QUIET_GEN)$(SHELL_PATH) ./generate-configlist.sh . $@ .depend/config-list.h.d -config-list.h: Documentation/*config.adoc Documentation/config/*.adoc - $(QUIET_GEN)$(SHELL_PATH) ./generate-configlist.sh . $@ +-include .depend/config-list.h.d command-list.h: generate-cmdlist.sh command-list.txt diff --git a/generate-configlist.sh b/generate-configlist.sh index 75c39ade20..e28054f9e0 100755 --- a/generate-configlist.sh +++ b/generate-configlist.sh @@ -2,10 +2,11 @@ SOURCE_DIR="$1" OUTPUT="$2" +DEPFILE="$3" if test -z "$SOURCE_DIR" || ! test -d "$SOURCE_DIR" || test -z "$OUTPUT" then - echo >&2 "USAGE: $0 <SOURCE_DIR> <OUTPUT>" + echo >&2 "USAGE: $0 <SOURCE_DIR> <OUTPUT> [<DEPFILE>]" exit 1 fi @@ -36,3 +37,16 @@ EOF echo print_config_list } >"$OUTPUT" + +if test -n "$DEPFILE" +then + QUOTED_OUTPUT="$(printf '%s\n' "$OUTPUT" | sed 's,[&/\],\\&,g')" + { + printf '%s\n' "$SOURCE_DIR"/Documentation/*config.adoc \ + "$SOURCE_DIR"/Documentation/config/*.adoc | + sed -e 's/[# ]/\\&/g' -e "s/^/$QUOTED_OUTPUT: /" + printf '%s:\n' "$SOURCE_DIR"/Documentation/*config.adoc \ + "$SOURCE_DIR"/Documentation/config/*.adoc | + sed -e 's/[# ]/\\&/g' + } >"$DEPFILE" +fi diff --git a/meson.build b/meson.build index 6f155beafa..4b536e0124 100644 --- a/meson.build +++ b/meson.build @@ -722,11 +722,14 @@ endif builtin_sources += custom_target( output: 'config-list.h', + depfile: 'config-list.h.d', + depend_files: [ 'generate-configlist.sh' ], command: [ shell, - meson.current_source_dir() + '/generate-configlist.sh', + meson.current_source_dir() / 'generate-configlist.sh', meson.current_source_dir(), '@OUTPUT@', + '@DEPFILE@', ], env: script_environment, ) |
