diff options
author | Lei Zhang <thestig@chromium.org> | 2017-04-06 21:43:50 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-04-07 04:54:45 +0000 |
commit | 0e5d892fe86d7c2527d8f7b7ac2c5aa8fc77a7be (patch) | |
tree | d47e7f2c57e4c2231efb6ed197d695c3537859dd /third_party/yasm/run_yasm.py | |
parent | 4bb4029b1523aa1dbd328fee6ac66385c5fa5b48 (diff) | |
download | pdfium-0e5d892fe86d7c2527d8f7b7ac2c5aa8fc77a7be.tar.xz |
Use libjpeg-turbo instead of our own copy of libjpeg.
Check out libjpeg-turbo via DEPS.
Also checkout yasm via DEPS and copy some yasm build files from
Chromium.
BUG=chromium:541704,pdfium:389
Change-Id: Ic7af415f002a3ca2acd9223ed3474dedf3930b32
Reviewed-on: https://pdfium-review.googlesource.com/3470
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'third_party/yasm/run_yasm.py')
-rw-r--r-- | third_party/yasm/run_yasm.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/third_party/yasm/run_yasm.py b/third_party/yasm/run_yasm.py new file mode 100644 index 0000000000..cbd79ccea1 --- /dev/null +++ b/third_party/yasm/run_yasm.py @@ -0,0 +1,51 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""A wrapper to run yasm. + +Its main job is to provide a Python wrapper for GN integration, and to write +the makefile-style output yasm generates in stdout to a .d file for dependency +management of .inc files. + +Run with: + python run_yasm.py <yasm_binary_path> <all other yasm args> + +Note that <all other yasm args> must include an explicit output file (-o). This +script will append a ".d" to this and write the dependencies there. This script +will add "-M" to cause yasm to write the deps to stdout, so you don't need to +specify that. +""" + +import argparse +import sys +import subprocess + +# Extract the output file name from the yasm command line so we can generate a +# .d file with the same base name. +parser = argparse.ArgumentParser() +parser.add_argument("-o", dest="objfile") +options, _ = parser.parse_known_args() + +objfile = options.objfile +depfile = objfile + '.d' + +# Assemble. +result_code = subprocess.call(sys.argv[1:]) +if result_code != 0: + sys.exit(result_code) + +# Now generate the .d file listing the dependencies. The -M option makes yasm +# write the Makefile-style dependencies to stdout, but it seems that inhibits +# generating any compiled output so we need to do this in a separate pass. +# However, outputting deps seems faster than actually assembling, and yasm is +# so fast anyway this is not a big deal. +# +# This guarantees proper dependency management for assembly files. Otherwise, +# we would have to require people to manually specify the .inc files they +# depend on in the build file, which will surely be wrong or out-of-date in +# some cases. +deps = subprocess.check_output(sys.argv[1:] + ['-M']) +with open(depfile, "wb") as f: + f.write(deps) + |