Skip to content

Commit 4c3596a

Browse files
mcfimeta-codesync[bot]
authored andcommitted
Let --cmake-target be repeatable
Summary: Let `--cmake-target` be repeatable so that we can specify multiple targets in one `getdeps.py` command. Reviewed By: yfeldblum Differential Revision: D91143384 fbshipit-source-id: f0573bcd2903627389f8aa373e2f96edffa42446
1 parent 4cabd4a commit 4c3596a

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

build/fbcode_builder/getdeps.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,7 @@ def run_project_cmd(self, args, loader, manifest):
687687
)
688688

689689
extra_b2_args = args.extra_b2_args or []
690+
cmake_targets = args.cmake_target or ["install"]
690691

691692
if sources_changed or reconfigure or not os.path.exists(built_marker):
692693
if os.path.exists(built_marker):
@@ -715,7 +716,7 @@ def run_project_cmd(self, args, loader, manifest):
715716
dep_manifests,
716717
final_install_prefix=loader.get_project_install_prefix(m),
717718
extra_cmake_defines=extra_cmake_defines,
718-
cmake_target=args.cmake_target if m == manifest else "install",
719+
cmake_targets=(cmake_targets if m == manifest else ["install"]),
719720
extra_b2_args=extra_b2_args,
720721
)
721722
builder.build(reconfigure=reconfigure)
@@ -726,7 +727,7 @@ def run_project_cmd(self, args, loader, manifest):
726727
# for the project to run with different cmake_targets to trigger
727728
# cmake
728729
has_built_marker = False
729-
if not (m == manifest and args.cmake_target != "install"):
730+
if not (m == manifest and "install" not in cmake_targets):
730731
with open(built_marker, "w") as f:
731732
f.write(project_hash)
732733
has_built_marker = True
@@ -860,8 +861,9 @@ def setup_project_cmd_parser(self, parser):
860861
)
861862
parser.add_argument(
862863
"--cmake-target",
863-
help=("Target for cmake build."),
864-
default="install",
864+
help=("Repeatable argument that specifies targets for cmake build."),
865+
default=[],
866+
action="append",
865867
)
866868
parser.add_argument(
867869
"--extra-b2-args",

build/fbcode_builder/getdeps/builder.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ def __init__(
685685
defines,
686686
final_install_prefix=None,
687687
extra_cmake_defines=None,
688-
cmake_target="install",
688+
cmake_targets=None,
689689
) -> None:
690690
super(CMakeBuilder, self).__init__(
691691
loader,
@@ -701,7 +701,7 @@ def __init__(
701701
self.defines = defines or {}
702702
if extra_cmake_defines:
703703
self.defines.update(extra_cmake_defines)
704-
self.cmake_target = cmake_target
704+
self.cmake_targets = cmake_targets or ["install"]
705705

706706
if build_opts.is_windows():
707707
try:
@@ -897,12 +897,9 @@ def _build(self, reconfigure: bool) -> None:
897897
self._check_cmd([cmake, self.src_dir] + define_args, env=env)
898898

899899
self._check_cmd(
900-
[
901-
cmake,
902-
"--build",
903-
self.build_dir,
904-
"--target",
905-
self.cmake_target,
900+
[cmake, "--build", self.build_dir, "--target"]
901+
+ self.cmake_targets
902+
+ [
906903
"--config",
907904
self.build_opts.build_type,
908905
"-j",

build/fbcode_builder/getdeps/manifest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ def create_builder( # noqa:C901
524524
dep_manifests,
525525
final_install_prefix=None,
526526
extra_cmake_defines=None,
527-
cmake_target=None,
527+
cmake_targets=None,
528528
extra_b2_args=None,
529529
):
530530
builder = self.get_builder_name(ctx)
@@ -621,7 +621,7 @@ def create_builder( # noqa:C901
621621
defines,
622622
final_install_prefix,
623623
extra_cmake_defines,
624-
cmake_target,
624+
cmake_targets,
625625
)
626626

627627
if builder == "python-wheel":

0 commit comments

Comments
 (0)