mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 16:26:10 +03:00
84 lines
2.6 KiB
Python
84 lines
2.6 KiB
Python
|
#!/usr/bin/env python
|
||
|
# Copyright 2016 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.
|
||
|
|
||
|
"""
|
||
|
Replaces GN files in tree with files from here that
|
||
|
make the build use system libraries.
|
||
|
"""
|
||
|
|
||
|
from __future__ import print_function
|
||
|
|
||
|
import argparse
|
||
|
import os
|
||
|
import shutil
|
||
|
import sys
|
||
|
|
||
|
|
||
|
REPLACEMENTS = {
|
||
|
'ffmpeg': 'third_party/ffmpeg/BUILD.gn',
|
||
|
'flac': 'third_party/flac/BUILD.gn',
|
||
|
'freetype': 'third_party/freetype/BUILD.gn',
|
||
|
'harfbuzz-ng': 'third_party/harfbuzz-ng/BUILD.gn',
|
||
|
'icu': 'third_party/icu/BUILD.gn',
|
||
|
'libdrm': 'third_party/libdrm/BUILD.gn',
|
||
|
'libevent': 'base/third_party/libevent/BUILD.gn',
|
||
|
'libjpeg': 'build/secondary/third_party/libjpeg_turbo/BUILD.gn',
|
||
|
'libpng': 'third_party/libpng/BUILD.gn',
|
||
|
'libvpx': 'third_party/libvpx/BUILD.gn',
|
||
|
'libwebp': 'third_party/libwebp/BUILD.gn',
|
||
|
'libxml': 'third_party/libxml/BUILD.gn',
|
||
|
'libxslt': 'third_party/libxslt/BUILD.gn',
|
||
|
'openh264': 'third_party/openh264/BUILD.gn',
|
||
|
'opus': 'third_party/opus/BUILD.gn',
|
||
|
're2': 'third_party/re2/BUILD.gn',
|
||
|
'snappy': 'third_party/snappy/BUILD.gn',
|
||
|
'yasm': 'third_party/yasm/yasm_assemble.gni',
|
||
|
'zlib': 'third_party/zlib/BUILD.gn',
|
||
|
}
|
||
|
|
||
|
|
||
|
def DoMain(argv):
|
||
|
my_dirname = os.path.dirname(__file__)
|
||
|
source_tree_root = os.path.abspath(
|
||
|
os.path.join(my_dirname, '..', '..', '..'))
|
||
|
|
||
|
parser = argparse.ArgumentParser()
|
||
|
parser.add_argument('--system-libraries', nargs='*', default=[])
|
||
|
parser.add_argument('--undo', action='store_true')
|
||
|
|
||
|
args = parser.parse_args(argv)
|
||
|
|
||
|
handled_libraries = set()
|
||
|
for lib, path in REPLACEMENTS.items():
|
||
|
if lib not in args.system_libraries:
|
||
|
continue
|
||
|
handled_libraries.add(lib)
|
||
|
|
||
|
if args.undo:
|
||
|
# Restore original file, and also remove the backup.
|
||
|
# This is meant to restore the source tree to its original state.
|
||
|
os.rename(os.path.join(source_tree_root, path + '.orig'),
|
||
|
os.path.join(source_tree_root, path))
|
||
|
else:
|
||
|
# Create a backup copy for --undo.
|
||
|
shutil.copyfile(os.path.join(source_tree_root, path),
|
||
|
os.path.join(source_tree_root, path + '.orig'))
|
||
|
|
||
|
# Copy the GN file from directory of this script to target path.
|
||
|
shutil.copyfile(os.path.join(my_dirname, '%s.gn' % lib),
|
||
|
os.path.join(source_tree_root, path))
|
||
|
|
||
|
unhandled_libraries = set(args.system_libraries) - handled_libraries
|
||
|
if unhandled_libraries:
|
||
|
print('Unrecognized system libraries requested: %s' % ', '.join(
|
||
|
sorted(unhandled_libraries)), file=sys.stderr)
|
||
|
return 1
|
||
|
|
||
|
return 0
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
sys.exit(DoMain(sys.argv[1:]))
|