From 730dad13407f444d4b1d87abb69b17b38c82377e Mon Sep 17 00:00:00 2001 From: Manikandan Somasundaram Date: Thu, 19 Jan 2023 18:03:58 -0800 Subject: [PATCH] Enable building specific cmake targets (#3759) Summary: Pull Request resolved: https://github.com/facebookincubator/velox/pull/3759 Reviewed By: chadaustin Differential Revision: D42551680 fbshipit-source-id: 4e5c5bef2ad2997e04ab8fb8db4ef7fbeda0bcab --- build/fbcode_builder/getdeps.py | 6 ++++++ build/fbcode_builder/getdeps/builder.py | 4 +++- build/fbcode_builder/getdeps/manifest.py | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/build/fbcode_builder/getdeps.py b/build/fbcode_builder/getdeps.py index 02ae50374..c630f45b4 100755 --- a/build/fbcode_builder/getdeps.py +++ b/build/fbcode_builder/getdeps.py @@ -622,6 +622,7 @@ class BuildCmd(ProjectCmdBase): loader, final_install_prefix=loader.get_project_install_prefix(m), extra_cmake_defines=extra_cmake_defines, + cmake_target=args.cmake_target if m == manifest else "install", extra_b2_args=extra_b2_args, ) builder.build(install_dirs, reconfigure=reconfigure) @@ -763,6 +764,11 @@ class BuildCmd(ProjectCmdBase): 'e.g: \'{"CMAKE_CXX_FLAGS": "--bla"}\'' ), ) + parser.add_argument( + "--cmake-target", + help=("Target for cmake build."), + default="install", + ) parser.add_argument( "--extra-b2-args", help=( diff --git a/build/fbcode_builder/getdeps/builder.py b/build/fbcode_builder/getdeps/builder.py index bea1adbce..4f0c80909 100644 --- a/build/fbcode_builder/getdeps/builder.py +++ b/build/fbcode_builder/getdeps/builder.py @@ -512,6 +512,7 @@ if __name__ == "__main__": loader=None, final_install_prefix=None, extra_cmake_defines=None, + cmake_target="install", ) -> None: super(CMakeBuilder, self).__init__( build_opts, @@ -525,6 +526,7 @@ if __name__ == "__main__": self.defines = defines or {} if extra_cmake_defines: self.defines.update(extra_cmake_defines) + self.cmake_target = cmake_target try: from .facebook.vcvarsall import extra_vc_cmake_defines @@ -707,7 +709,7 @@ if __name__ == "__main__": "--build", self.build_dir, "--target", - "install", + self.cmake_target, "--config", "Release", "-j", diff --git a/build/fbcode_builder/getdeps/manifest.py b/build/fbcode_builder/getdeps/manifest.py index 1cae88d76..3603dfdf0 100644 --- a/build/fbcode_builder/getdeps/manifest.py +++ b/build/fbcode_builder/getdeps/manifest.py @@ -203,7 +203,6 @@ class ManifestParser(object): # autoconf.args section one per line config = configparser.RawConfigParser(allow_no_value=True) config.optionxform = str # make it case sensitive - if fp is None: with open(file_name, "r") as fp: config.read_file(fp) @@ -469,6 +468,7 @@ class ManifestParser(object): loader, final_install_prefix=None, extra_cmake_defines=None, + cmake_target=None, extra_b2_args=None, ): builder = self.get_builder_name(ctx) @@ -548,6 +548,7 @@ class ManifestParser(object): loader, final_install_prefix, extra_cmake_defines, + cmake_target, ) if builder == "python-wheel":