Index: tools/build_command_buffer.py |
diff --git a/tools/build_command_buffer.py b/tools/build_command_buffer.py |
index 08f76dba73d014b6374a4f2d7e9da7bc7cc66ddd..39c089da5c399e63b8cd7fa498ea80aab00fea78 100755 |
--- a/tools/build_command_buffer.py |
+++ b/tools/build_command_buffer.py |
@@ -25,13 +25,17 @@ def main(): |
parser.add_argument('-c', '--chrome-dir', required=True, help= |
'path to Chromium checkout (directory containing .gclient)') |
parser.add_argument('-o', '--output-dir', required=True, |
- help='path to copy the command buffer shared library to') |
+ help='path to copy the command buffer shared library to. Typically this ' |
+ 'is out/Debug or out/Release in a Skia repository') |
parser.add_argument('--make-output-dir', default=False, action='store_true', |
help='Makes the output directory if it does not already exist.') |
- parser.add_argument('-t', '--chrome-build-type', default='Release', |
- help='Type of build for the command buffer (e.g. Debug or Release). The ' |
- 'output dir to build will be <chrome-dir>/out/<chrome-build-type> ' |
- 'and must already be initialized by gn.') |
+ parser.add_argument('--chrome-out-dir', default='CommandBufferForSkia', |
+ help='Type of name of the gn output directory (e.g. Debug or Release). ' |
+ 'This is relative to the Chromium src/out directory. Note that this ' |
+ 'script will reset the gn args in this directory on each run.') |
+ parser.add_argument('--extra-gn-args', default='', |
+ help=('Extra GN arguments to use for the output directory used to build' |
+ 'the command buffer')) |
parser.add_argument('--extra-ninja-args', default='', |
help=('Extra arguments to pass to ninja when building the command ' |
'buffer shared library')) |
@@ -70,26 +74,21 @@ def main(): |
sys.exit(args.output_dir + ' does not exist (specify --make-output-dir ' |
'to create).') |
- chrome_target_dir_rel = os.path.join('out', args.chrome_build_type) |
+ chrome_target_dir_rel = os.path.join('out', args.chrome_out_dir) |
# The command buffer shared library will have a different name on Linux, |
- # Mac, and Windows. Also, on Linux it will be in a 'lib' subdirectory and |
- # needs to be placed in a 'lib' subdirectory of the directory containing the |
- # Skia executable. Also, the name of the gclient executable we call out to has |
- # a .bat file extension on Windows. |
+ # Mac, and Windows. Also, the name of the gclient executable we call out to |
+ # has a .bat file extension on Windows. |
platform = sys.platform |
if platform == 'cygwin': |
platform = 'win32' |
shared_lib_name = 'libcommand_buffer_gles2.so' |
- shared_lib_subdir = 'lib' |
gclient = 'gclient' |
if platform == 'darwin': |
shared_lib_name = 'libcommand_buffer_gles2.dylib' |
- shared_lib_subdir = '' |
elif platform == 'win32': |
shared_lib_name = 'command_buffer_gles2.dll' |
- shared_lib_subdir = '' |
gclient = 'gclient.bat' |
if not args.no_sync: |
@@ -131,8 +130,8 @@ def main(): |
gn = 'gn.exe' |
gn = os.path.join(chrome_src_dir, 'buildtools', platform, gn) |
try: |
- subprocess.check_call([gn, 'gen', chrome_target_dir_rel, |
- '--args=is_component_build=false'], |
+ gnargs = 'is_component_build=false is_debug=false ' + args.extra_gn_args |
+ subprocess.check_call([gn, 'gen', chrome_target_dir_rel, '--args='+gnargs], |
cwd=chrome_src_dir) |
except subprocess.CalledProcessError as error: |
sys.exit('Error (ret code: %s) calling "%s" in %s' % ( |
@@ -147,13 +146,9 @@ def main(): |
error.cmd, chrome_src_dir)) |
shared_lib_src_dir = os.path.join(chrome_src_dir, chrome_target_dir_rel) |
- shared_lib_dst_dir = os.path.join(args.output_dir, shared_lib_subdir) |
- # Make the subdir for the dst if does not exist |
- if shared_lib_subdir and not os.path.isdir(shared_lib_dst_dir): |
- os.mkdir(shared_lib_dst_dir) |
shared_lib_src = os.path.join(shared_lib_src_dir, shared_lib_name) |
- shared_lib_dst = os.path.join(shared_lib_dst_dir, shared_lib_name) |
+ shared_lib_dst = os.path.join(args.output_dir, shared_lib_name) |
if not os.path.isfile(shared_lib_src): |
sys.exit('Command buffer shared library not at expected location: ' + |