| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 # Copyright 2016 Google Inc. | 3 # Copyright 2016 Google Inc. |
| 4 # | 4 # |
| 5 # Use of this source code is governed by a BSD-style license that can be | 5 # Use of this source code is governed by a BSD-style license that can be |
| 6 # found in the LICENSE file. | 6 # found in the LICENSE file. |
| 7 | 7 |
| 8 | 8 |
| 9 """ | 9 """ |
| 10 Script to build the command buffer shared library and copy it to Skia tree | 10 Script to build the command buffer shared library and copy it to Skia tree |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 | 21 |
| 22 def main(): | 22 def main(): |
| 23 parser = argparse.ArgumentParser(description=('Builds command_buffer_gles2 ' | 23 parser = argparse.ArgumentParser(description=('Builds command_buffer_gles2 ' |
| 24 'library and copies it')) | 24 'library and copies it')) |
| 25 parser.add_argument('-c', '--chrome-dir', required=True, help= | 25 parser.add_argument('-c', '--chrome-dir', required=True, help= |
| 26 'path to Chromium checkout (directory containing .gclient)') | 26 'path to Chromium checkout (directory containing .gclient)') |
| 27 parser.add_argument('-o', '--output-dir', required=True, | 27 parser.add_argument('-o', '--output-dir', required=True, |
| 28 help='path to copy the command buffer shared library to') | 28 help='path to copy the command buffer shared library to') |
| 29 parser.add_argument('--make-output-dir', default=False, action='store_true', | 29 parser.add_argument('--make-output-dir', default=False, action='store_true', |
| 30 help='Makes the output directory if it does not already exist.') | 30 help='Makes the output directory if it does not already exist.') |
| 31 parser.add_argument('-f', '--fetch', action='store_true', default=False, | 31 parser.add_argument('-t', '--chrome-build-type', default='Release', |
| 32 help=('Create Chromium src directory and fetch chromium checkout (if ' | 32 help='Type of build for the command buffer (e.g. Debug or Release). The ' |
| 33 'directory does not already exist)')) | 33 'output dir to build will be <chrome-dir>/out/<chrome-build-type> ' |
| 34 parser.add_argument('--chrome-build-type', default='Release', | 34 'and must already be initialized by gn.') |
| 35 help='Type of build for the command buffer (e.g. Debug or Release)') | |
| 36 parser.add_argument('--extra-ninja-args', default='', | 35 parser.add_argument('--extra-ninja-args', default='', |
| 37 help=('Extra arguments to pass to ninja when building the command ' | 36 help=('Extra arguments to pass to ninja when building the command ' |
| 38 'buffer shared library')) | 37 'buffer shared library')) |
| 39 parser.add_argument('--chrome-revision', default='origin/lkgr', | 38 parser.add_argument('--chrome-revision', default='origin/lkgr', |
| 40 help='Revision (hash, branch, tag) of Chromium to use.') | 39 help='Revision (hash, branch, tag) of Chromium to use.') |
| 41 parser.add_argument('--no-sync', action='store_true', default=False, | 40 parser.add_argument('--no-sync', action='store_true', default=False, |
| 42 help='Don\'t run git fetch or gclient sync in the Chromium tree') | 41 help='Don\'t run git fetch or gclient sync in the Chromium tree') |
| 42 parser.add_argument('--no-hooks', action='store_true', default=False, |
| 43 help='Don\'t run gclient runhooks in the Chromium tree. Implies ' |
| 44 '--no-sync') |
| 43 args = parser.parse_args() | 45 args = parser.parse_args() |
| 44 | 46 |
| 45 args.chrome_dir = os.path.abspath(args.chrome_dir) | 47 args.chrome_dir = os.path.abspath(args.chrome_dir) |
| 46 args.output_dir = os.path.abspath(args.output_dir) | 48 args.output_dir = os.path.abspath(args.output_dir) |
| 47 | 49 |
| 50 if args.no_hooks: |
| 51 args.no_sync = True |
| 52 |
| 48 if os.path.isfile(args.chrome_dir): | 53 if os.path.isfile(args.chrome_dir): |
| 49 sys.exit(args.chrome_dir + ' exists but is a file.') | 54 sys.exit(args.chrome_dir + ' exists but is a file.') |
| 50 | 55 |
| 51 if os.path.isfile(args.output_dir): | 56 if os.path.isfile(args.output_dir): |
| 52 sys.exit(args.output_dir + ' exists but is a file.') | 57 sys.exit(args.output_dir + ' exists but is a file.') |
| 53 | 58 |
| 54 chrome_src_dir = os.path.join(args.chrome_dir, 'src') | 59 chrome_src_dir = os.path.join(args.chrome_dir, 'src') |
| 55 | 60 |
| 56 if os.path.isfile(chrome_src_dir): | |
| 57 sys.exit(chrome_src_dir + ' exists but is a file.') | |
| 58 elif not os.path.isdir(chrome_src_dir): | |
| 59 if args.fetch: | |
| 60 if os.path.isdir(args.chrome_dir): | |
| 61 # If chrome_dir is a dir but chrome_src_dir does not exist we will only | |
| 62 # fetch into chrome_dir if it is empty. | |
| 63 if os.listdir(args.chrome_dir): | |
| 64 sys.exit(args.chrome_dir + ' is not a chromium checkout and is not ' | |
| 65 'empty.') | |
| 66 else: | |
| 67 os.makedirs(args.chrome_dir) | |
| 68 if not os.path.isdir(args.chrome_dir): | |
| 69 sys.exit('Could not create ' + args.chrome_dir) | |
| 70 try: | |
| 71 subprocess.check_call(['fetch', 'chromium'], cwd=args.chrome_dir) | |
| 72 except subprocess.CalledProcessError as error: | |
| 73 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, | |
| 74 error.cmd, args.chrome_dir) | |
| 75 | |
| 76 if not os.path.isdir(chrome_src_dir): | 61 if not os.path.isdir(chrome_src_dir): |
| 77 sys.exit(chrome_src_dir + ' is not a directory.') | 62 sys.exit(chrome_src_dir + ' is not a directory.') |
| 78 | 63 |
| 79 if os.path.isfile(args.output_dir): | 64 if os.path.isfile(args.output_dir): |
| 80 sys.exit(args.output_dir + ' exists but is a file.') | 65 sys.exit(args.output_dir + ' exists but is a file.') |
| 81 elif not os.path.isdir(args.output_dir): | 66 elif not os.path.isdir(args.output_dir): |
| 82 if args.make_output_dir: | 67 if args.make_output_dir: |
| 83 os.makedirs(args.output_dir) | 68 os.makedirs(args.output_dir) |
| 84 else: | 69 else: |
| 85 sys.exit(args.output_dir + ' does not exist (specify --make-output-dir ' | 70 sys.exit(args.output_dir + ' does not exist (specify --make-output-dir ' |
| (...skipping 30 matching lines...) Expand all Loading... |
| 116 | 101 |
| 117 try: | 102 try: |
| 118 subprocess.check_call(['git', 'checkout', args.chrome_revision], | 103 subprocess.check_call(['git', 'checkout', args.chrome_revision], |
| 119 cwd=chrome_src_dir) | 104 cwd=chrome_src_dir) |
| 120 except subprocess.CalledProcessError as error: | 105 except subprocess.CalledProcessError as error: |
| 121 sys.exit('Error (ret code: %s) calling "%s" in %s' % (error.returncode, | 106 sys.exit('Error (ret code: %s) calling "%s" in %s' % (error.returncode, |
| 122 error.cmd, chrome_src_dir)) | 107 error.cmd, chrome_src_dir)) |
| 123 | 108 |
| 124 try: | 109 try: |
| 125 os.environ['GYP_GENERATORS'] = 'ninja' | 110 os.environ['GYP_GENERATORS'] = 'ninja' |
| 126 subprocess.check_call([gclient, 'sync', '--reset', '--force'], | 111 subprocess.check_call([gclient, 'sync', '--reset', '--force', |
| 112 '--nohooks'], |
| 127 cwd=chrome_src_dir) | 113 cwd=chrome_src_dir) |
| 128 except subprocess.CalledProcessError as error: | 114 except subprocess.CalledProcessError as error: |
| 129 sys.exit('Error (ret code: %s) calling "%s" in %s' % (error.returncode, | 115 sys.exit('Error (ret code: %s) calling "%s" in %s' % (error.returncode, |
| 130 error.cmd, chrome_src_dir)) | 116 error.cmd, chrome_src_dir)) |
| 131 | 117 |
| 132 try: | 118 if not args.no_hooks: |
| 133 subprocess.check_call([gclient, 'runhooks'], cwd=chrome_src_dir) | 119 try: |
| 134 except subprocess.CalledProcessError as error: | 120 subprocess.check_call([gclient, 'runhooks'], cwd=chrome_src_dir) |
| 135 sys.exit('Error (ret code: %s) calling "%s" in %s' % ( | 121 except subprocess.CalledProcessError as error: |
| 136 error.returncode, error.cmd, chrome_src_dir)) | 122 sys.exit('Error (ret code: %s) calling "%s" in %s' % ( |
| 123 error.returncode, error.cmd, chrome_src_dir)) |
| 137 | 124 |
| 138 gn = 'gn' | 125 gn = 'gn' |
| 139 platform = 'linux64' | 126 platform = 'linux64' |
| 140 if sys.platform == 'darwin': | 127 if sys.platform == 'darwin': |
| 141 platform = 'mac' | 128 platform = 'mac' |
| 142 elif sys.platform == 'win32': | 129 elif sys.platform == 'win32': |
| 143 platform = 'win' | 130 platform = 'win' |
| 144 gn = 'gn.exe' | 131 gn = 'gn.exe' |
| 145 gn = os.path.join(chrome_src_dir, 'buildtools', platform, gn) | 132 gn = os.path.join(chrome_src_dir, 'buildtools', platform, gn) |
| 146 try: | 133 try: |
| (...skipping 28 matching lines...) Expand all Loading... |
| 175 | 162 |
| 176 if not os.path.isfile(shared_lib_dst): | 163 if not os.path.isfile(shared_lib_dst): |
| 177 sys.exit('Command buffer library not copied to ' + shared_lib_dst) | 164 sys.exit('Command buffer library not copied to ' + shared_lib_dst) |
| 178 | 165 |
| 179 print('Command buffer library copied to ' + shared_lib_dst) | 166 print('Command buffer library copied to ' + shared_lib_dst) |
| 180 | 167 |
| 181 | 168 |
| 182 if __name__ == '__main__': | 169 if __name__ == '__main__': |
| 183 main() | 170 main() |
| 184 | 171 |
| OLD | NEW |