build: fix unused var error

use_goma is not a valid gn arg anymore.
This is blocking Chromium roll in WebRTC because it triggers a warning when generating license (https://ci.chromium.org/ui/p/webrtc/builders/try/ios_api_framework/55691/overview).

Change-Id: Ic2a8b1346caec7a4699263ff517c129acb5303be
Bug: chromium:41489832
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350741
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42317}
This commit is contained in:
Jeremy Leconte 2024-05-16 10:14:06 +02:00 committed by WebRTC LUCI CQ
parent fe47d7d567
commit 0b496cc347
4 changed files with 102 additions and 117 deletions

View File

@ -65,10 +65,6 @@ def _ParseArgs():
default=DEFAULT_ARCHS,
nargs='*',
help='Architectures to build. Defaults to %(default)s.')
parser.add_argument('--use-goma',
action='store_true',
default=False,
help='Use goma.')
parser.add_argument('--use-remoteexec',
action='store_true',
default=False,
@ -168,8 +164,8 @@ def _GetArmVersion(arch):
raise Exception('Unknown arch: ' + arch)
def Build(build_dir, arch, use_goma, use_remoteexec, extra_gn_args,
extra_gn_switches, extra_ninja_switches):
def Build(build_dir, arch, use_remoteexec, extra_gn_args, extra_gn_switches,
extra_ninja_switches):
"""Generates target architecture using GN and builds it using ninja."""
logging.info('Building: %s', arch)
output_directory = _GetOutputDirectory(build_dir, arch)
@ -179,7 +175,6 @@ def Build(build_dir, arch, use_goma, use_remoteexec, extra_gn_args,
'is_component_build': False,
'rtc_include_tests': False,
'target_cpu': _GetTargetCpu(arch),
'use_goma': use_goma,
'use_remoteexec': use_remoteexec,
}
arm_version = _GetArmVersion(arch)
@ -194,7 +189,7 @@ def Build(build_dir, arch, use_goma, use_remoteexec, extra_gn_args,
_RunGN(gn_args_list)
ninja_args = TARGETS[:]
if use_goma or use_remoteexec:
if use_remoteexec:
ninja_args.extend(['-j', '200'])
ninja_args.extend(extra_ninja_switches)
_RunNinja(output_directory, ninja_args)
@ -229,7 +224,6 @@ def GenerateLicenses(output_dir, build_dir, archs):
def BuildAar(archs,
output_file,
use_goma=False,
use_remoteexec=False,
extra_gn_args=None,
ext_build_dir=None,
@ -242,7 +236,7 @@ def BuildAar(archs,
build_dir = ext_build_dir if ext_build_dir else tempfile.mkdtemp()
for arch in archs:
Build(build_dir, arch, use_goma, use_remoteexec, extra_gn_args,
Build(build_dir, arch, use_remoteexec, extra_gn_args,
extra_gn_switches, extra_ninja_switches)
with zipfile.ZipFile(output_file, 'w') as aar_file:
@ -262,9 +256,9 @@ def main():
args = _ParseArgs()
logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
BuildAar(args.arch, args.output, args.use_goma, args.use_remoteexec,
args.extra_gn_args, args.build_dir, args.extra_gn_switches,
args.extra_ninja_switches, args.use_unstripped_libs)
BuildAar(args.arch, args.output, args.use_remoteexec, args.extra_gn_args,
args.build_dir, args.extra_gn_switches, args.extra_ninja_switches,
args.use_unstripped_libs)
if __name__ == '__main__':

View File

@ -34,110 +34,111 @@ ADB_BIN = os.path.join(CHECKOUT_ROOT,
AAR_PROJECT_DIR = os.path.join(CHECKOUT_ROOT, 'examples/aarproject')
def _ParseArgs():
parser = argparse.ArgumentParser(description='Releases WebRTC on Bintray.')
parser.add_argument('--use-goma',
action='store_true',
default=False,
help='Use goma.')
parser.add_argument('--skip-tests',
action='store_true',
default=False,
help='Skips running the tests.')
parser.add_argument(
'--build-dir',
default=None,
help='Temporary directory to store the build files. If not specified, '
'a new directory will be created.')
parser.add_argument('--verbose',
action='store_true',
default=False,
help='Debug logging.')
return parser.parse_args()
def _parse_args():
parser = argparse.ArgumentParser(description='Releases WebRTC on Bintray.')
parser.add_argument('--use-remoteexec',
action='store_true',
default=False,
help='Use RBE.')
parser.add_argument('--skip-tests',
action='store_true',
default=False,
help='Skips running the tests.')
parser.add_argument(
'--build-dir',
default=None,
help='Temporary directory to store the build files. If not specified, '
'a new directory will be created.')
parser.add_argument('--verbose',
action='store_true',
default=False,
help='Debug logging.')
return parser.parse_args()
def _GetCommitHash():
commit_hash = subprocess.check_output(
['git', 'rev-parse', 'HEAD'], cwd=CHECKOUT_ROOT).decode('UTF-8').strip()
return commit_hash
def _get_commit_hash():
commit_hash = subprocess.check_output(
['git', 'rev-parse', 'HEAD'],
cwd=CHECKOUT_ROOT).decode('UTF-8').strip()
return commit_hash
def _GetCommitPos():
commit_message = subprocess.check_output(
['git', 'rev-list', '--format=%B', '--max-count=1', 'HEAD'],
cwd=CHECKOUT_ROOT).decode('UTF-8')
commit_pos_match = re.search(COMMIT_POSITION_REGEX, commit_message,
re.MULTILINE)
if not commit_pos_match:
raise Exception('Commit position not found in the commit message: %s' %
commit_message)
return commit_pos_match.group(1)
def _get_commit_pos():
commit_message = subprocess.check_output(
['git', 'rev-list', '--format=%B', '--max-count=1', 'HEAD'],
cwd=CHECKOUT_ROOT).decode('UTF-8')
commit_pos_match = re.search(COMMIT_POSITION_REGEX, commit_message,
re.MULTILINE)
if not commit_pos_match:
raise Exception('Commit position not found in the commit message: %s' %
commit_message)
return commit_pos_match.group(1)
def _TestAAR(build_dir):
"""Runs AppRTCMobile tests using the AAR. Returns true if the tests pass."""
logging.info('Testing library.')
def _test_aar(build_dir):
"""Runs AppRTCMobile tests using AAR. Returns true if the tests pass."""
logging.info('Testing library.')
# Uninstall any existing version of AppRTCMobile.
logging.info('Uninstalling previous AppRTCMobile versions. It is okay for '
'these commands to fail if AppRTCMobile is not installed.')
subprocess.call([ADB_BIN, 'uninstall', 'org.appspot.apprtc'])
subprocess.call([ADB_BIN, 'uninstall', 'org.appspot.apprtc.test'])
# Uninstall any existing version of AppRTCMobile.
logging.info('Uninstalling previous AppRTCMobile versions. It is okay for '
'these commands to fail if AppRTCMobile is not installed.')
subprocess.call([ADB_BIN, 'uninstall', 'org.appspot.apprtc'])
subprocess.call([ADB_BIN, 'uninstall', 'org.appspot.apprtc.test'])
# Run tests.
try:
# First clean the project.
subprocess.check_call([GRADLEW_BIN, 'clean'], cwd=AAR_PROJECT_DIR)
# Then run the tests.
subprocess.check_call([
GRADLEW_BIN, 'connectedDebugAndroidTest',
'-PaarDir=' + os.path.abspath(build_dir)
],
cwd=AAR_PROJECT_DIR)
except subprocess.CalledProcessError:
logging.exception('Test failure.')
return False # Clean or tests failed
# Run tests.
try:
# First clean the project.
subprocess.check_call([GRADLEW_BIN, 'clean'], cwd=AAR_PROJECT_DIR)
# Then run the tests.
subprocess.check_call([
GRADLEW_BIN, 'connectedDebugAndroidTest',
'-PaarDir=' + os.path.abspath(build_dir)
],
cwd=AAR_PROJECT_DIR)
except subprocess.CalledProcessError:
logging.exception('Test failure.')
return False # Clean or tests failed
return True # Tests pass
return True # Tests pass
def BuildAndTestAar(use_goma, skip_tests, build_dir):
version = '1.0.' + _GetCommitPos()
commit = _GetCommitHash()
logging.info('Building and Testing AAR version %s with hash %s', version,
commit)
def build_and_test_aar(use_remoteexec, skip_tests, build_dir):
version = '1.0.' + _get_commit_pos()
commit = _get_commit_hash()
logging.info('Building and Testing AAR version %s with hash %s', version,
commit)
# If build directory is not specified, create a temporary directory.
use_tmp_dir = not build_dir
if use_tmp_dir:
build_dir = tempfile.mkdtemp()
try:
base_name = ARTIFACT_ID + '-' + version
aar_file = os.path.join(build_dir, base_name + '.aar')
logging.info('Building at %s', build_dir)
BuildAar(ARCHS,
aar_file,
use_goma=use_goma,
ext_build_dir=os.path.join(build_dir, 'aar-build'))
tests_pass = skip_tests or _TestAAR(build_dir)
if not tests_pass:
raise Exception('Test failure.')
logging.info('Test success.')
finally:
# If build directory is not specified, create a temporary directory.
use_tmp_dir = not build_dir
if use_tmp_dir:
shutil.rmtree(build_dir, True)
build_dir = tempfile.mkdtemp()
try:
base_name = ARTIFACT_ID + '-' + version
aar_file = os.path.join(build_dir, base_name + '.aar')
logging.info('Building at %s', build_dir)
BuildAar(ARCHS,
aar_file,
use_remoteexec=use_remoteexec,
ext_build_dir=os.path.join(build_dir, 'aar-build'))
tests_pass = skip_tests or _test_aar(build_dir)
if not tests_pass:
raise Exception('Test failure.')
logging.info('Test success.')
finally:
if use_tmp_dir:
shutil.rmtree(build_dir, True)
def main():
args = _ParseArgs()
logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
BuildAndTestAar(args.use_goma, args.skip_tests, args.build_dir)
args = _parse_args()
logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
build_and_test_aar(args.use_remoteexec, args.skip_tests, args.build_dir)
if __name__ == '__main__':
sys.exit(main())
sys.exit(main())

View File

@ -93,10 +93,6 @@ def _ParseArgs():
action='store_true',
default=False,
help='Debug logging.')
parser.add_argument('--use-goma',
action='store_true',
default=False,
help='Use goma to build.')
parser.add_argument('--use-remoteexec',
action='store_true',
default=False,
@ -167,7 +163,7 @@ def _VersionMax(*versions):
def BuildWebRTC(output_dir, target_environment, target_arch, flavor,
gn_target_name, ios_deployment_target, libvpx_build_vp9,
use_goma, use_remoteexec, extra_gn_args):
use_remoteexec, extra_gn_args):
gn_args = [
'target_os="ios"',
'ios_enable_code_signing=false',
@ -193,7 +189,6 @@ def BuildWebRTC(output_dir, target_environment, target_arch, flavor,
('true' if libvpx_build_vp9 else 'false'))
gn_args.append('use_lld=true')
gn_args.append('use_goma=' + ('true' if use_goma else 'false'))
gn_args.append('use_remoteexec=' + ('true' if use_remoteexec else 'false'))
gn_args.append('rtc_enable_objc_symbol_export=true')
@ -216,7 +211,7 @@ def BuildWebRTC(output_dir, target_environment, target_arch, flavor,
output_dir,
gn_target_name,
]
if use_goma or use_remoteexec:
if use_remoteexec:
cmd.extend(['-j', '200'])
_RunCommand(cmd)
@ -258,8 +253,7 @@ def main():
lib_paths.append(lib_path)
BuildWebRTC(lib_path, environment, arch, args.build_config,
gn_target_name, ios_deployment_target,
LIBVPX_BUILD_VP9, args.use_goma, args.use_remoteexec,
gn_args)
LIBVPX_BUILD_VP9, args.use_remoteexec, gn_args)
all_lib_paths.extend(lib_paths)
# Combine the slices.

View File

@ -132,10 +132,6 @@ You can pass the `-q/--quiet` flag to get mb to be silent unless there is an
error, and pass the `-v/--verbose` flag to get mb to log all of the files
that are read and written, and all the commands that are run.
If the build config will use the Goma distributed-build system, you can pass
the path to your Goma client in the `-g/--goma-dir` flag, and it will be
incorporated into the appropriate flags for GYP or GN as needed.
If gen ends up using GYP, the path must have a valid GYP configuration as the
last component of the path (i.e., specify `//out/Release_x64`, not `//out`).
The gyp script defaults to `//build/gyp_chromium`, but can be overridden with
@ -248,8 +244,8 @@ For example, if you had:
}
'mixins': {
'bot': {
'gyp_defines': 'use_goma=1 dcheck_always_on=0',
'gn_args': 'use_goma=true dcheck_always_on=false',
'gyp_defines': 'use_remoteexec=1 dcheck_always_on=0',
'gn_args': 'use_remoteexec=true dcheck_always_on=false',
},
'debug': {
'gn_args': 'is_debug=true',
@ -276,7 +272,7 @@ For example, if you had:
and you ran `mb gen -c linux_release_trybot //out/Release`, it would
translate into a call to `gyp_chromium -G Release` with `GYP_DEFINES` set to
`"use_goma=true dcheck_always_on=false dcheck_always_on=true"`.
`"use_remoteexec=true dcheck_always_on=false dcheck_always_on=true"`.
(From that you can see that mb is intentionally dumb and does not
attempt to de-dup the flags, it lets gyp do that).