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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 if os.path.isfile(args.output_dir): | 79 if os.path.isfile(args.output_dir): |
80 sys.exit(args.output_dir + ' exists but is a file.') | 80 sys.exit(args.output_dir + ' exists but is a file.') |
81 elif not os.path.isdir(args.output_dir): | 81 elif not os.path.isdir(args.output_dir): |
82 if args.make_output_dir: | 82 if args.make_output_dir: |
83 os.makedirs(args.output_dir) | 83 os.makedirs(args.output_dir) |
84 else: | 84 else: |
85 sys.exit(args.output_dir + ' does not exist (specify --make-output-dir ' | 85 sys.exit(args.output_dir + ' does not exist (specify --make-output-dir ' |
86 'to create).') | 86 'to create).') |
87 | 87 |
88 chrome_target_dir_rel = os.path.join('out', args.chrome_build_type) | 88 chrome_target_dir_rel = os.path.join('out', args.chrome_build_type) |
89 chrome_target_dir = os.path.join(chrome_src_dir, chrome_target_dir_rel) | |
90 | 89 |
91 if not args.no_sync: | 90 if not args.no_sync: |
92 try: | 91 try: |
93 subprocess.check_call(['git', 'fetch'], cwd=chrome_src_dir) | 92 subprocess.check_call(['git', 'fetch'], cwd=chrome_src_dir) |
94 except subprocess.CalledProcessError as error: | 93 except subprocess.CalledProcessError as error: |
95 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, | 94 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, |
96 error.cmd, chrome_src_dir) | 95 error.cmd, chrome_src_dir) |
97 | 96 |
98 try: | 97 try: |
99 subprocess.check_call(['git', 'checkout', args.chrome_revision], | 98 subprocess.check_call(['git', 'checkout', args.chrome_revision], |
100 cwd=chrome_src_dir) | 99 cwd=chrome_src_dir) |
101 except subprocess.CalledProcessError as error: | 100 except subprocess.CalledProcessError as error: |
102 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, | 101 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, |
103 error.cmd, chrome_src_dir) | 102 error.cmd, chrome_src_dir) |
104 | 103 |
105 if not args.no_sync: | 104 if not args.no_sync: |
106 try: | 105 try: |
107 subprocess.check_call(['gclient', 'sync'], cwd=chrome_src_dir) | 106 os.environ['GYP_GENERATORS'] = 'ninja' |
| 107 subprocess.check_call(['gclient', 'sync', '--reset', '--force'], |
| 108 cwd=chrome_src_dir) |
108 except subprocess.CalledProcessError as error: | 109 except subprocess.CalledProcessError as error: |
109 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, | 110 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, |
110 error.cmd, chrome_src_dir) | 111 error.cmd, chrome_src_dir) |
111 | 112 |
112 try: | 113 try: |
113 subprocess.check_call(['ninja'] + shlex.split(args.extra_ninja_args) + | 114 subprocess.check_call(['ninja'] + shlex.split(args.extra_ninja_args) + |
114 ['-C', chrome_target_dir_rel, 'command_buffer_gles2'], | 115 ['-C', chrome_target_dir_rel, 'command_buffer_gles2'], |
115 cwd=chrome_src_dir) | 116 cwd=chrome_src_dir) |
116 except subprocess.CalledProcessError as error: | 117 except subprocess.CalledProcessError as error: |
117 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, | 118 sys.exit('Error (ret code: %s) calling "%s" in %s' % error.returncode, |
118 error.cmd, chrome_src_dir) | 119 error.cmd, chrome_src_dir) |
119 | 120 |
120 shared_lib_src = os.path.join(chrome_target_dir, 'lib', | 121 # The command buffer shared library will have a different extension on Linux, |
121 'libcommand_buffer_gles2.so') | 122 # Mac, and Windows. Also, on Linux it will be in a 'lib' subdirectory and |
122 shared_lib_dst = os.path.join(args.output_dir, 'libcommand_buffer_gles2.so') | 123 # needs to be placed in a 'lib' subdirectory of the directory containing the |
| 124 # Skia executable. |
| 125 platform = sys.platform |
| 126 if platform == 'cygwin': |
| 127 platform = 'win32' |
| 128 |
| 129 shared_lib_ext = '.so' |
| 130 shared_lib_subdir = 'lib' |
| 131 if platform == 'darwin': |
| 132 shared_lib_ext = '.dylib' |
| 133 shared_lib_subdir = '' |
| 134 elif platform == 'win32': |
| 135 shared_lib_ext = '.dll' |
| 136 shared_lib_subdir = '' |
| 137 |
| 138 shared_lib_src_dir = os.path.join(chrome_src_dir, chrome_target_dir_rel, |
| 139 shared_lib_subdir) |
| 140 shared_lib_dst_dir = os.path.join(args.output_dir, shared_lib_subdir) |
| 141 # Make the subdir for the dst if does not exist |
| 142 if shared_lib_subdir and not os.path.isdir(shared_lib_dst_dir): |
| 143 os.mkdir(shared_lib_dst_dir) |
| 144 |
| 145 shared_lib_name = 'libcommand_buffer_gles2' + shared_lib_ext |
| 146 shared_lib_src = os.path.join(shared_lib_src_dir, shared_lib_name) |
| 147 shared_lib_dst = os.path.join(shared_lib_dst_dir, shared_lib_name) |
123 | 148 |
124 if not os.path.isfile(shared_lib_src): | 149 if not os.path.isfile(shared_lib_src): |
125 sys.exit('Command buffer shared library not at expected location: ' + | 150 sys.exit('Command buffer shared library not at expected location: ' + |
126 shared_lib_src) | 151 shared_lib_src) |
127 | 152 |
128 shutil.copy2(shared_lib_src, shared_lib_dst) | 153 shutil.copy2(shared_lib_src, shared_lib_dst) |
129 | 154 |
130 if not os.path.isfile(shared_lib_dst): | 155 if not os.path.isfile(shared_lib_dst): |
131 sys.exit('Command buffer library not copied to ' + shared_lib_dst) | 156 sys.exit('Command buffer library not copied to ' + shared_lib_dst) |
132 | 157 |
133 print('Command buffer library copied to ' + shared_lib_dst) | 158 print('Command buffer library copied to ' + shared_lib_dst) |
134 | 159 |
135 | 160 |
136 if __name__ == '__main__': | 161 if __name__ == '__main__': |
137 main() | 162 main() |
138 | 163 |
OLD | NEW |