floss: Default build.py to release builds for Rust
Switch build.py to use release builds by default for Rust. This saves us
~5gb in generated files in the build output folder.
Bug: 254085165
Tag: #floss
Test: ./build.py && ./build.py --target test
Change-Id: I5abc239afe97dfb7e0e80d8df75325451b1aaa49
diff --git a/build.py b/build.py
index 049189a..99912a8 100755
--- a/build.py
+++ b/build.py
@@ -419,7 +419,11 @@
def _rust_build(self):
""" Run `cargo build` from platform2/bt directory.
"""
- self.run_command('rust', ['cargo', 'build'], cwd=os.path.join(self.platform_dir, 'bt'), env=self.env)
+ cmd = ['cargo', 'build']
+ if not self.args.rust_debug:
+ cmd.append('--release')
+
+ self.run_command('rust', cmd, cwd=os.path.join(self.platform_dir, 'bt'), env=self.env)
def _target_prepare(self):
""" Target to prepare the output directory for building.
@@ -451,8 +455,11 @@
def _target_rootcanal(self):
""" Build rust artifacts for RootCanal in an already prepared environment.
"""
- self.run_command(
- 'rust', ['cargo', 'build'], cwd=os.path.join(self.platform_dir, 'bt/tools/rootcanal'), env=self.env)
+ cmd = ['cargo', 'build']
+ if not self.args.rust_debug:
+ cmd.append('--release')
+
+ self.run_command('rust', cmd, cwd=os.path.join(self.platform_dir, 'bt/tools/rootcanal'), env=self.env)
def _target_main(self):
""" Build the main GN artifacts in an already prepared environment.
@@ -464,6 +471,9 @@
"""
# Rust tests first
rust_test_cmd = ['cargo', 'test']
+ if not self.args.rust_debug:
+ rust_test_cmd.append('--release')
+
if self.args.test_name:
rust_test_cmd = rust_test_cmd + [self.args.test_name, "--", "--test-threads=1", "--nocapture"]
@@ -830,6 +840,7 @@
parser.add_argument(
'--no-vendored-rust', help='Do not use vendored rust crates', default=False, action='store_true')
parser.add_argument('--verbose', help='Verbose logs for build.')
+ parser.add_argument('--rust-debug', help='Build Rust code as debug.', default=False, action='store_true')
args = parser.parse_args()
# Make sure we get absolute path + expanded path for bootstrap directory