| Index: tools/licenses.py
|
| diff --git a/tools/licenses.py b/tools/licenses.py
|
| index 97600d430cbbc2aa2a725e96345a99a24754b975..8d0310aa8afb3fe894621d6e08f626a075d69e24 100755
|
| --- a/tools/licenses.py
|
| +++ b/tools/licenses.py
|
| @@ -19,6 +19,7 @@ import argparse
|
| import cgi
|
| import os
|
| import shutil
|
| +import re
|
| import subprocess
|
| import sys
|
| import tempfile
|
| @@ -480,6 +481,22 @@ def _GnBinary():
|
| return os.path.join(_REPOSITORY_ROOT, 'buildtools', subdir, exe)
|
|
|
|
|
| +def GetThirdPartyDepsFromGNDepsOutput(gn_deps):
|
| + """Returns third_party/foo directories given the output of "gn desc deps".
|
| +
|
| + Note that it always returns the direct sub-directory of third_party
|
| + where README.chromium and LICENSE files are, so that it can be passed to
|
| + ParseDir(). e.g.:
|
| + .../third_party/cld_3/src/src/BUILD.gn -> .../third_party/cld_3
|
| + """
|
| + third_party_deps = set()
|
| + for build_dep in gn_deps.split():
|
| + m = re.search(r'^(.+/third_party/[^/]+)/(.+/)?BUILD\.gn$', build_dep)
|
| + if m:
|
| + third_party_deps.add(m.group(1))
|
| + return third_party_deps
|
| +
|
| +
|
| def FindThirdPartyDeps(gn_out_dir, gn_target):
|
| if not gn_out_dir:
|
| raise RuntimeError("--gn-out-dir is required if --gn-target is used.")
|
| @@ -500,12 +517,7 @@ def FindThirdPartyDeps(gn_out_dir, gn_target):
|
| if tmp_dir and os.path.exists(tmp_dir):
|
| shutil.rmtree(tmp_dir)
|
|
|
| - third_party_deps = set()
|
| - for build_dep in gn_deps.split():
|
| - if ("third_party" in build_dep and
|
| - os.path.basename(build_dep) == "BUILD.gn"):
|
| - third_party_deps.add(os.path.dirname(build_dep))
|
| - return third_party_deps
|
| + return GetThirdPartyDepsFromGNDepsOutput(gn_deps)
|
|
|
|
|
| def ScanThirdPartyDirs(root=None):
|
|
|