From cf6178453284b30b4b5717c44c6699452178ad94 Mon Sep 17 00:00:00 2001 From: Keith Smiley Date: Thu, 18 Jan 2024 11:24:39 -0800 Subject: [PATCH] Add init_submodules to git_override This is slightly different from the starlark version which has a separate init_submodules and recursive_init_submodules for historical reasons. --- .../devtools/build/lib/bazel/bzlmod/GitOverride.java | 12 +++++++++--- .../build/lib/bazel/bzlmod/ModuleFileGlobals.java | 12 ++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GitOverride.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GitOverride.java index 260f805f2d7f1b..e82c29b65c3d98 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GitOverride.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GitOverride.java @@ -31,8 +31,9 @@ public static GitOverride create( String commit, ImmutableList patches, ImmutableList patchCmds, - int patchStrip) { - return new AutoValue_GitOverride(remote, commit, patches, patchCmds, patchStrip); + int patchStrip, + boolean initSubmodules) { + return new AutoValue_GitOverride(remote, commit, patches, patchCmds, patchStrip, initSubmodules); } /** The URL pointing to the git repository. */ @@ -50,6 +51,9 @@ public static GitOverride create( /** The number of path segments to strip from the paths in the supplied patches. */ public abstract int getPatchStrip(); + /** Whether submodules in the fetched repo should be recursively initialized. */ + public abstract boolean getInitSubmodules(); + /** Returns the {@link RepoSpec} that defines this repository. */ @Override public RepoSpec getRepoSpec(RepositoryName repoName) { @@ -60,7 +64,9 @@ public RepoSpec getRepoSpec(RepositoryName repoName) { .put("commit", getCommit()) .put("patches", getPatches()) .put("patch_cmds", getPatchCmds()) - .put("patch_args", ImmutableList.of("-p" + getPatchStrip())); + .put("patch_args", ImmutableList.of("-p" + getPatchStrip())) + .put("init_submodules", getInitSubmodules()) + .put("recursive_init_submodules", getInitSubmodules()); return RepoSpec.builder() .setBzlFile(GIT_REPOSITORY_PATH) .setRuleClassName("git_repository") diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileGlobals.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileGlobals.java index 92e3aa5b2f8a77..70502d4bbb00ec 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileGlobals.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileGlobals.java @@ -1038,6 +1038,12 @@ public void archiveOverride( named = true, positional = false, defaultValue = "0"), + @Param( + name = "init_submodules", + doc = "Whether submodules in the fetched repo should be recursively initialized.", + named = true, + positional = false, + defaultValue = "False"), }) public void gitOverride( String moduleName, @@ -1045,7 +1051,8 @@ public void gitOverride( String commit, Iterable patches, Iterable patchCmds, - StarlarkInt patchStrip) + StarlarkInt patchStrip, + boolean initSubmodules) throws EvalException { hadNonModuleCall = true; addOverride( @@ -1055,7 +1062,8 @@ public void gitOverride( commit, Sequence.cast(patches, String.class, "patches").getImmutableList(), Sequence.cast(patchCmds, String.class, "patchCmds").getImmutableList(), - patchStrip.toInt("git_override.patch_strip"))); + patchStrip.toInt("git_override.patch_strip"), + initSubmodules)); } @StarlarkMethod(