diff options
author | weili <weili@chromium.org> | 2016-04-27 14:06:57 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-04-27 14:06:57 -0700 |
commit | 590f2d9e057a0d5b17a9706affd3c6115265021b (patch) | |
tree | ce150bddb1cdb6ebf25ce323d342035ad49d1327 /build_gyp/find_depot_tools.py | |
parent | cf83a5115a366853a8940a2cfff8c1363fdade9e (diff) | |
download | pdfium-590f2d9e057a0d5b17a9706affd3c6115265021b.tar.xz |
Use visual studio toolchain from depot_tools for PDFium compilation
Change to use visual studio toolchain from depot_tools by default.
Setting DEPOT_TOOLS_WIN_TOOLCHAIN=0 allows compilation using system
toolchain as before.
Using toolchain from depot_tools unifies the compilation
environment, and brings the benefits of automated update, bug fixes
etc.
Review-Url: https://codereview.chromium.org/1897523002
Diffstat (limited to 'build_gyp/find_depot_tools.py')
-rw-r--r-- | build_gyp/find_depot_tools.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/build_gyp/find_depot_tools.py b/build_gyp/find_depot_tools.py new file mode 100644 index 0000000000..6ec83b3d5c --- /dev/null +++ b/build_gyp/find_depot_tools.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# Copyright 2016 PDFium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +"""Small utility function to find depot_tools and add it to the python path. + +Will throw an ImportError exception if depot_tools can't be found since it +imports breakpad. + +This can also be used as a standalone script to print out the depot_tools +directory location. +""" + +import os +import sys + + +def IsRealDepotTools(path): + return os.path.isfile(os.path.join(path, 'gclient.py')) + + +def add_depot_tools_to_path(): + """Search for depot_tools and add it to sys.path.""" + # First look if depot_tools is already in PYTHONPATH. + for i in sys.path: + if i.rstrip(os.sep).endswith('depot_tools') and IsRealDepotTools(i): + return i + # Then look if depot_tools is in PATH, common case. + for i in os.environ['PATH'].split(os.pathsep): + if IsRealDepotTools(i): + sys.path.append(i.rstrip(os.sep)) + return i + # Rare case, it's not even in PATH, look upward up to root. + root_dir = os.path.dirname(os.path.abspath(__file__)) + previous_dir = os.path.abspath(__file__) + while root_dir and root_dir != previous_dir: + i = os.path.join(root_dir, 'depot_tools') + if IsRealDepotTools(i): + sys.path.append(i) + return i + previous_dir = root_dir + root_dir = os.path.dirname(root_dir) + print >> sys.stderr, 'Failed to find depot_tools' + return None + +DEPOT_TOOLS_PATH = add_depot_tools_to_path() + +# pylint: disable=W0611 +import breakpad + + +def main(): + if DEPOT_TOOLS_PATH is None: + return 1 + print DEPOT_TOOLS_PATH + return 0 + + +if __name__ == '__main__': + sys.exit(main()) |