mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
Roll chromium_revision 5350dd2460..d5c79b109a (1281218:1283550)
Change log:5350dd2460..d5c79b109a
Full diff:5350dd2460..d5c79b109a
Changed dependencies * fuchsia_version: version:19.20240320.0.1..version:20.20240404.3.1 * src/base:218e807167..dbb0eee8e8
* src/build:04c884cbad..6d974542a0
* src/buildtools/linux64: git_revision:93ee9b91423c1f1f53fb5f6cba7b8eef6247a564..git_revision:415b3b19e094cd4b6982147693485df65037f942 * src/buildtools/mac: git_revision:93ee9b91423c1f1f53fb5f6cba7b8eef6247a564..git_revision:415b3b19e094cd4b6982147693485df65037f942 * src/buildtools/win: git_revision:93ee9b91423c1f1f53fb5f6cba7b8eef6247a564..git_revision:415b3b19e094cd4b6982147693485df65037f942 * src/ios:77324ec269..0bf6089d48
* src/testing:977e41b6f7..02d496a8fc
* src/third_party:d0b81aaaa6..2831ffa216
* src/third_party/android_build_tools/manifest_merger: HxnrwdWmIAhi90brIHiGZ4zmnmgKxP4PD0ZsJX6j-mUC..wtRWPCJVk_NA2GQp0fI-1i-JaPzYJwp6w3udjEhgni4C * src/third_party/android_deps/libs/com_squareup_okio_okio_jvm: version:2@3.3.0.cr1..version:2@3.7.0.cr1 * src/third_party/android_deps/libs/com_squareup_wire_wire_runtime_jvm: version:2@4.7.0.cr1..version:2@4.9.7.cr1 * src/third_party/androidx: piz2tht912VQfctH5Z23YCOpLUBoypzE5ymRqB3vgLkC..1qBFaGY_bIR5f12dL7zKpePRlN4UxIDze8xDv_a0sQEC * src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/368d0d87d0..f94f3ed396 * src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/bb95c35019..0b9e7b8830 * src/third_party/depot_tools:e545830db2..246580c7b8
* src/third_party/ffmpeg:52d8ef3799..bdcb0b447f
* src/third_party/googletest/src:77afe8e014..f10e11fb27
* src/third_party/kotlinc/current: -kUQ1HWm0wwi5pXKSqIplyfSInHmtRS9cVUzg-2l-Y0C..Rr02Gf2EkaeSs3EhSUHhPqDHSd1AzimrM6cRYUJCPjQC * src/third_party/libc++abi/src:1317096ef8..932d253fed
* src/third_party/libvpx/source/libvpx:d790001fd5..6445da1b40
* src/third_party/perfetto:6fd518058c..7609c6712c
* src/third_party/r8: eHemH-tzLR3jqxqGYiQu6AYGLAPyFYG7klrqbvu1mcQC..kPZJoj3X2XUBofNCeOoUj0P8XChVFgtiNQqMnTwhcOwC * src/tools:09b9b5615b..7dad49cbe0
* src/tools/luci-go: git_revision:a84377ac0800e2330d02c3dcbf7b4b74a06d6a5b..git_revision:06dc7a1f2eeb1d095f7876799458328a44438df1 * src/tools/luci-go: git_revision:a84377ac0800e2330d02c3dcbf7b4b74a06d6a5b..git_revision:06dc7a1f2eeb1d095f7876799458328a44438df1 Added dependencies * src/third_party/android_deps/libs/com_squareup_moshi_moshi_adapters * src/third_party/android_deps/libs/com_squareup_moshi_moshi DEPS diff:5350dd2460..d5c79b109a
/DEPS Clang version changed llvmorg-19-init-6501-g5b544b51:llvmorg-19-init-7229-g315c88c5 Details:5350dd2460..d5c79b109a
/tools/clang/scripts/update.py BUG=None Change-Id: I95eaf05240916eeeaa04f806e7e1523a31abab56 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/345960 Commit-Queue: Christoffer Dewerin <jansson@webrtc.org> Reviewed-by: Jeremy Leconte <jleconte@webrtc.org> Cr-Commit-Position: refs/heads/main@{#42010}
This commit is contained in:
parent
4d598037a8
commit
81a9117fb7
6 changed files with 666 additions and 617 deletions
78
DEPS
78
DEPS
|
@ -10,7 +10,7 @@ vars = {
|
|||
# chromium waterfalls. More info at: crbug.com/570091.
|
||||
'checkout_configuration': 'default',
|
||||
'checkout_instrumented_libraries': 'checkout_linux and checkout_configuration == "default"',
|
||||
'chromium_revision': '5350dd2460b8cf103e701f7fd5d0adeb6eb45acd',
|
||||
'chromium_revision': 'd5c79b109a2356e0e4b8883057224b0b2719eabf',
|
||||
|
||||
# Fetch the prebuilt binaries for llvm-cov and llvm-profdata. Needed to
|
||||
# process the raw profiles produced by instrumented targets (built with
|
||||
|
@ -27,7 +27,7 @@ vars = {
|
|||
|
||||
# By default, download the fuchsia sdk from the public sdk directory.
|
||||
'fuchsia_sdk_cipd_prefix': 'fuchsia/sdk/core/',
|
||||
'fuchsia_version': 'version:19.20240320.0.1',
|
||||
'fuchsia_version': 'version:20.20240404.3.1',
|
||||
# By default, download the fuchsia images from the fuchsia GCS bucket.
|
||||
'fuchsia_images_bucket': 'fuchsia',
|
||||
'checkout_fuchsia': False,
|
||||
|
@ -52,9 +52,9 @@ vars = {
|
|||
deps = {
|
||||
# TODO(kjellander): Move this to be Android-only.
|
||||
'src/base':
|
||||
'https://chromium.googlesource.com/chromium/src/base@218e807167d2719d6caaf82d2df4c861d3372304',
|
||||
'https://chromium.googlesource.com/chromium/src/base@dbb0eee8e8238195972062b68b7f46abc5a6f110',
|
||||
'src/build':
|
||||
'https://chromium.googlesource.com/chromium/src/build@04c884cbadf1489a7216cb4a43b77daa33442ce2',
|
||||
'https://chromium.googlesource.com/chromium/src/build@6d974542a020b0ed31b0d9909b3fdc615066fbf0',
|
||||
'src/buildtools':
|
||||
'https://chromium.googlesource.com/chromium/src/buildtools@8919328651a559f8a974641d40fe712062cc6718',
|
||||
# Gradle 6.6.1. Used for testing Android Studio project generation for WebRTC.
|
||||
|
@ -63,19 +63,19 @@ deps = {
|
|||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/ios': {
|
||||
'url': 'https://chromium.googlesource.com/chromium/src/ios@77324ec269e07ea82cd8c8a15ffb0dfcb3742d72',
|
||||
'url': 'https://chromium.googlesource.com/chromium/src/ios@0bf6089d480e995951dc097c1aeaab5b562787a4',
|
||||
'condition': 'checkout_ios',
|
||||
},
|
||||
'src/testing':
|
||||
'https://chromium.googlesource.com/chromium/src/testing@977e41b6f78f22f5f9507d8f86f23ddb5c57ae28',
|
||||
'https://chromium.googlesource.com/chromium/src/testing@02d496a8fcd939b4a906808cbb0a5b4ae8496ea1',
|
||||
'src/third_party':
|
||||
'https://chromium.googlesource.com/chromium/src/third_party@d0b81aaaa6d9c29983762fa7d85c4b8d07870688',
|
||||
'https://chromium.googlesource.com/chromium/src/third_party@2831ffa216574f0708fe777e50785a421f68b5ca',
|
||||
|
||||
'src/buildtools/linux64': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'gn/gn/linux-${{arch}}',
|
||||
'version': 'git_revision:93ee9b91423c1f1f53fb5f6cba7b8eef6247a564',
|
||||
'version': 'git_revision:415b3b19e094cd4b6982147693485df65037f942',
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
|
@ -85,7 +85,7 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'gn/gn/mac-${{arch}}',
|
||||
'version': 'git_revision:93ee9b91423c1f1f53fb5f6cba7b8eef6247a564',
|
||||
'version': 'git_revision:415b3b19e094cd4b6982147693485df65037f942',
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
|
@ -95,7 +95,7 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'gn/gn/windows-amd64',
|
||||
'version': 'git_revision:93ee9b91423c1f1f53fb5f6cba7b8eef6247a564',
|
||||
'version': 'git_revision:415b3b19e094cd4b6982147693485df65037f942',
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
|
@ -119,7 +119,7 @@ deps = {
|
|||
'src/third_party/libc++/src':
|
||||
'https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git@6ddb5cb9499f29383155d7ce6b31f7d1102e6ed9',
|
||||
'src/third_party/libc++abi/src':
|
||||
'https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git@1317096ef8cf278e8d654b78fba7833237673ee1',
|
||||
'https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git@932d253fedb390a08b17ec3a92469a4553934a6a',
|
||||
'src/third_party/libunwind/src':
|
||||
'https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git@419b03c0b8f20d6da9ddcb0d661a94a97cdd7dad',
|
||||
|
||||
|
@ -187,11 +187,11 @@ deps = {
|
|||
},
|
||||
|
||||
'src/third_party/boringssl/src':
|
||||
'https://boringssl.googlesource.com/boringssl.git@368d0d87d0bd00f8227f74ce18e8e4384eaf6afa',
|
||||
'https://boringssl.googlesource.com/boringssl.git@f94f3ed3965ea033001fb9ae006084eee408b861',
|
||||
'src/third_party/breakpad/breakpad':
|
||||
'https://chromium.googlesource.com/breakpad/breakpad.git@76788faa4ef163081f82273bfca7fae8a734b971',
|
||||
'src/third_party/catapult':
|
||||
'https://chromium.googlesource.com/catapult.git@bb95c350195ce0748de8029855bc71ca1336d5e6',
|
||||
'https://chromium.googlesource.com/catapult.git@0b9e7b88303cc20347ca923ea45feeb11860c615',
|
||||
'src/third_party/ced/src': {
|
||||
'url': 'https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git@ba412eaaacd3186085babcd901679a48863c7dd5',
|
||||
},
|
||||
|
@ -204,9 +204,9 @@ deps = {
|
|||
'src/third_party/crc32c/src':
|
||||
'https://chromium.googlesource.com/external/github.com/google/crc32c.git@fa5ade41ee480003d9c5af6f43567ba22e4e17e6',
|
||||
'src/third_party/depot_tools':
|
||||
'https://chromium.googlesource.com/chromium/tools/depot_tools.git@e545830db2fb823da1217b142cb5be10bf45d575',
|
||||
'https://chromium.googlesource.com/chromium/tools/depot_tools.git@246580c7b80617f291c257c0aa10c155574a7a05',
|
||||
'src/third_party/ffmpeg':
|
||||
'https://chromium.googlesource.com/chromium/third_party/ffmpeg.git@52d8ef3799b2f16b66351dd0972bb0bcee1648ac',
|
||||
'https://chromium.googlesource.com/chromium/third_party/ffmpeg.git@bdcb0b447f433de3b69f0252732791b9f7e26f37',
|
||||
'src/third_party/flatbuffers/src':
|
||||
'https://chromium.googlesource.com/external/github.com/google/flatbuffers.git@bcb9ef187628fe07514e57756d05e6a6296f7dc5',
|
||||
'src/third_party/grpc/src': {
|
||||
|
@ -232,7 +232,7 @@ deps = {
|
|||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/googletest/src':
|
||||
'https://chromium.googlesource.com/external/github.com/google/googletest.git@77afe8e0149c207edd9561c28de6d2226673b51f',
|
||||
'https://chromium.googlesource.com/external/github.com/google/googletest.git@f10e11fb27301fba21caa71030bb5024e67aa135',
|
||||
'src/third_party/icu': {
|
||||
'url': 'https://chromium.googlesource.com/chromium/deps/icu.git@364118a1d9da24bb5b770ac3d762ac144d6da5a4',
|
||||
},
|
||||
|
@ -280,7 +280,7 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/kotlinc',
|
||||
'version': '-kUQ1HWm0wwi5pXKSqIplyfSInHmtRS9cVUzg-2l-Y0C',
|
||||
'version': 'Rr02Gf2EkaeSs3EhSUHhPqDHSd1AzimrM6cRYUJCPjQC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
|
@ -304,9 +304,11 @@ deps = {
|
|||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/perfetto':
|
||||
'https://android.googlesource.com/platform/external/perfetto.git@6fd518058c5ce2c2ae99ddb591f7223a290f39ce',
|
||||
'https://android.googlesource.com/platform/external/perfetto.git@7609c6712c3a3afc5f2f6b3e4dfe308ee6517f74',
|
||||
'src/third_party/protobuf-javascript/src':
|
||||
Var('chromium_git') + '/external/github.com/protocolbuffers/protobuf-javascript' + '@' + 'e34549db516f8712f678fcd4bc411613b5cc5295',
|
||||
'src/third_party/libvpx/source/libvpx':
|
||||
'https://chromium.googlesource.com/webm/libvpx.git@d790001fd56edbc39482d596868ed83ee7355368',
|
||||
'https://chromium.googlesource.com/webm/libvpx.git@6445da1b40da7967ccaee23d1ac46d5c3981b89c',
|
||||
'src/third_party/libyuv':
|
||||
'https://chromium.googlesource.com/libyuv/libyuv.git@a6a2ec654b1be1166b376476a7555c89eca0c275',
|
||||
'src/third_party/lss': {
|
||||
|
@ -333,7 +335,7 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/r8',
|
||||
'version': 'eHemH-tzLR3jqxqGYiQu6AYGLAPyFYG7klrqbvu1mcQC',
|
||||
'version': 'kPZJoj3X2XUBofNCeOoUj0P8XChVFgtiNQqMnTwhcOwC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
|
@ -357,7 +359,7 @@ deps = {
|
|||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/tools':
|
||||
'https://chromium.googlesource.com/chromium/src/tools@09b9b5615bc591b4c8f08ed0c3e0826df769f045',
|
||||
'https://chromium.googlesource.com/chromium/src/tools@7dad49cbe0ac07edc648e3671e044e16782652d6',
|
||||
|
||||
'src/third_party/espresso': {
|
||||
'packages': [
|
||||
|
@ -396,7 +398,7 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/androidx',
|
||||
'version': 'piz2tht912VQfctH5Z23YCOpLUBoypzE5ymRqB3vgLkC',
|
||||
'version': '1qBFaGY_bIR5f12dL7zKpePRlN4UxIDze8xDv_a0sQEC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
|
@ -407,7 +409,7 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_build_tools/manifest_merger',
|
||||
'version': 'HxnrwdWmIAhi90brIHiGZ4zmnmgKxP4PD0ZsJX6j-mUC',
|
||||
'version': 'wtRWPCJVk_NA2GQp0fI-1i-JaPzYJwp6w3udjEhgni4C',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
|
@ -500,11 +502,11 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'infra/tools/luci/isolate/${{platform}}',
|
||||
'version': 'git_revision:a84377ac0800e2330d02c3dcbf7b4b74a06d6a5b',
|
||||
'version': 'git_revision:06dc7a1f2eeb1d095f7876799458328a44438df1',
|
||||
},
|
||||
{
|
||||
'package': 'infra/tools/luci/swarming/${{platform}}',
|
||||
'version': 'git_revision:a84377ac0800e2330d02c3dcbf7b4b74a06d6a5b',
|
||||
'version': 'git_revision:06dc7a1f2eeb1d095f7876799458328a44438df1',
|
||||
},
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
|
@ -1595,11 +1597,33 @@ deps = {
|
|||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/libs/com_squareup_moshi_moshi': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_squareup_moshi_moshi',
|
||||
'version': 'version:2@1.15.0.cr1',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/libs/com_squareup_moshi_moshi_adapters': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_squareup_moshi_moshi_adapters',
|
||||
'version': 'version:2@1.15.0.cr1',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/libs/com_squareup_okio_okio_jvm': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_squareup_okio_okio_jvm',
|
||||
'version': 'version:2@3.3.0.cr1',
|
||||
'version': 'version:2@3.7.0.cr1',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
|
@ -1610,7 +1634,7 @@ deps = {
|
|||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_squareup_wire_wire_runtime_jvm',
|
||||
'version': 'version:2@4.7.0.cr1',
|
||||
'version': 'version:2@4.9.7.cr1',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
|
|
|
@ -50,6 +50,8 @@ CPPLINT_EXCEPTIONS = [
|
|||
PYLINT_OLD_STYLE = [
|
||||
"PRESUBMIT.py",
|
||||
"tools_webrtc/autoroller/roll_deps.py",
|
||||
"tools_webrtc/android/build_aar.py",
|
||||
"tools_webrtc/ios/build_ios_libs.py",
|
||||
]
|
||||
|
||||
# These filters will always be removed, even if the caller specifies a filter
|
||||
|
|
|
@ -60,7 +60,8 @@ def _ParseArgs():
|
|||
default='libwebrtc.aar',
|
||||
type=os.path.abspath,
|
||||
help='Output file of the script.')
|
||||
parser.add_argument('--arch',
|
||||
parser.add_argument(
|
||||
'--arch',
|
||||
default=DEFAULT_ARCHS,
|
||||
nargs='*',
|
||||
help='Architectures to build. Defaults to %(default)s.')
|
||||
|
@ -185,7 +186,8 @@ def Build(build_dir, arch, use_goma, use_remoteexec, extra_gn_args,
|
|||
if arm_version:
|
||||
gn_args['arm_version'] = arm_version
|
||||
gn_args_str = '--args=' + ' '.join(
|
||||
[k + '=' + _EncodeForGN(v) for k, v in gn_args.items()] + extra_gn_args)
|
||||
[k + '=' + _EncodeForGN(v)
|
||||
for k, v in gn_args.items()] + extra_gn_args)
|
||||
|
||||
gn_args_list = ['gen', output_directory, gn_args_str]
|
||||
gn_args_list.extend(extra_gn_switches)
|
||||
|
@ -222,7 +224,7 @@ def Collect(aar_file, build_dir, arch, unstripped):
|
|||
def GenerateLicenses(output_dir, build_dir, archs):
|
||||
builder = LicenseBuilder(
|
||||
[_GetOutputDirectory(build_dir, arch) for arch in archs], TARGETS)
|
||||
builder.GenerateLicenseText(output_dir)
|
||||
builder.generate_license_text(output_dir)
|
||||
|
||||
|
||||
def BuildAar(archs,
|
||||
|
|
|
@ -57,7 +57,8 @@ def _ParseArgs():
|
|||
choices=['debug', 'release'],
|
||||
help='The build config. Can be "debug" or "release". '
|
||||
'Defaults to "release".')
|
||||
parser.add_argument('--arch',
|
||||
parser.add_argument(
|
||||
'--arch',
|
||||
nargs='+',
|
||||
default=DEFAULT_ARCHS,
|
||||
choices=ENABLED_ARCHS,
|
||||
|
@ -68,7 +69,8 @@ def _ParseArgs():
|
|||
action='store_true',
|
||||
default=False,
|
||||
help='Removes the previously generated build output, if any.')
|
||||
parser.add_argument('-p',
|
||||
parser.add_argument(
|
||||
'-p',
|
||||
'--purify',
|
||||
action='store_true',
|
||||
default=False,
|
||||
|
@ -99,7 +101,8 @@ def _ParseArgs():
|
|||
action='store_true',
|
||||
default=False,
|
||||
help='Use RBE to build.')
|
||||
parser.add_argument('--deployment-target',
|
||||
parser.add_argument(
|
||||
'--deployment-target',
|
||||
default=IOS_MINIMUM_DEPLOYMENT_TARGET['device'],
|
||||
help='Raise the minimum deployment target to build for. '
|
||||
'Cannot be lowered below 12.0 for iOS/iPadOS '
|
||||
|
@ -157,9 +160,9 @@ def _ParseArchitecture(architectures):
|
|||
|
||||
|
||||
def _VersionMax(*versions):
|
||||
return max(
|
||||
*versions,
|
||||
key=lambda version: [int(component) for component in version.split('.')])
|
||||
return max(*versions,
|
||||
key=lambda version:
|
||||
[int(component) for component in version.split('.')])
|
||||
|
||||
|
||||
def BuildWebRTC(output_dir, target_environment, target_arch, flavor,
|
||||
|
@ -254,8 +257,9 @@ def main():
|
|||
lib_path = os.path.join(framework_path, arch + '_libs')
|
||||
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)
|
||||
gn_target_name, ios_deployment_target,
|
||||
LIBVPX_BUILD_VP9, args.use_goma, args.use_remoteexec,
|
||||
gn_args)
|
||||
all_lib_paths.extend(lib_paths)
|
||||
|
||||
# Combine the slices.
|
||||
|
@ -287,15 +291,18 @@ def main():
|
|||
shutil.copytree(lib_dsym_dir_path,
|
||||
os.path.join(framework_path, SDK_DSYM_NAME))
|
||||
logging.info('Merging dSYM slices.')
|
||||
dsym_path = os.path.join(SDK_DSYM_NAME, 'Contents', 'Resources', 'DWARF',
|
||||
'WebRTC')
|
||||
lib_dsym_paths = [os.path.join(path, dsym_path) for path in lib_paths]
|
||||
dsym_path = os.path.join(SDK_DSYM_NAME, 'Contents', 'Resources',
|
||||
'DWARF', 'WebRTC')
|
||||
lib_dsym_paths = [
|
||||
os.path.join(path, dsym_path) for path in lib_paths
|
||||
]
|
||||
out_dsym_path = os.path.join(framework_path, dsym_path)
|
||||
try:
|
||||
os.remove(out_dsym_path)
|
||||
except OSError:
|
||||
pass
|
||||
cmd = ['lipo'] + lib_dsym_paths + ['-create', '-output', out_dsym_path]
|
||||
cmd = ['lipo'
|
||||
] + lib_dsym_paths + ['-create', '-output', out_dsym_path]
|
||||
_RunCommand(cmd)
|
||||
|
||||
# Check for Mac-style WebRTC.framework/Resources/ (for Catalyst)...
|
||||
|
@ -347,7 +354,7 @@ def main():
|
|||
logging.info('Generate license file.')
|
||||
gn_target_full_name = '//sdk:' + gn_target_name
|
||||
builder = LicenseBuilder(all_lib_paths, [gn_target_full_name])
|
||||
builder.GenerateLicenseText(
|
||||
builder.generate_license_text(
|
||||
os.path.join(args.output_dir, SDK_XCFRAMEWORK_NAME))
|
||||
|
||||
logging.info('Done.')
|
||||
|
|
|
@ -78,8 +78,9 @@ LIB_TO_LICENSES_DICT = {
|
|||
'spl_sqrt_floor': ['common_audio/third_party/spl_sqrt_floor/LICENSE'],
|
||||
'kotlin_stdlib': ['third_party/kotlin_stdlib/LICENSE'],
|
||||
'jni_zero': ['third_party/jni_zero/LICENSE'],
|
||||
'protobuf-javascript': ['third_party/protobuf-javascript/LICENSE'],
|
||||
# TODO(bugs.webrtc.org/1110): Remove this hack. This is not a lib.
|
||||
# For some reason it is listed as so in _GetThirdPartyLibraries.
|
||||
# For some reason it is listed as so in _get_third_party_libraries.
|
||||
'android_deps': [],
|
||||
# This is not a library but a collection of libraries.
|
||||
'androidx': [],
|
||||
|
@ -97,7 +98,7 @@ LIB_REGEX_TO_LICENSES_DICT = {
|
|||
'com_android_support_support_annotations/LICENSE'
|
||||
],
|
||||
|
||||
# Internal dependencies, licenses are already included by other dependencies
|
||||
# Internal dependencies, licenses are already included by other deps.
|
||||
'android_deps:com_android_support_support_annotations.*': [],
|
||||
}
|
||||
|
||||
|
@ -120,6 +121,7 @@ THIRD_PARTY_LIB_REGEX_TEMPLATE = r'^.*/third_party/%s$'
|
|||
|
||||
|
||||
class LicenseBuilder:
|
||||
|
||||
def __init__(self,
|
||||
buildfile_dirs,
|
||||
targets,
|
||||
|
@ -140,7 +142,7 @@ class LicenseBuilder:
|
|||
self.common_licenses_dict.update(self.lib_regex_to_licenses_dict)
|
||||
|
||||
@staticmethod
|
||||
def _ParseLibraryName(dep):
|
||||
def _parse_library_name(dep):
|
||||
"""Returns library name after third_party
|
||||
|
||||
Input one of:
|
||||
|
@ -153,8 +155,8 @@ class LicenseBuilder:
|
|||
groups = re.match(THIRD_PARTY_LIB_SIMPLE_NAME_REGEX, dep)
|
||||
return groups.group(1) if groups else None
|
||||
|
||||
def _ParseLibrary(self, dep):
|
||||
"""Returns library simple or regex name that matches `dep` after third_party
|
||||
def _parse_library(self, dep):
|
||||
"""Return library simple or regex name matching `dep` after third_party
|
||||
|
||||
This method matches `dep` dependency against simple names in
|
||||
LIB_TO_LICENSES_DICT and regular expression names in
|
||||
|
@ -162,7 +164,7 @@ class LicenseBuilder:
|
|||
|
||||
Outputs matched dict key or None if this is not a third_party dependency.
|
||||
"""
|
||||
libname = LicenseBuilder._ParseLibraryName(dep)
|
||||
libname = LicenseBuilder._parse_library_name(dep)
|
||||
|
||||
for lib_regex in self.lib_regex_to_licenses_dict:
|
||||
if re.match(THIRD_PARTY_LIB_REGEX_TEMPLATE % lib_regex, dep):
|
||||
|
@ -171,7 +173,7 @@ class LicenseBuilder:
|
|||
return libname
|
||||
|
||||
@staticmethod
|
||||
def _RunGN(buildfile_dir, target):
|
||||
def _run_gn(buildfile_dir, target):
|
||||
cmd = [
|
||||
sys.executable,
|
||||
os.path.join(find_depot_tools.DEPOT_TOOLS_PATH, 'gn.py'),
|
||||
|
@ -182,31 +184,34 @@ class LicenseBuilder:
|
|||
target,
|
||||
]
|
||||
logging.debug('Running: %r', cmd)
|
||||
output_json = subprocess.check_output(cmd, cwd=WEBRTC_ROOT).decode('UTF-8')
|
||||
output_json = subprocess.check_output(cmd,
|
||||
cwd=WEBRTC_ROOT).decode('UTF-8')
|
||||
logging.debug('Output: %s', output_json)
|
||||
return output_json
|
||||
|
||||
def _GetThirdPartyLibraries(self, buildfile_dir, target):
|
||||
output = json.loads(LicenseBuilder._RunGN(buildfile_dir, target))
|
||||
def _get_third_party_libraries(self, buildfile_dir, target):
|
||||
output = json.loads(LicenseBuilder._run_gn(buildfile_dir, target))
|
||||
libraries = set()
|
||||
for described_target in list(output.values()):
|
||||
third_party_libs = (self._ParseLibrary(dep)
|
||||
third_party_libs = (self._parse_library(dep)
|
||||
for dep in described_target['deps'])
|
||||
libraries |= set(lib for lib in third_party_libs if lib)
|
||||
return libraries
|
||||
|
||||
def GenerateLicenseText(self, output_dir):
|
||||
# Get a list of third_party libs from gn. For fat libraries we must consider
|
||||
# all architectures, hence the multiple buildfile directories.
|
||||
def generate_license_text(self, output_dir):
|
||||
# Get a list of third_party libs from gn. For fat libraries we must
|
||||
# consider all architectures, hence the multiple buildfile directories.
|
||||
third_party_libs = set()
|
||||
for buildfile in self.buildfile_dirs:
|
||||
for target in self.targets:
|
||||
third_party_libs |= self._GetThirdPartyLibraries(buildfile, target)
|
||||
third_party_libs |= self._get_third_party_libraries(
|
||||
buildfile, target)
|
||||
assert len(third_party_libs) > 0
|
||||
|
||||
missing_licenses = third_party_libs - set(self.common_licenses_dict.keys())
|
||||
missing_licenses = third_party_libs - set(
|
||||
self.common_licenses_dict.keys())
|
||||
if missing_licenses:
|
||||
error_msg = 'Missing licenses for following third_party targets: %s' % \
|
||||
error_msg = 'Missing licenses for third_party targets: %s' % \
|
||||
', '.join(sorted(missing_licenses))
|
||||
logging.error(error_msg)
|
||||
raise Exception(error_msg)
|
||||
|
@ -218,10 +223,12 @@ class LicenseBuilder:
|
|||
logging.info('List of licenses: %s', ', '.join(license_libs))
|
||||
|
||||
# Generate markdown.
|
||||
output_license_file = open(os.path.join(output_dir, 'LICENSE.md'), 'w+')
|
||||
output_license_file = open(os.path.join(output_dir, 'LICENSE.md'),
|
||||
'w+')
|
||||
for license_lib in license_libs:
|
||||
if len(self.common_licenses_dict[license_lib]) == 0:
|
||||
logging.info('Skipping compile time or internal dependency: %s',
|
||||
logging.info(
|
||||
'Skipping compile time or internal dependency: %s',
|
||||
license_lib)
|
||||
continue # Compile time dependency
|
||||
|
||||
|
@ -249,7 +256,8 @@ def main():
|
|||
action='append',
|
||||
default=[],
|
||||
help='Name of the GN target to generate a license for')
|
||||
parser.add_argument('output_dir', help='Directory to output LICENSE.md to.')
|
||||
parser.add_argument('output_dir',
|
||||
help='Directory to output LICENSE.md to.')
|
||||
parser.add_argument('buildfile_dirs',
|
||||
nargs='+',
|
||||
help='Directories containing gn generated ninja files')
|
||||
|
@ -258,7 +266,7 @@ def main():
|
|||
logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
|
||||
|
||||
builder = LicenseBuilder(args.buildfile_dirs, args.target)
|
||||
builder.GenerateLicenseText(args.output_dir)
|
||||
builder.generate_license_text(args.output_dir)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -17,8 +17,9 @@ from generate_licenses import LicenseBuilder
|
|||
|
||||
|
||||
class TestLicenseBuilder(unittest.TestCase):
|
||||
|
||||
@staticmethod
|
||||
def _FakeRunGN(buildfile_dir, target):
|
||||
def _fake_run_gn(buildfile_dir, target):
|
||||
return """
|
||||
{
|
||||
"target1": {
|
||||
|
@ -32,87 +33,92 @@ class TestLicenseBuilder(unittest.TestCase):
|
|||
}
|
||||
"""
|
||||
|
||||
def testParseLibraryName(self):
|
||||
def test_parse_library_name(self):
|
||||
self.assertEqual(
|
||||
LicenseBuilder._ParseLibraryName('//a/b/third_party/libname1:c'),
|
||||
LicenseBuilder._parse_library_name('//a/b/third_party/libname1:c'),
|
||||
'libname1')
|
||||
self.assertEqual(
|
||||
LicenseBuilder._ParseLibraryName('//a/b/third_party/libname2:c(d)'),
|
||||
'libname2')
|
||||
LicenseBuilder._parse_library_name(
|
||||
'//a/b/third_party/libname2:c(d)'), 'libname2')
|
||||
self.assertEqual(
|
||||
LicenseBuilder._ParseLibraryName('//a/b/third_party/libname3/c:d(e)'),
|
||||
'libname3')
|
||||
LicenseBuilder._parse_library_name(
|
||||
'//a/b/third_party/libname3/c:d(e)'), 'libname3')
|
||||
self.assertEqual(
|
||||
LicenseBuilder._ParseLibraryName('//a/b/not_third_party/c'), None)
|
||||
LicenseBuilder._parse_library_name('//a/b/not_third_party/c'),
|
||||
None)
|
||||
|
||||
def testParseLibrarySimpleMatch(self):
|
||||
def test_parse_library_simple_match(self):
|
||||
builder = LicenseBuilder([], [], {}, {})
|
||||
self.assertEqual(builder._ParseLibrary('//a/b/third_party/libname:c'),
|
||||
self.assertEqual(builder._parse_library('//a/b/third_party/libname:c'),
|
||||
'libname')
|
||||
|
||||
def testParseLibraryRegExNoMatchFallbacksToDefaultLibname(self):
|
||||
def test_parse_library_regex_no_match_fallbacks_to_default_libname(self):
|
||||
lib_dict = {
|
||||
'libname:foo.*': ['path/to/LICENSE'],
|
||||
}
|
||||
builder = LicenseBuilder([], [], lib_dict, {})
|
||||
self.assertEqual(
|
||||
builder._ParseLibrary('//a/b/third_party/libname:bar_java'), 'libname')
|
||||
builder._parse_library('//a/b/third_party/libname:bar_java'),
|
||||
'libname')
|
||||
|
||||
def testParseLibraryRegExMatch(self):
|
||||
def test_parse_library_regex_match(self):
|
||||
lib_regex_dict = {
|
||||
'libname:foo.*': ['path/to/LICENSE'],
|
||||
}
|
||||
builder = LicenseBuilder([], [], {}, lib_regex_dict)
|
||||
self.assertEqual(
|
||||
builder._ParseLibrary('//a/b/third_party/libname:foo_bar_java'),
|
||||
builder._parse_library('//a/b/third_party/libname:foo_bar_java'),
|
||||
'libname:foo.*')
|
||||
|
||||
def testParseLibraryRegExMatchWithSubDirectory(self):
|
||||
def test_parse_library_regex_match_with_sub_directory(self):
|
||||
lib_regex_dict = {
|
||||
'libname/foo:bar.*': ['path/to/LICENSE'],
|
||||
}
|
||||
builder = LicenseBuilder([], [], {}, lib_regex_dict)
|
||||
self.assertEqual(
|
||||
builder._ParseLibrary('//a/b/third_party/libname/foo:bar_java'),
|
||||
builder._parse_library('//a/b/third_party/libname/foo:bar_java'),
|
||||
'libname/foo:bar.*')
|
||||
|
||||
def testParseLibraryRegExMatchWithStarInside(self):
|
||||
def test_parse_library_regex_match_with_star_inside(self):
|
||||
lib_regex_dict = {
|
||||
'libname/foo.*bar.*': ['path/to/LICENSE'],
|
||||
}
|
||||
builder = LicenseBuilder([], [], {}, lib_regex_dict)
|
||||
self.assertEqual(
|
||||
builder._ParseLibrary('//a/b/third_party/libname/fooHAHA:bar_java'),
|
||||
builder._parse_library(
|
||||
'//a/b/third_party/libname/fooHAHA:bar_java'),
|
||||
'libname/foo.*bar.*')
|
||||
|
||||
@patch('generate_licenses.LicenseBuilder._RunGN', _FakeRunGN)
|
||||
def testGetThirdPartyLibrariesWithoutRegex(self):
|
||||
@patch('generate_licenses.LicenseBuilder._run_gn', _fake_run_gn)
|
||||
def test_get_third_party_libraries_without_regex(self):
|
||||
builder = LicenseBuilder([], [], {}, {})
|
||||
self.assertEqual(builder._GetThirdPartyLibraries('out/arm', 'target1'),
|
||||
self.assertEqual(
|
||||
builder._get_third_party_libraries('out/arm', 'target1'),
|
||||
set(['libname1', 'libname2', 'libname3']))
|
||||
|
||||
@patch('generate_licenses.LicenseBuilder._RunGN', _FakeRunGN)
|
||||
def testGetThirdPartyLibrariesWithRegex(self):
|
||||
@patch('generate_licenses.LicenseBuilder._run_gn', _fake_run_gn)
|
||||
def test_get_third_party_libraries_with_regex(self):
|
||||
lib_regex_dict = {
|
||||
'libname2:c.*': ['path/to/LICENSE'],
|
||||
}
|
||||
builder = LicenseBuilder([], [], {}, lib_regex_dict)
|
||||
self.assertEqual(builder._GetThirdPartyLibraries('out/arm', 'target1'),
|
||||
self.assertEqual(
|
||||
builder._get_third_party_libraries('out/arm', 'target1'),
|
||||
set(['libname1', 'libname2:c.*', 'libname3']))
|
||||
|
||||
@patch('generate_licenses.LicenseBuilder._RunGN', _FakeRunGN)
|
||||
def testGenerateLicenseTextFailIfUnknownLibrary(self):
|
||||
@patch('generate_licenses.LicenseBuilder._run_gn', _fake_run_gn)
|
||||
def test_generate_license_text_fail_if_unknown_library(self):
|
||||
lib_dict = {
|
||||
'simple_library': ['path/to/LICENSE'],
|
||||
}
|
||||
builder = LicenseBuilder(['dummy_dir'], ['dummy_target'], lib_dict, {})
|
||||
|
||||
with self.assertRaises(Exception) as context:
|
||||
builder.GenerateLicenseText('dummy/dir')
|
||||
builder.generate_license_text('dummy/dir')
|
||||
|
||||
self.assertEqual(
|
||||
context.exception.args[0],
|
||||
'Missing licenses for following third_party targets: '
|
||||
'Missing licenses for third_party targets: '
|
||||
'libname1, libname2, libname3')
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue