OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 # This file isn't officially supported by the Chromium project. It's maintained | 6 # This file isn't officially supported by the Chromium project. It's maintained |
7 # on a best-effort basis by volunteers, so some things may be broken from time | 7 # on a best-effort basis by volunteers, so some things may be broken from time |
8 # to time. If you encounter errors, it's most often due to files in base that | 8 # to time. If you encounter errors, it's most often due to files in base that |
9 # have been added or moved since somebody last tried this script. Generally | 9 # have been added or moved since somebody last tried this script. Generally |
10 # such errors are easy to diagnose. | 10 # such errors are easy to diagnose. |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 except subprocess.CalledProcessError as e: | 111 except subprocess.CalledProcessError as e: |
112 print >> sys.stderr, str(e) | 112 print >> sys.stderr, str(e) |
113 return 1 | 113 return 1 |
114 return 0 | 114 return 0 |
115 | 115 |
116 | 116 |
117 def build_gn_with_ninja_manually(tempdir, options): | 117 def build_gn_with_ninja_manually(tempdir, options): |
118 root_gen_dir = os.path.join(tempdir, 'gen') | 118 root_gen_dir = os.path.join(tempdir, 'gen') |
119 mkdir_p(root_gen_dir) | 119 mkdir_p(root_gen_dir) |
120 | 120 |
| 121 if is_linux: |
| 122 mkdir_p(os.path.join(root_gen_dir, 'base', 'allocator')) |
| 123 with tempfile.NamedTemporaryFile() as f: |
| 124 f.write('--flags USE_EXPERIMENTAL_ALLOCATOR_SHIM=true') |
| 125 f.flush() |
| 126 |
| 127 check_call([ |
| 128 os.path.join(SRC_ROOT, 'build', 'write_buildflag_header.py'), |
| 129 '--output', 'base/allocator/features.h', |
| 130 '--gen-dir', root_gen_dir, |
| 131 '--definitions', f.name, |
| 132 ]) |
| 133 |
121 if is_mac: | 134 if is_mac: |
122 # //base/build_time.cc needs base/generated_build_date.h, | 135 # //base/build_time.cc needs base/generated_build_date.h, |
123 # and this file is only included for Mac builds. | 136 # and this file is only included for Mac builds. |
124 mkdir_p(os.path.join(root_gen_dir, 'base')) | 137 mkdir_p(os.path.join(root_gen_dir, 'base')) |
125 check_call([ | 138 check_call([ |
126 os.path.join(SRC_ROOT, 'build', 'write_build_date_header.py'), | 139 os.path.join(SRC_ROOT, 'build', 'write_build_date_header.py'), |
127 os.path.join(root_gen_dir, 'base', 'generated_build_date.h'), | 140 os.path.join(root_gen_dir, 'base', 'generated_build_date.h'), |
128 'default' | 141 'default' |
129 ]) | 142 ]) |
130 | 143 |
(...skipping 17 matching lines...) Expand all Loading... |
148 # //base/allocator/allocator_extension.cc needs this macro defined, | 161 # //base/allocator/allocator_extension.cc needs this macro defined, |
149 # otherwise there would be link errors. | 162 # otherwise there would be link errors. |
150 cflags.extend(['-DNO_TCMALLOC']) | 163 cflags.extend(['-DNO_TCMALLOC']) |
151 | 164 |
152 if is_posix: | 165 if is_posix: |
153 if options.debug: | 166 if options.debug: |
154 cflags.extend(['-O0', '-g']) | 167 cflags.extend(['-O0', '-g']) |
155 else: | 168 else: |
156 cflags.extend(['-O2', '-g0']) | 169 cflags.extend(['-O2', '-g0']) |
157 | 170 |
158 cflags.extend(['-D_FILE_OFFSET_BITS=64', '-pthread', '-pipe']) | 171 cflags.extend([ |
| 172 '-D_FILE_OFFSET_BITS=64', |
| 173 '-pthread', |
| 174 '-pipe', |
| 175 '-fno-exceptions' |
| 176 ]) |
159 cflags_cc.extend(['-std=c++11', '-Wno-c++11-narrowing']) | 177 cflags_cc.extend(['-std=c++11', '-Wno-c++11-narrowing']) |
160 | 178 |
161 static_libraries = { | 179 static_libraries = { |
162 'base': {'sources': [], 'tool': 'cxx'}, | 180 'base': {'sources': [], 'tool': 'cxx', 'include_dirs': []}, |
163 'dynamic_annotations': {'sources': [], 'tool': 'cc'}, | 181 'dynamic_annotations': {'sources': [], 'tool': 'cc', 'include_dirs': []}, |
164 'gn': {'sources': [], 'tool': 'cxx'}, | 182 'gn': {'sources': [], 'tool': 'cxx', 'include_dirs': []}, |
165 } | 183 } |
166 | 184 |
167 for name in os.listdir(GN_ROOT): | 185 for name in os.listdir(GN_ROOT): |
168 if not name.endswith('.cc'): | 186 if not name.endswith('.cc'): |
169 continue | 187 continue |
170 if name.endswith('_unittest.cc'): | 188 if name.endswith('_unittest.cc'): |
171 continue | 189 continue |
172 if name == 'run_all_unittests.cc': | 190 if name == 'run_all_unittests.cc': |
173 continue | 191 continue |
174 full_path = os.path.join(GN_ROOT, name) | 192 full_path = os.path.join(GN_ROOT, name) |
175 static_libraries['gn']['sources'].append( | 193 static_libraries['gn']['sources'].append( |
176 os.path.relpath(full_path, SRC_ROOT)) | 194 os.path.relpath(full_path, SRC_ROOT)) |
177 | 195 |
178 static_libraries['dynamic_annotations']['sources'].extend([ | 196 static_libraries['dynamic_annotations']['sources'].extend([ |
179 'base/third_party/dynamic_annotations/dynamic_annotations.c', | 197 'base/third_party/dynamic_annotations/dynamic_annotations.c', |
180 'base/third_party/superfasthash/superfasthash.c', | 198 'base/third_party/superfasthash/superfasthash.c', |
181 ]) | 199 ]) |
182 static_libraries['base']['sources'].extend([ | 200 static_libraries['base']['sources'].extend([ |
183 'base/allocator/allocator_extension.cc', | 201 'base/allocator/allocator_extension.cc', |
| 202 'base/allocator/allocator_shim.cc', |
184 'base/at_exit.cc', | 203 'base/at_exit.cc', |
185 'base/base_paths.cc', | 204 'base/base_paths.cc', |
186 'base/base_switches.cc', | 205 'base/base_switches.cc', |
187 'base/callback_internal.cc', | 206 'base/callback_internal.cc', |
188 'base/command_line.cc', | 207 'base/command_line.cc', |
189 'base/debug/alias.cc', | 208 'base/debug/alias.cc', |
190 'base/debug/stack_trace.cc', | 209 'base/debug/stack_trace.cc', |
191 'base/debug/task_annotator.cc', | 210 'base/debug/task_annotator.cc', |
192 'base/environment.cc', | 211 'base/environment.cc', |
193 'base/files/file.cc', | 212 'base/files/file.cc', |
(...skipping 19 matching lines...) Expand all Loading... |
213 'base/memory/singleton.cc', | 232 'base/memory/singleton.cc', |
214 'base/memory/weak_ptr.cc', | 233 'base/memory/weak_ptr.cc', |
215 'base/message_loop/incoming_task_queue.cc', | 234 'base/message_loop/incoming_task_queue.cc', |
216 'base/message_loop/message_loop.cc', | 235 'base/message_loop/message_loop.cc', |
217 'base/message_loop/message_loop_task_runner.cc', | 236 'base/message_loop/message_loop_task_runner.cc', |
218 'base/message_loop/message_pump.cc', | 237 'base/message_loop/message_pump.cc', |
219 'base/message_loop/message_pump_default.cc', | 238 'base/message_loop/message_pump_default.cc', |
220 'base/metrics/bucket_ranges.cc', | 239 'base/metrics/bucket_ranges.cc', |
221 'base/metrics/histogram.cc', | 240 'base/metrics/histogram.cc', |
222 'base/metrics/histogram_base.cc', | 241 'base/metrics/histogram_base.cc', |
223 'base/metrics/histogram_persistence.cc', | |
224 'base/metrics/histogram_samples.cc', | 242 'base/metrics/histogram_samples.cc', |
225 'base/metrics/metrics_hashes.cc', | 243 'base/metrics/metrics_hashes.cc', |
| 244 'base/metrics/persistent_histogram_allocator.cc', |
226 'base/metrics/persistent_memory_allocator.cc', | 245 'base/metrics/persistent_memory_allocator.cc', |
| 246 'base/metrics/persistent_sample_map.cc', |
227 'base/metrics/sample_map.cc', | 247 'base/metrics/sample_map.cc', |
228 'base/metrics/sample_vector.cc', | 248 'base/metrics/sample_vector.cc', |
229 'base/metrics/sparse_histogram.cc', | 249 'base/metrics/sparse_histogram.cc', |
230 'base/metrics/statistics_recorder.cc', | 250 'base/metrics/statistics_recorder.cc', |
231 'base/path_service.cc', | 251 'base/path_service.cc', |
232 'base/pending_task.cc', | 252 'base/pending_task.cc', |
233 'base/pickle.cc', | 253 'base/pickle.cc', |
234 'base/process/kill.cc', | 254 'base/process/kill.cc', |
235 'base/process/process_iterator.cc', | 255 'base/process/process_iterator.cc', |
236 'base/process/process_metrics.cc', | 256 'base/process/process_metrics.cc', |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 'base/threading/thread_collision_warner.cc', | 289 'base/threading/thread_collision_warner.cc', |
270 'base/threading/thread_id_name_manager.cc', | 290 'base/threading/thread_id_name_manager.cc', |
271 'base/threading/thread_local_storage.cc', | 291 'base/threading/thread_local_storage.cc', |
272 'base/threading/thread_restrictions.cc', | 292 'base/threading/thread_restrictions.cc', |
273 'base/threading/worker_pool.cc', | 293 'base/threading/worker_pool.cc', |
274 'base/time/time.cc', | 294 'base/time/time.cc', |
275 'base/timer/elapsed_timer.cc', | 295 'base/timer/elapsed_timer.cc', |
276 'base/timer/timer.cc', | 296 'base/timer/timer.cc', |
277 'base/trace_event/heap_profiler_allocation_context.cc', | 297 'base/trace_event/heap_profiler_allocation_context.cc', |
278 'base/trace_event/heap_profiler_allocation_context_tracker.cc', | 298 'base/trace_event/heap_profiler_allocation_context_tracker.cc', |
| 299 'base/trace_event/heap_profiler_allocation_register.cc', |
| 300 'base/trace_event/heap_profiler_heap_dump_writer.cc', |
279 'base/trace_event/heap_profiler_stack_frame_deduplicator.cc', | 301 'base/trace_event/heap_profiler_stack_frame_deduplicator.cc', |
280 'base/trace_event/heap_profiler_type_name_deduplicator.cc', | 302 'base/trace_event/heap_profiler_type_name_deduplicator.cc', |
281 'base/trace_event/memory_allocator_dump.cc', | 303 'base/trace_event/memory_allocator_dump.cc', |
282 'base/trace_event/memory_allocator_dump_guid.cc', | 304 'base/trace_event/memory_allocator_dump_guid.cc', |
283 'base/trace_event/memory_dump_manager.cc', | 305 'base/trace_event/memory_dump_manager.cc', |
284 'base/trace_event/memory_dump_request_args.cc', | 306 'base/trace_event/memory_dump_request_args.cc', |
285 'base/trace_event/memory_dump_session_state.cc', | 307 'base/trace_event/memory_dump_session_state.cc', |
286 'base/trace_event/process_memory_dump.cc', | 308 'base/trace_event/process_memory_dump.cc', |
287 'base/trace_event/process_memory_maps.cc', | 309 'base/trace_event/process_memory_maps.cc', |
288 'base/trace_event/process_memory_totals.cc', | 310 'base/trace_event/process_memory_totals.cc', |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 'base/synchronization/condition_variable_posix.cc', | 343 'base/synchronization/condition_variable_posix.cc', |
322 'base/synchronization/lock_impl_posix.cc', | 344 'base/synchronization/lock_impl_posix.cc', |
323 'base/synchronization/waitable_event_posix.cc', | 345 'base/synchronization/waitable_event_posix.cc', |
324 'base/sys_info_posix.cc', | 346 'base/sys_info_posix.cc', |
325 'base/threading/platform_thread_internal_posix.cc', | 347 'base/threading/platform_thread_internal_posix.cc', |
326 'base/threading/platform_thread_posix.cc', | 348 'base/threading/platform_thread_posix.cc', |
327 'base/threading/thread_local_posix.cc', | 349 'base/threading/thread_local_posix.cc', |
328 'base/threading/thread_local_storage_posix.cc', | 350 'base/threading/thread_local_storage_posix.cc', |
329 'base/threading/worker_pool_posix.cc', | 351 'base/threading/worker_pool_posix.cc', |
330 'base/time/time_posix.cc', | 352 'base/time/time_posix.cc', |
| 353 'base/trace_event/heap_profiler_allocation_register_posix.cc', |
331 ]) | 354 ]) |
332 static_libraries['libevent'] = { | 355 static_libraries['libevent'] = { |
333 'sources': [ | 356 'sources': [ |
334 'base/third_party/libevent/buffer.c', | 357 'base/third_party/libevent/buffer.c', |
335 'base/third_party/libevent/evbuffer.c', | 358 'base/third_party/libevent/evbuffer.c', |
336 'base/third_party/libevent/evdns.c', | 359 'base/third_party/libevent/evdns.c', |
337 'base/third_party/libevent/event.c', | 360 'base/third_party/libevent/event.c', |
338 'base/third_party/libevent/event_tagging.c', | 361 'base/third_party/libevent/event_tagging.c', |
339 'base/third_party/libevent/evrpc.c', | 362 'base/third_party/libevent/evrpc.c', |
340 'base/third_party/libevent/evutil.c', | 363 'base/third_party/libevent/evutil.c', |
(...skipping 14 matching lines...) Expand all Loading... |
355 libs.extend(['-lrt']) | 378 libs.extend(['-lrt']) |
356 ldflags.extend(['-pthread']) | 379 ldflags.extend(['-pthread']) |
357 | 380 |
358 static_libraries['xdg_user_dirs'] = { | 381 static_libraries['xdg_user_dirs'] = { |
359 'sources': [ | 382 'sources': [ |
360 'base/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc', | 383 'base/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc', |
361 ], | 384 ], |
362 'tool': 'cxx', | 385 'tool': 'cxx', |
363 } | 386 } |
364 static_libraries['base']['sources'].extend([ | 387 static_libraries['base']['sources'].extend([ |
| 388 'base/allocator/allocator_shim_default_dispatch_to_glibc.cc', |
365 'base/memory/shared_memory_posix.cc', | 389 'base/memory/shared_memory_posix.cc', |
366 'base/nix/xdg_util.cc', | 390 'base/nix/xdg_util.cc', |
367 'base/process/internal_linux.cc', | 391 'base/process/internal_linux.cc', |
368 'base/process/process_handle_linux.cc', | 392 'base/process/process_handle_linux.cc', |
369 'base/process/process_iterator_linux.cc', | 393 'base/process/process_iterator_linux.cc', |
370 'base/process/process_linux.cc', | 394 'base/process/process_linux.cc', |
371 'base/process/process_metrics_linux.cc', | 395 'base/process/process_metrics_linux.cc', |
372 'base/strings/sys_string_conversions_posix.cc', | 396 'base/strings/sys_string_conversions_posix.cc', |
373 'base/sys_info_linux.cc', | 397 'base/sys_info_linux.cc', |
374 'base/threading/platform_thread_linux.cc', | 398 'base/threading/platform_thread_linux.cc', |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 cmd.append('-v') | 512 cmd.append('-v') |
489 cmd.append('gn') | 513 cmd.append('gn') |
490 check_call(cmd) | 514 check_call(cmd) |
491 | 515 |
492 if not options.debug: | 516 if not options.debug: |
493 check_call(['strip', os.path.join(build_dir, 'gn')]) | 517 check_call(['strip', os.path.join(build_dir, 'gn')]) |
494 | 518 |
495 | 519 |
496 if __name__ == '__main__': | 520 if __name__ == '__main__': |
497 sys.exit(main(sys.argv[1:])) | 521 sys.exit(main(sys.argv[1:])) |
OLD | NEW |