• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2012 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5{
6  'variables': {
7    'chromium_code': 1,
8  },
9  'includes': [
10    '../build/win_precompile.gypi',
11    'base.gypi',
12  ],
13  'targets': [
14    {
15      'target_name': 'base',
16      'type': '<(component)',
17      'toolsets': ['host', 'target'],
18      'variables': {
19        'base_target': 1,
20        'enable_wexit_time_destructors': 1,
21        'optimize': 'max',
22      },
23      'dependencies': [
24        'base_static',
25        'allocator/allocator.gyp:allocator_extension_thunks',
26        '../testing/gtest.gyp:gtest_prod',
27        '../third_party/modp_b64/modp_b64.gyp:modp_b64',
28        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
29      ],
30      # TODO(gregoryd): direct_dependent_settings should be shared with the
31      #  64-bit target, but it doesn't work due to a bug in gyp
32      'direct_dependent_settings': {
33        'include_dirs': [
34          '..',
35        ],
36      },
37      'conditions': [
38        ['desktop_linux == 1 or chromeos == 1', {
39          'conditions': [
40            ['chromeos==1', {
41              'sources/': [ ['include', '_chromeos\\.cc$'] ]
42            }],
43          ],
44          'dependencies': [
45            'symbolize',
46            'xdg_mime',
47          ],
48          'defines': [
49            'USE_SYMBOLIZE',
50          ],
51        }, {  # desktop_linux == 0 and chromeos == 0
52            'sources/': [
53              ['exclude', '/xdg_user_dirs/'],
54              ['exclude', '_nss\\.cc$'],
55            ],
56        }],
57        ['use_glib==1', {
58          'dependencies': [
59            '../build/linux/system.gyp:glib',
60          ],
61          'export_dependent_settings': [
62            '../build/linux/system.gyp:glib',
63          ],
64        }],
65        ['OS == "android" and _toolset == "host"', {
66          # Always build base as a static_library for host toolset, even if
67          # we're doing a component build. Specifically, we only care about the
68          # target toolset using components since that's what developers are
69          # focusing on. In theory we should do this more generally for all
70          # targets when building for host, but getting the gyp magic
71          # per-toolset for the "component" variable is hard, and we really only
72          # need base on host.
73          'type': 'static_library',
74          # Base for host support is the minimum required to run the
75          # ssl false start blacklist tool. It requires further changes
76          # to generically support host builds (and tests).
77          # Note: when building for host, gyp has OS == "android",
78          # hence the *_android.cc files are included but the actual code
79          # doesn't have OS_ANDROID / ANDROID defined.
80          'conditions': [
81            ['host_os == "mac"', {
82              'sources/': [
83                ['exclude', '^native_library_linux\\.cc$'],
84                ['exclude', '^process_util_linux\\.cc$'],
85                ['exclude', '^sys_info_linux\\.cc$'],
86                ['exclude', '^sys_string_conversions_linux\\.cc$'],
87                ['exclude', '^worker_pool_linux\\.cc$'],
88              ],
89            }],
90          ],
91        }],
92        ['OS == "android" and _toolset == "target"', {
93          'conditions': [
94            ['target_arch == "ia32" or target_arch == "x64"', {
95              'sources/': [
96                ['include', '^atomicops_internals_x86_gcc\\.cc$'],
97              ],
98            }],
99            ['target_arch == "mipsel"', {
100              'sources/': [
101                ['include', '^atomicops_internals_mips_gcc\\.cc$'],
102              ],
103            }],
104          ],
105          'dependencies': [
106            'base_jni_headers',
107            '../third_party/ashmem/ashmem.gyp:ashmem',
108          ],
109          'link_settings': {
110            'libraries': [
111              '-llog',
112            ],
113          },
114          'sources!': [
115            'debug/stack_trace_posix.cc',
116          ],
117          'includes': [
118            '../build/android/cpufeatures.gypi',
119          ],
120        }],
121        ['OS == "android" and _toolset == "target" and android_webview_build == 0', {
122          'dependencies': [
123            'base_java',
124          ],
125        }],
126        ['os_bsd==1', {
127          'include_dirs': [
128            '/usr/local/include',
129          ],
130          'link_settings': {
131            'libraries': [
132              '-L/usr/local/lib -lexecinfo',
133            ],
134          },
135        }],
136        ['OS == "linux"', {
137          'link_settings': {
138            'libraries': [
139              # We need rt for clock_gettime().
140              '-lrt',
141              # For 'native_library_linux.cc'
142              '-ldl',
143            ],
144          },
145          'conditions': [
146            ['use_allocator!="tcmalloc"', {
147              'defines': [
148                'NO_TCMALLOC',
149              ],
150              'direct_dependent_settings': {
151                'defines': [
152                  'NO_TCMALLOC',
153                ],
154              },
155            }],
156          ],
157        }],
158        ['OS == "win"', {
159          # Specify delayload for base.dll.
160          'msvs_settings': {
161            'VCLinkerTool': {
162              'DelayLoadDLLs': [
163                'powrprof.dll',
164              ],
165              'AdditionalDependencies': [
166                'powrprof.lib',
167              ],
168            },
169          },
170          # Specify delayload for components that link with base.lib.
171          'all_dependent_settings': {
172            'msvs_settings': {
173              'VCLinkerTool': {
174                'DelayLoadDLLs': [
175                  'powrprof.dll',
176                ],
177                'AdditionalDependencies': [
178                  'powrprof.lib',
179                ],
180              },
181            },
182          },
183        }],
184        ['OS == "mac" or (OS == "ios" and _toolset == "host")', {
185          'link_settings': {
186            'libraries': [
187              '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
188              '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework',
189              '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
190              '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
191              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
192              '$(SDKROOT)/System/Library/Frameworks/IOKit.framework',
193              '$(SDKROOT)/System/Library/Frameworks/Security.framework',
194            ],
195          },
196          'dependencies': [
197            '../third_party/mach_override/mach_override.gyp:mach_override',
198          ],
199        }],
200        ['OS == "ios" and _toolset != "host"', {
201          'link_settings': {
202            'libraries': [
203              '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
204              '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
205              '$(SDKROOT)/System/Library/Frameworks/CoreText.framework',
206              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
207              '$(SDKROOT)/System/Library/Frameworks/UIKit.framework',
208            ],
209          },
210        }],
211        ['OS != "win" and OS != "ios"', {
212            'dependencies': ['../third_party/libevent/libevent.gyp:libevent'],
213        },],
214        ['component=="shared_library"', {
215          'conditions': [
216            ['OS=="win"', {
217              'sources!': [
218                'debug/debug_on_start_win.cc',
219              ],
220            }],
221          ],
222        }],
223      ],
224      'sources': [
225        'third_party/xdg_user_dirs/xdg_user_dir_lookup.cc',
226        'third_party/xdg_user_dirs/xdg_user_dir_lookup.h',
227        'async_socket_io_handler.h',
228        'async_socket_io_handler_posix.cc',
229        'async_socket_io_handler_win.cc',
230        'auto_reset.h',
231        'event_recorder.h',
232        'event_recorder_stubs.cc',
233        'event_recorder_win.cc',
234        'linux_util.cc',
235        'linux_util.h',
236        'message_loop/message_pump_android.cc',
237        'message_loop/message_pump_android.h',
238        'message_loop/message_pump_glib.cc',
239        'message_loop/message_pump_glib.h',
240        'message_loop/message_pump_io_ios.cc',
241        'message_loop/message_pump_io_ios.h',
242        'message_loop/message_pump_libevent.cc',
243        'message_loop/message_pump_libevent.h',
244        'message_loop/message_pump_mac.h',
245        'message_loop/message_pump_mac.mm',
246        'metrics/field_trial.cc',
247        'metrics/field_trial.h',
248        'posix/file_descriptor_shuffle.cc',
249        'posix/file_descriptor_shuffle.h',
250        'sync_socket.h',
251        'sync_socket_win.cc',
252        'sync_socket_posix.cc',
253      ],
254      'includes': [
255        '../build/android/increase_size_for_speed.gypi',
256      ],
257    },
258    {
259      'target_name': 'base_i18n',
260      'type': '<(component)',
261      'variables': {
262        'enable_wexit_time_destructors': 1,
263        'optimize': 'max',
264        'base_i18n_target': 1,
265      },
266      'dependencies': [
267        'base',
268        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
269        '../third_party/icu/icu.gyp:icui18n',
270        '../third_party/icu/icu.gyp:icuuc',
271      ],
272      'conditions': [
273        ['OS == "win"', {
274          # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
275          'msvs_disabled_warnings': [
276            4267,
277          ],
278        }],
279        ['icu_use_data_file_flag==1', {
280          'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE'],
281        }, { # else icu_use_data_file_flag !=1
282          'conditions': [
283            ['OS=="win"', {
284              'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED'],
285            }, {
286              'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC'],
287            }],
288          ],
289        }],
290      ],
291      'export_dependent_settings': [
292        'base',
293      ],
294      'includes': [
295        '../build/android/increase_size_for_speed.gypi',
296      ],
297    },
298    {
299      'target_name': 'base_message_loop_tests',
300      'type': 'static_library',
301      'dependencies': [
302        'base',
303        '../testing/gtest.gyp:gtest',
304      ],
305      'sources': [
306        'message_loop/message_loop_test.cc',
307        'message_loop/message_loop_test.h',
308      ],
309    },
310    {
311      'target_name': 'base_prefs',
312      'type': '<(component)',
313      'variables': {
314        'enable_wexit_time_destructors': 1,
315        'optimize': 'max',
316      },
317      'dependencies': [
318        'base',
319      ],
320      'export_dependent_settings': [
321        'base',
322      ],
323      'defines': [
324        'BASE_PREFS_IMPLEMENTATION',
325      ],
326      'sources': [
327        'prefs/base_prefs_export.h',
328        'prefs/default_pref_store.cc',
329        'prefs/default_pref_store.h',
330        'prefs/json_pref_store.cc',
331        'prefs/json_pref_store.h',
332        'prefs/overlay_user_pref_store.cc',
333        'prefs/overlay_user_pref_store.h',
334        'prefs/persistent_pref_store.h',
335        'prefs/pref_change_registrar.cc',
336        'prefs/pref_change_registrar.h',
337        'prefs/pref_filter.h',
338        'prefs/pref_member.cc',
339        'prefs/pref_member.h',
340        'prefs/pref_notifier.h',
341        'prefs/pref_notifier_impl.cc',
342        'prefs/pref_notifier_impl.h',
343        'prefs/pref_observer.h',
344        'prefs/pref_registry.cc',
345        'prefs/pref_registry.h',
346        'prefs/pref_registry_simple.cc',
347        'prefs/pref_registry_simple.h',
348        'prefs/pref_service.cc',
349        'prefs/pref_service.h',
350        'prefs/pref_service_factory.cc',
351        'prefs/pref_service_factory.h',
352        'prefs/pref_store.cc',
353        'prefs/pref_store.h',
354        'prefs/pref_value_map.cc',
355        'prefs/pref_value_map.h',
356        'prefs/pref_value_store.cc',
357        'prefs/pref_value_store.h',
358        'prefs/scoped_user_pref_update.cc',
359        'prefs/scoped_user_pref_update.h',
360        'prefs/value_map_pref_store.cc',
361        'prefs/value_map_pref_store.h',
362        'prefs/writeable_pref_store.h',
363      ],
364      'includes': [
365        '../build/android/increase_size_for_speed.gypi',
366      ],
367    },
368    {
369      'target_name': 'base_prefs_test_support',
370      'type': 'static_library',
371      'dependencies': [
372        'base',
373        'base_prefs',
374        '../testing/gmock.gyp:gmock',
375      ],
376      'sources': [
377        'prefs/mock_pref_change_callback.cc',
378        'prefs/pref_store_observer_mock.cc',
379        'prefs/pref_store_observer_mock.h',
380        'prefs/testing_pref_service.cc',
381        'prefs/testing_pref_service.h',
382        'prefs/testing_pref_store.cc',
383        'prefs/testing_pref_store.h',
384      ],
385    },
386    {
387      # This is the subset of files from base that should not be used with a
388      # dynamic library. Note that this library cannot depend on base because
389      # base depends on base_static.
390      'target_name': 'base_static',
391      'type': 'static_library',
392      'variables': {
393        'enable_wexit_time_destructors': 1,
394        'optimize': 'max',
395      },
396      'toolsets': ['host', 'target'],
397      'sources': [
398        'base_switches.cc',
399        'base_switches.h',
400        'win/pe_image.cc',
401        'win/pe_image.h',
402      ],
403      'include_dirs': [
404        '..',
405      ],
406      'includes': [
407        '../build/android/increase_size_for_speed.gypi',
408      ],
409    },
410    # Include this target for a main() function that simply instantiates
411    # and runs a base::TestSuite.
412    {
413      'target_name': 'run_all_unittests',
414      'type': 'static_library',
415      'dependencies': [
416        'test_support_base',
417      ],
418      'sources': [
419        'test/run_all_unittests.cc',
420      ],
421    },
422    {
423      'target_name': 'base_unittests',
424      'type': '<(gtest_target_type)',
425      'sources': [
426        'android/application_status_listener_unittest.cc',
427        'android/jni_android_unittest.cc',
428        'android/jni_array_unittest.cc',
429        'android/jni_string_unittest.cc',
430        'android/path_utils_unittest.cc',
431        'android/scoped_java_ref_unittest.cc',
432        'android/sys_utils_unittest.cc',
433        'async_socket_io_handler_unittest.cc',
434        'at_exit_unittest.cc',
435        'atomicops_unittest.cc',
436        'barrier_closure_unittest.cc',
437        'base64_unittest.cc',
438        'big_endian_unittest.cc',
439        'bind_unittest.cc',
440        'bind_unittest.nc',
441        'bits_unittest.cc',
442        'build_time_unittest.cc',
443        'callback_helpers_unittest.cc',
444        'callback_list_unittest.cc',
445        'callback_list_unittest.nc',
446        'callback_unittest.cc',
447        'callback_unittest.nc',
448        'cancelable_callback_unittest.cc',
449        'command_line_unittest.cc',
450        'containers/hash_tables_unittest.cc',
451        'containers/linked_list_unittest.cc',
452        'containers/mru_cache_unittest.cc',
453        'containers/small_map_unittest.cc',
454        'containers/stack_container_unittest.cc',
455        'cpu_unittest.cc',
456        'debug/crash_logging_unittest.cc',
457        'debug/leak_tracker_unittest.cc',
458        'debug/proc_maps_linux_unittest.cc',
459        'debug/stack_trace_unittest.cc',
460        'debug/task_annotator_unittest.cc',
461        'debug/trace_event_argument_unittest.cc',
462        'debug/trace_event_memory_unittest.cc',
463        'debug/trace_event_synthetic_delay_unittest.cc',
464        'debug/trace_event_system_stats_monitor_unittest.cc',
465        'debug/trace_event_unittest.cc',
466        'debug/trace_event_unittest.h',
467        'debug/trace_event_win_unittest.cc',
468        'deferred_sequenced_task_runner_unittest.cc',
469        'environment_unittest.cc',
470        'file_version_info_unittest.cc',
471        'files/dir_reader_posix_unittest.cc',
472        'files/file_path_unittest.cc',
473        'files/file_proxy_unittest.cc',
474        'files/file_unittest.cc',
475        'files/file_util_proxy_unittest.cc',
476        'files/file_util_unittest.cc',
477        'files/important_file_writer_unittest.cc',
478        'files/memory_mapped_file_unittest.cc',
479        'files/scoped_temp_dir_unittest.cc',
480        'gmock_unittest.cc',
481        'guid_unittest.cc',
482        'hash_unittest.cc',
483        'id_map_unittest.cc',
484        'i18n/break_iterator_unittest.cc',
485        'i18n/char_iterator_unittest.cc',
486        'i18n/case_conversion_unittest.cc',
487        'i18n/file_util_icu_unittest.cc',
488        'i18n/icu_string_conversions_unittest.cc',
489        'i18n/number_formatting_unittest.cc',
490        'i18n/rtl_unittest.cc',
491        'i18n/streaming_utf8_validator_unittest.cc',
492        'i18n/string_search_unittest.cc',
493        'i18n/time_formatting_unittest.cc',
494        'i18n/timezone_unittest.cc',
495        'ios/device_util_unittest.mm',
496        'json/json_parser_unittest.cc',
497        'json/json_reader_unittest.cc',
498        'json/json_value_converter_unittest.cc',
499        'json/json_value_serializer_unittest.cc',
500        'json/json_writer_unittest.cc',
501        'json/string_escape_unittest.cc',
502        'lazy_instance_unittest.cc',
503        'logging_unittest.cc',
504        'mac/bind_objc_block_unittest.mm',
505        'mac/foundation_util_unittest.mm',
506        'mac/libdispatch_task_runner_unittest.cc',
507        'mac/mac_util_unittest.mm',
508        'mac/objc_property_releaser_unittest.mm',
509        'mac/scoped_nsobject_unittest.mm',
510        'mac/scoped_objc_class_swizzler_unittest.mm',
511        'mac/scoped_sending_event_unittest.mm',
512        'md5_unittest.cc',
513        'memory/aligned_memory_unittest.cc',
514        'memory/discardable_memory_manager_unittest.cc',
515        'memory/discardable_memory_unittest.cc',
516        'memory/linked_ptr_unittest.cc',
517        'memory/ref_counted_memory_unittest.cc',
518        'memory/ref_counted_unittest.cc',
519        'memory/scoped_ptr_unittest.cc',
520        'memory/scoped_ptr_unittest.nc',
521        'memory/scoped_vector_unittest.cc',
522        'memory/shared_memory_unittest.cc',
523        'memory/singleton_unittest.cc',
524        'memory/weak_ptr_unittest.cc',
525        'memory/weak_ptr_unittest.nc',
526        'message_loop/message_loop_proxy_impl_unittest.cc',
527        'message_loop/message_loop_proxy_unittest.cc',
528        'message_loop/message_loop_unittest.cc',
529        'message_loop/message_pump_glib_unittest.cc',
530        'message_loop/message_pump_io_ios_unittest.cc',
531        'message_loop/message_pump_libevent_unittest.cc',
532        'metrics/sample_map_unittest.cc',
533        'metrics/sample_vector_unittest.cc',
534        'metrics/bucket_ranges_unittest.cc',
535        'metrics/field_trial_unittest.cc',
536        'metrics/histogram_base_unittest.cc',
537        'metrics/histogram_delta_serialization_unittest.cc',
538        'metrics/histogram_snapshot_manager_unittest.cc',
539        'metrics/histogram_unittest.cc',
540        'metrics/sparse_histogram_unittest.cc',
541        'metrics/stats_table_unittest.cc',
542        'metrics/statistics_recorder_unittest.cc',
543        'observer_list_unittest.cc',
544        'os_compat_android_unittest.cc',
545        'path_service_unittest.cc',
546        'pickle_unittest.cc',
547        'posix/file_descriptor_shuffle_unittest.cc',
548        'posix/unix_domain_socket_linux_unittest.cc',
549        'power_monitor/power_monitor_unittest.cc',
550        'prefs/default_pref_store_unittest.cc',
551        'prefs/json_pref_store_unittest.cc',
552        'prefs/mock_pref_change_callback.h',
553        'prefs/overlay_user_pref_store_unittest.cc',
554        'prefs/pref_change_registrar_unittest.cc',
555        'prefs/pref_member_unittest.cc',
556        'prefs/pref_notifier_impl_unittest.cc',
557        'prefs/pref_service_unittest.cc',
558        'prefs/pref_value_map_unittest.cc',
559        'prefs/pref_value_store_unittest.cc',
560        'prefs/scoped_user_pref_update_unittest.cc',
561        'process/memory_unittest.cc',
562        'process/memory_unittest_mac.h',
563        'process/memory_unittest_mac.mm',
564        'process/process_metrics_unittest.cc',
565        'process/process_metrics_unittest_ios.cc',
566        'process/process_util_unittest.cc',
567        'profiler/tracked_time_unittest.cc',
568        'rand_util_unittest.cc',
569        'numerics/safe_numerics_unittest.cc',
570        'scoped_clear_errno_unittest.cc',
571        'scoped_generic_unittest.cc',
572        'scoped_native_library_unittest.cc',
573        'security_unittest.cc',
574        'sequence_checker_unittest.cc',
575        'sha1_unittest.cc',
576        'stl_util_unittest.cc',
577        'strings/nullable_string16_unittest.cc',
578        'strings/safe_sprintf_unittest.cc',
579        'strings/string16_unittest.cc',
580        'strings/stringprintf_unittest.cc',
581        'strings/string_number_conversions_unittest.cc',
582        'strings/string_piece_unittest.cc',
583        'strings/string_split_unittest.cc',
584        'strings/string_tokenizer_unittest.cc',
585        'strings/string_util_unittest.cc',
586        'strings/stringize_macros_unittest.cc',
587        'strings/sys_string_conversions_mac_unittest.mm',
588        'strings/sys_string_conversions_unittest.cc',
589        'strings/utf_offset_string_conversions_unittest.cc',
590        'strings/utf_string_conversions_unittest.cc',
591        'supports_user_data_unittest.cc',
592        'sync_socket_unittest.cc',
593        'synchronization/cancellation_flag_unittest.cc',
594        'synchronization/condition_variable_unittest.cc',
595        'synchronization/lock_unittest.cc',
596        'synchronization/waitable_event_unittest.cc',
597        'synchronization/waitable_event_watcher_unittest.cc',
598        'sys_info_unittest.cc',
599        'system_monitor/system_monitor_unittest.cc',
600        'task/cancelable_task_tracker_unittest.cc',
601        'task_runner_util_unittest.cc',
602        'template_util_unittest.cc',
603        'test/expectations/expectation_unittest.cc',
604        'test/expectations/parser_unittest.cc',
605        'test/histogram_tester_unittest.cc',
606        'test/test_pending_task_unittest.cc',
607        'test/test_reg_util_win_unittest.cc',
608        'test/trace_event_analyzer_unittest.cc',
609        'threading/non_thread_safe_unittest.cc',
610        'threading/platform_thread_unittest.cc',
611        'threading/sequenced_worker_pool_unittest.cc',
612        'threading/simple_thread_unittest.cc',
613        'threading/thread_checker_unittest.cc',
614        'threading/thread_collision_warner_unittest.cc',
615        'threading/thread_id_name_manager_unittest.cc',
616        'threading/thread_local_storage_unittest.cc',
617        'threading/thread_local_unittest.cc',
618        'threading/thread_unittest.cc',
619        'threading/watchdog_unittest.cc',
620        'threading/worker_pool_posix_unittest.cc',
621        'threading/worker_pool_unittest.cc',
622        'time/pr_time_unittest.cc',
623        'time/time_unittest.cc',
624        'time/time_win_unittest.cc',
625        'timer/hi_res_timer_manager_unittest.cc',
626        'timer/mock_timer_unittest.cc',
627        'timer/timer_unittest.cc',
628        'tools_sanity_unittest.cc',
629        'tracked_objects_unittest.cc',
630        'tuple_unittest.cc',
631        'values_unittest.cc',
632        'version_unittest.cc',
633        'vlog_unittest.cc',
634        'win/dllmain.cc',
635        'win/enum_variant_unittest.cc',
636        'win/event_trace_consumer_unittest.cc',
637        'win/event_trace_controller_unittest.cc',
638        'win/event_trace_provider_unittest.cc',
639        'win/i18n_unittest.cc',
640        'win/iunknown_impl_unittest.cc',
641        'win/message_window_unittest.cc',
642        'win/object_watcher_unittest.cc',
643        'win/pe_image_unittest.cc',
644        'win/registry_unittest.cc',
645        'win/scoped_bstr_unittest.cc',
646        'win/scoped_comptr_unittest.cc',
647        'win/scoped_process_information_unittest.cc',
648        'win/scoped_variant_unittest.cc',
649        'win/shortcut_unittest.cc',
650        'win/startup_information_unittest.cc',
651        'win/win_util_unittest.cc',
652        'win/wrapped_window_proc_unittest.cc',
653      ],
654      'dependencies': [
655        'base',
656        'base_i18n',
657        'base_message_loop_tests',
658        'base_prefs',
659        'base_prefs_test_support',
660        'base_static',
661        'run_all_unittests',
662        'test_support_base',
663        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
664        '../testing/gmock.gyp:gmock',
665        '../testing/gtest.gyp:gtest',
666        '../third_party/icu/icu.gyp:icui18n',
667        '../third_party/icu/icu.gyp:icuuc',
668      ],
669      'includes': ['../build/nocompile.gypi'],
670      'variables': {
671         # TODO(ajwong): Is there a way to autodetect this?
672        'module_dir': 'base'
673      },
674      'conditions': [
675        ['OS == "android"', {
676          'dependencies': [
677            'android/jni_generator/jni_generator.gyp:jni_generator_tests',
678            '../testing/android/native_test.gyp:native_test_native_code',
679          ],
680        }],
681        ['OS == "ios" and _toolset != "host"', {
682          'sources/': [
683            # Only test the iOS-meaningful portion of process_utils.
684            ['exclude', '^process/memory_unittest'],
685            ['exclude', '^process/process_util_unittest\\.cc$'],
686            ['include', '^process/process_util_unittest_ios\\.cc$'],
687            # Requires spawning processes.
688            ['exclude', '^metrics/stats_table_unittest\\.cc$'],
689            # iOS does not use message_pump_libevent.
690            ['exclude', '^message_loop/message_pump_libevent_unittest\\.cc$'],
691          ],
692          'actions': [
693            {
694              'action_name': 'copy_test_data',
695              'variables': {
696                'test_data_files': [
697                  'test/data',
698                ],
699                'test_data_prefix': 'base',
700              },
701              'includes': [ '../build/copy_test_data_ios.gypi' ],
702            },
703          ],
704        }],
705        ['desktop_linux == 1 or chromeos == 1', {
706          'defines': [
707            'USE_SYMBOLIZE',
708          ],
709          'sources!': [
710            'file_version_info_unittest.cc',
711          ],
712          'conditions': [
713            [ 'desktop_linux==1', {
714              'sources': [
715                'nix/xdg_util_unittest.cc',
716              ],
717            }],
718          ],
719        }],
720        ['use_glib == 1', {
721          'dependencies': [
722            '../build/linux/system.gyp:glib',
723          ],
724        }, {  # use_glib == 0
725          'sources!': [
726            'message_loop/message_pump_glib_unittest.cc',
727          ]
728        }],
729        ['use_ozone == 1', {
730          'sources!': [
731            'message_loop/message_pump_glib_unittest.cc',
732          ]
733        }],
734        ['OS == "linux" and use_allocator!="none"', {
735            'dependencies': [
736              'allocator/allocator.gyp:allocator',
737            ],
738          },
739        ],
740        ['OS == "win"', {
741          'sources!': [
742            'file_descriptor_shuffle_unittest.cc',
743            'files/dir_reader_posix_unittest.cc',
744            'threading/worker_pool_posix_unittest.cc',
745            'message_loop/message_pump_libevent_unittest.cc',
746          ],
747          # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
748          'msvs_disabled_warnings': [
749            4267,
750          ],
751          'conditions': [
752            # This is needed so base_unittests uses the allocator shim, as
753            # SecurityTest.MemoryAllocationRestriction* tests are dependent
754            # on tcmalloc.
755            # TODO(wfh): crbug.com/246278 Move tcmalloc specific tests into
756            # their own test suite.
757            ['win_use_allocator_shim==1', {
758              'dependencies': [
759                'allocator/allocator.gyp:allocator',
760              ],
761            }],
762            ['icu_use_data_file_flag==0', {
763              # This is needed to trigger the dll copy step on windows.
764              # TODO(mark): This should not be necessary.
765              'dependencies': [
766                '../third_party/icu/icu.gyp:icudata',
767              ],
768            }],
769            ['incremental_chrome_dll', {
770              'defines': [
771                # Used only to workaround a linker bug, do not use this
772                # otherwise, and don't make it broader scope. See
773                # http://crbug.com/251251.
774                'INCREMENTAL_LINKING',
775              ],
776            }],
777          ],
778        }, {  # OS != "win"
779          'dependencies': [
780            '../third_party/libevent/libevent.gyp:libevent'
781          ],
782        }],
783      ],  # conditions
784      'target_conditions': [
785        ['OS == "ios" and _toolset != "host"', {
786          'sources/': [
787            # Pull in specific Mac files for iOS (which have been filtered out
788            # by file name rules).
789            ['include', '^mac/bind_objc_block_unittest\\.mm$'],
790            ['include', '^mac/foundation_util_unittest\\.mm$',],
791            ['include', '^mac/objc_property_releaser_unittest\\.mm$'],
792            ['include', '^mac/scoped_nsobject_unittest\\.mm$'],
793            ['include', '^sys_string_conversions_mac_unittest\\.mm$'],
794          ],
795        }],
796        ['OS == "android" and _toolset == "target"', {
797          'sources': [
798            'memory/discardable_memory_ashmem_allocator_unittest.cc',
799          ],
800        }],
801        ['OS == "android"', {
802          'sources/': [
803            ['include', '^debug/proc_maps_linux_unittest\\.cc$'],
804          ],
805        }],
806      ],  # target_conditions
807    },
808    {
809      'target_name': 'base_perftests',
810      'type': '<(gtest_target_type)',
811      'dependencies': [
812        'base',
813        'test_support_base',
814        '../testing/gtest.gyp:gtest',
815      ],
816      'sources': [
817        'threading/thread_perftest.cc',
818        'test/run_all_unittests.cc',
819        '../testing/perf/perf_test.cc'
820      ],
821      'conditions': [
822        ['OS == "android"', {
823          'dependencies': [
824            '../testing/android/native_test.gyp:native_test_native_code',
825          ],
826        }],
827      ],
828    },
829    {
830      'target_name': 'base_i18n_perftests',
831      'type': '<(gtest_target_type)',
832      'dependencies': [
833        'test_support_base',
834        'test_support_perf',
835        '../testing/gtest.gyp:gtest',
836        'base_i18n',
837        'base',
838      ],
839      'sources': [
840        'i18n/streaming_utf8_validator_perftest.cc',
841      ],
842    },
843    {
844      # GN: //base/test:test_support
845      'target_name': 'test_support_base',
846      'type': 'static_library',
847      'dependencies': [
848        'base',
849        'base_static',
850        'base_i18n',
851        '../testing/gmock.gyp:gmock',
852        '../testing/gtest.gyp:gtest',
853        '../third_party/libxml/libxml.gyp:libxml',
854        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
855      ],
856      'export_dependent_settings': [
857        'base',
858      ],
859      'conditions': [
860        ['os_posix==0', {
861          'sources!': [
862            'test/scoped_locale.cc',
863            'test/scoped_locale.h',
864          ],
865        }],
866        ['os_bsd==1', {
867          'sources!': [
868            'test/test_file_util_linux.cc',
869          ],
870        }],
871        ['OS == "android"', {
872          'dependencies': [
873            'base_unittests_jni_headers',
874            'base_java_unittest_support',
875          ],
876        }],
877      ],
878      'sources': [
879        'test/expectations/expectation.cc',
880        'test/expectations/expectation.h',
881        'test/expectations/parser.cc',
882        'test/expectations/parser.h',
883        'test/gtest_xml_util.cc',
884        'test/gtest_xml_util.h',
885        'test/launcher/test_launcher.cc',
886        'test/launcher/test_launcher.h',
887        'test/launcher/test_result.cc',
888        'test/launcher/test_result.h',
889        'test/launcher/test_results_tracker.cc',
890        'test/launcher/test_results_tracker.h',
891        'test/launcher/unit_test_launcher.cc',
892        'test/launcher/unit_test_launcher.h',
893        'test/launcher/unit_test_launcher_ios.cc',
894        'test/mock_chrome_application_mac.h',
895        'test/mock_chrome_application_mac.mm',
896        'test/mock_devices_changed_observer.cc',
897        'test/mock_devices_changed_observer.h',
898        'test/mock_time_provider.cc',
899        'test/mock_time_provider.h',
900        'test/multiprocess_test.cc',
901        'test/multiprocess_test.h',
902        'test/multiprocess_test_android.cc',
903        'test/null_task_runner.cc',
904        'test/null_task_runner.h',
905        'test/perf_log.cc',
906        'test/perf_log.h',
907        'test/perf_test_suite.cc',
908        'test/perf_test_suite.h',
909        'test/perf_time_logger.cc',
910        'test/perf_time_logger.h',
911        'test/power_monitor_test_base.cc',
912        'test/power_monitor_test_base.h',
913        'test/scoped_locale.cc',
914        'test/scoped_locale.h',
915        'test/scoped_path_override.cc',
916        'test/scoped_path_override.h',
917        'test/sequenced_task_runner_test_template.cc',
918        'test/sequenced_task_runner_test_template.h',
919        'test/sequenced_worker_pool_owner.cc',
920        'test/sequenced_worker_pool_owner.h',
921        'test/simple_test_clock.cc',
922        'test/simple_test_clock.h',
923        'test/simple_test_tick_clock.cc',
924        'test/simple_test_tick_clock.h',
925        'test/histogram_tester.cc',
926        'test/histogram_tester.h',
927        'test/task_runner_test_template.cc',
928        'test/task_runner_test_template.h',
929        'test/test_file_util.cc',
930        'test/test_file_util.h',
931        'test/test_file_util_android.cc',
932        'test/test_file_util_linux.cc',
933        'test/test_file_util_mac.cc',
934        'test/test_file_util_posix.cc',
935        'test/test_file_util_win.cc',
936        'test/test_io_thread.cc',
937        'test/test_io_thread.h',
938        'test/test_listener_ios.h',
939        'test/test_listener_ios.mm',
940        'test/test_pending_task.cc',
941        'test/test_pending_task.h',
942        'test/test_reg_util_win.cc',
943        'test/test_reg_util_win.h',
944        'test/test_shortcut_win.cc',
945        'test/test_shortcut_win.h',
946        'test/test_simple_task_runner.cc',
947        'test/test_simple_task_runner.h',
948        'test/test_suite.cc',
949        'test/test_suite.h',
950        'test/test_support_android.cc',
951        'test/test_support_android.h',
952        'test/test_support_ios.h',
953        'test/test_support_ios.mm',
954        'test/test_switches.cc',
955        'test/test_switches.h',
956        'test/test_timeouts.cc',
957        'test/test_timeouts.h',
958        'test/thread_test_helper.cc',
959        'test/thread_test_helper.h',
960        'test/trace_event_analyzer.cc',
961        'test/trace_event_analyzer.h',
962        'test/trace_to_file.cc',
963        'test/trace_to_file.h',
964        'test/values_test_util.cc',
965        'test/values_test_util.h',
966      ],
967      'target_conditions': [
968        ['OS == "ios"', {
969          'sources/': [
970            # Pull in specific Mac files for iOS (which have been filtered out
971            # by file name rules).
972            ['include', '^test/test_file_util_mac\\.cc$'],
973          ],
974          'sources!': [
975            # iOS uses its own unit test launcher.
976            'test/launcher/unit_test_launcher.cc',
977          ],
978        }],
979      ],  # target_conditions
980    },
981    {
982      'target_name': 'test_support_perf',
983      'type': 'static_library',
984      'dependencies': [
985        'base',
986        'test_support_base',
987        '../testing/gtest.gyp:gtest',
988      ],
989      'sources': [
990        'test/run_all_perftests.cc',
991      ],
992      'direct_dependent_settings': {
993        'defines': [
994          'PERF_TEST',
995        ],
996      },
997    },
998  ],
999  'conditions': [
1000    ['OS!="ios"', {
1001      'targets': [
1002        {
1003          'target_name': 'check_example',
1004          'type': 'executable',
1005          'sources': [
1006            'check_example.cc',
1007          ],
1008          'dependencies': [
1009            'base',
1010          ],
1011        },
1012        {
1013          'target_name': 'build_utf8_validator_tables',
1014          'type': 'executable',
1015          'toolsets': ['host'],
1016          'dependencies': [
1017            'base',
1018            '../third_party/icu/icu.gyp:icuuc',
1019          ],
1020          'sources': [
1021            'i18n/build_utf8_validator_tables.cc'
1022          ],
1023        },
1024      ],
1025    }],
1026    ['OS == "win" and target_arch=="ia32"', {
1027      'targets': [
1028        # The base_win64 target here allows us to use base for Win64 targets
1029        # (the normal build is 32 bits).
1030        {
1031          'target_name': 'base_win64',
1032          'type': '<(component)',
1033          'variables': {
1034            'base_target': 1,
1035          },
1036          'dependencies': [
1037            'base_static_win64',
1038            'allocator/allocator.gyp:allocator_extension_thunks_win64',
1039            '../third_party/modp_b64/modp_b64.gyp:modp_b64_win64',
1040            'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
1041          ],
1042          # TODO(gregoryd): direct_dependent_settings should be shared with the
1043          # 32-bit target, but it doesn't work due to a bug in gyp
1044          'direct_dependent_settings': {
1045            'include_dirs': [
1046              '..',
1047            ],
1048          },
1049          'defines': [
1050            'BASE_WIN64',
1051            '<@(nacl_win64_defines)',
1052          ],
1053          'configurations': {
1054            'Common_Base': {
1055              'msvs_target_platform': 'x64',
1056            },
1057          },
1058          'conditions': [
1059            ['component == "shared_library"', {
1060              'sources!': [
1061                'debug/debug_on_start_win.cc',
1062              ],
1063            }],
1064          ],
1065          # Specify delayload for base_win64.dll.
1066          'msvs_settings': {
1067            'VCLinkerTool': {
1068              'DelayLoadDLLs': [
1069                'powrprof.dll',
1070              ],
1071              'AdditionalDependencies': [
1072                'powrprof.lib',
1073              ],
1074            },
1075          },
1076          # Specify delayload for components that link with base_win64.lib.
1077          'all_dependent_settings': {
1078            'msvs_settings': {
1079              'VCLinkerTool': {
1080                'DelayLoadDLLs': [
1081                  'powrprof.dll',
1082                ],
1083                'AdditionalDependencies': [
1084                  'powrprof.lib',
1085                ],
1086              },
1087            },
1088          },
1089          # TODO(rvargas): Bug 78117. Remove this.
1090          'msvs_disabled_warnings': [
1091            4244,
1092            4996,
1093            4267,
1094          ],
1095          'sources': [
1096            'third_party/xdg_user_dirs/xdg_user_dir_lookup.cc',
1097            'third_party/xdg_user_dirs/xdg_user_dir_lookup.h',
1098            'async_socket_io_handler.h',
1099            'async_socket_io_handler_posix.cc',
1100            'async_socket_io_handler_win.cc',
1101            'auto_reset.h',
1102            'event_recorder.h',
1103            'event_recorder_stubs.cc',
1104            'event_recorder_win.cc',
1105            'linux_util.cc',
1106            'linux_util.h',
1107            'md5.cc',
1108            'md5.h',
1109            'message_loop/message_pump_libevent.cc',
1110            'message_loop/message_pump_libevent.h',
1111            'metrics/field_trial.cc',
1112            'metrics/field_trial.h',
1113            'posix/file_descriptor_shuffle.cc',
1114            'posix/file_descriptor_shuffle.h',
1115            'sync_socket.h',
1116            'sync_socket_win.cc',
1117            'sync_socket_posix.cc',
1118          ],
1119        },
1120        {
1121          'target_name': 'base_i18n_nacl_win64',
1122          'type': '<(component)',
1123          # TODO(gregoryd): direct_dependent_settings should be shared with the
1124          # 32-bit target, but it doesn't work due to a bug in gyp
1125          'direct_dependent_settings': {
1126            'include_dirs': [
1127              '..',
1128            ],
1129          },
1130          'defines': [
1131            '<@(nacl_win64_defines)',
1132            'BASE_I18N_IMPLEMENTATION',
1133          ],
1134          'include_dirs': [
1135            '..',
1136          ],
1137          'sources': [
1138            'i18n/icu_util_nacl_win64.cc',
1139          ],
1140          'configurations': {
1141            'Common_Base': {
1142              'msvs_target_platform': 'x64',
1143            },
1144          },
1145        },
1146        {
1147          # TODO(rvargas): Remove this when gyp finally supports a clean model.
1148          # See bug 36232.
1149          'target_name': 'base_static_win64',
1150          'type': 'static_library',
1151          'sources': [
1152            'base_switches.cc',
1153            'base_switches.h',
1154            'win/pe_image.cc',
1155            'win/pe_image.h',
1156          ],
1157          'sources!': [
1158            # base64.cc depends on modp_b64.
1159            'base64.cc',
1160          ],
1161          'include_dirs': [
1162            '..',
1163          ],
1164          'configurations': {
1165            'Common_Base': {
1166              'msvs_target_platform': 'x64',
1167            },
1168          },
1169          'defines': [
1170            '<@(nacl_win64_defines)',
1171          ],
1172          # TODO(rvargas): Bug 78117. Remove this.
1173          'msvs_disabled_warnings': [
1174            4244,
1175          ],
1176        },
1177      ],
1178    }],
1179    ['os_posix==1 and OS!="mac" and OS!="ios"', {
1180      'targets': [
1181        {
1182          'target_name': 'symbolize',
1183          'type': 'static_library',
1184          'toolsets': ['host', 'target'],
1185          'variables': {
1186            'chromium_code': 0,
1187          },
1188          'conditions': [
1189            ['OS == "solaris"', {
1190              'include_dirs': [
1191                '/usr/gnu/include',
1192                '/usr/gnu/include/libelf',
1193              ],
1194            },],
1195          ],
1196          'cflags': [
1197            '-Wno-sign-compare',
1198          ],
1199          'cflags!': [
1200            '-Wextra',
1201          ],
1202          'defines': [
1203            'GLOG_BUILD_CONFIG_INCLUDE="build/build_config.h"',
1204          ],
1205          'sources': [
1206            'third_party/symbolize/config.h',
1207            'third_party/symbolize/demangle.cc',
1208            'third_party/symbolize/demangle.h',
1209            'third_party/symbolize/glog/logging.h',
1210            'third_party/symbolize/glog/raw_logging.h',
1211            'third_party/symbolize/symbolize.cc',
1212            'third_party/symbolize/symbolize.h',
1213            'third_party/symbolize/utilities.h',
1214          ],
1215          'include_dirs': [
1216            '..',
1217          ],
1218          'includes': [
1219            '../build/android/increase_size_for_speed.gypi',
1220          ],
1221        },
1222        {
1223          'target_name': 'xdg_mime',
1224          'type': 'static_library',
1225          'toolsets': ['host', 'target'],
1226          'variables': {
1227            'chromium_code': 0,
1228          },
1229          'cflags!': [
1230            '-Wextra',
1231          ],
1232          'sources': [
1233            'third_party/xdg_mime/xdgmime.c',
1234            'third_party/xdg_mime/xdgmime.h',
1235            'third_party/xdg_mime/xdgmimealias.c',
1236            'third_party/xdg_mime/xdgmimealias.h',
1237            'third_party/xdg_mime/xdgmimecache.c',
1238            'third_party/xdg_mime/xdgmimecache.h',
1239            'third_party/xdg_mime/xdgmimeglob.c',
1240            'third_party/xdg_mime/xdgmimeglob.h',
1241            'third_party/xdg_mime/xdgmimeicon.c',
1242            'third_party/xdg_mime/xdgmimeicon.h',
1243            'third_party/xdg_mime/xdgmimeint.c',
1244            'third_party/xdg_mime/xdgmimeint.h',
1245            'third_party/xdg_mime/xdgmimemagic.c',
1246            'third_party/xdg_mime/xdgmimemagic.h',
1247            'third_party/xdg_mime/xdgmimeparent.c',
1248            'third_party/xdg_mime/xdgmimeparent.h',
1249          ],
1250          'includes': [
1251            '../build/android/increase_size_for_speed.gypi',
1252          ],
1253        },
1254      ],
1255    }],
1256    ['OS == "android"', {
1257      'targets': [
1258        {
1259          # GN: //base:base_jni_headers
1260          'target_name': 'base_jni_headers',
1261          'type': 'none',
1262          'sources': [
1263            'android/java/src/org/chromium/base/ApplicationStatus.java',
1264            'android/java/src/org/chromium/base/BuildInfo.java',
1265            'android/java/src/org/chromium/base/CommandLine.java',
1266            'android/java/src/org/chromium/base/ContentUriUtils.java',
1267            'android/java/src/org/chromium/base/CpuFeatures.java',
1268            'android/java/src/org/chromium/base/EventLog.java',
1269            'android/java/src/org/chromium/base/FieldTrialList.java',
1270            'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java',
1271            'android/java/src/org/chromium/base/JNIUtils.java',
1272            'android/java/src/org/chromium/base/library_loader/LibraryLoader.java',
1273            'android/java/src/org/chromium/base/MemoryPressureListener.java',
1274            'android/java/src/org/chromium/base/JavaHandlerThread.java',
1275            'android/java/src/org/chromium/base/PathService.java',
1276            'android/java/src/org/chromium/base/PathUtils.java',
1277            'android/java/src/org/chromium/base/PowerMonitor.java',
1278            'android/java/src/org/chromium/base/SystemMessageHandler.java',
1279            'android/java/src/org/chromium/base/SysUtils.java',
1280            'android/java/src/org/chromium/base/ThreadUtils.java',
1281            'android/java/src/org/chromium/base/TraceEvent.java',
1282          ],
1283          'variables': {
1284            'jni_gen_package': 'base',
1285          },
1286          'includes': [ '../build/jni_generator.gypi' ],
1287        },
1288        {
1289          # TODO(GN)
1290          'target_name': 'base_unittests_jni_headers',
1291          'type': 'none',
1292          'sources': [
1293            'test/android/java/src/org/chromium/base/ContentUriTestUtils.java',
1294          ],
1295          'variables': {
1296            'jni_gen_package': 'base',
1297          },
1298          'includes': [ '../build/jni_generator.gypi' ],
1299        },
1300        {
1301          # GN: //base:base_native_libraries_gen
1302          'target_name': 'base_native_libraries_gen',
1303          'type': 'none',
1304          'sources': [
1305            'android/java/templates/NativeLibraries.template',
1306          ],
1307          'variables': {
1308            'package_name': 'org/chromium/base/library_loader',
1309            'template_deps': [],
1310          },
1311          'includes': [ '../build/android/java_cpp_template.gypi' ],
1312        },
1313        {
1314          # GN: //base:base_java
1315          'target_name': 'base_java',
1316          'type': 'none',
1317          'variables': {
1318            'java_in_dir': '../base/android/java',
1319            'jar_excluded_classes': [ '*/NativeLibraries.class' ],
1320          },
1321          'dependencies': [
1322            'base_java_application_state',
1323            'base_java_memory_pressure_level_list',
1324            'base_native_libraries_gen',
1325          ],
1326          'includes': [ '../build/java.gypi' ],
1327          'conditions': [
1328            ['android_webview_build==0', {
1329              'dependencies': [
1330                '../third_party/jsr-305/jsr-305.gyp:jsr_305_javalib',
1331              ],
1332            }]
1333          ],
1334        },
1335        {
1336          # GN: //base:base_java_unittest_support
1337          'target_name': 'base_java_unittest_support',
1338          'type': 'none',
1339          'dependencies': [
1340            'base_java',
1341          ],
1342          'variables': {
1343            'java_in_dir': '../base/test/android/java',
1344          },
1345          'includes': [ '../build/java.gypi' ],
1346        },
1347        {
1348          # GN: //base:base_java_application_state
1349          'target_name': 'base_java_application_state',
1350          'type': 'none',
1351          # This target is used to auto-generate ApplicationState.java
1352          # from a template file. The source file contains a list of
1353          # Java constant declarations matching the ones in
1354          # android/application_state_list.h.
1355          'sources': [
1356            'android/java/src/org/chromium/base/ApplicationState.template',
1357          ],
1358          'variables': {
1359            'package_name': 'org/chromium/base',
1360            'template_deps': ['android/application_state_list.h'],
1361          },
1362          'includes': [ '../build/android/java_cpp_template.gypi' ],
1363        },
1364        {
1365          # GN: //base:base_java_memory_pressure_level_list
1366          'target_name': 'base_java_memory_pressure_level_list',
1367          'type': 'none',
1368          'sources': [
1369            'android/java/src/org/chromium/base/MemoryPressureLevelList.template',
1370          ],
1371          'variables': {
1372            'package_name': 'org/chromium/base',
1373            'template_deps': ['memory/memory_pressure_level_list.h'],
1374          },
1375          'includes': [ '../build/android/java_cpp_template.gypi' ],
1376        },
1377        {
1378          # GN: //base:base_java_test_support
1379          'target_name': 'base_java_test_support',
1380          'type': 'none',
1381          'dependencies': [
1382            'base_java',
1383          ],
1384          'variables': {
1385            'java_in_dir': '../base/test/android/javatests',
1386          },
1387          'includes': [ '../build/java.gypi' ],
1388        },
1389        {
1390          # GN: //base:base_javatests
1391          'target_name': 'base_javatests',
1392          'type': 'none',
1393          'dependencies': [
1394            'base_java',
1395            'base_java_test_support',
1396          ],
1397          'variables': {
1398            'java_in_dir': '../base/android/javatests',
1399          },
1400          'includes': [ '../build/java.gypi' ],
1401        },
1402        {
1403          # TODO(GN)
1404          'target_name': 'chromium_android_linker',
1405          'type': 'shared_library',
1406          'conditions': [
1407            # Avoid breaking the webview build because it
1408            # does not have <(android_ndk_root)/crazy_linker.gyp.
1409            # Note that webview never uses the linker anyway.
1410            ['android_webview_build == 0', {
1411              'sources': [
1412                'android/linker/linker_jni.cc',
1413              ],
1414              # The crazy linker is never instrumented.
1415              'cflags!': [
1416                '-finstrument-functions',
1417              ],
1418              'dependencies': [
1419                # The NDK contains the crazy_linker here:
1420                #   '<(android_ndk_root)/crazy_linker.gyp:crazy_linker'
1421                # However, we use our own fork.  See bug 384700.
1422                '../third_party/android_crazy_linker/crazy_linker.gyp:crazy_linker',
1423              ],
1424            }],
1425          ],
1426        },
1427        {
1428          # TODO(GN)
1429          'target_name': 'base_perftests_apk',
1430          'type': 'none',
1431          'dependencies': [
1432            'base_perftests',
1433          ],
1434          'variables': {
1435            'test_suite_name': 'base_perftests',
1436          },
1437          'includes': [ '../build/apk_test.gypi' ],
1438        },
1439        {
1440          # GN: //base:base_unittests_apk
1441          'target_name': 'base_unittests_apk',
1442          'type': 'none',
1443          'dependencies': [
1444            'base_java',
1445            'base_unittests',
1446          ],
1447          'variables': {
1448            'test_suite_name': 'base_unittests',
1449          },
1450          'includes': [ '../build/apk_test.gypi' ],
1451        },
1452      ],
1453    }],
1454    ['OS == "win"', {
1455      'targets': [
1456        {
1457          'target_name': 'debug_message',
1458          'type': 'executable',
1459          'sources': [
1460            'debug_message.cc',
1461          ],
1462          'msvs_settings': {
1463            'VCLinkerTool': {
1464              'SubSystem': '2',         # Set /SUBSYSTEM:WINDOWS
1465            },
1466          },
1467        },
1468      ],
1469    }],
1470    ['test_isolation_mode != "noop"', {
1471      'targets': [
1472        {
1473          'target_name': 'base_unittests_run',
1474          'type': 'none',
1475          'dependencies': [
1476            'base_unittests',
1477          ],
1478          'includes': [
1479            '../build/isolate.gypi',
1480            'base_unittests.isolate',
1481          ],
1482          'sources': [
1483            'base_unittests.isolate',
1484          ],
1485          'conditions': [
1486            ['use_x11 == 1', {
1487              'dependencies': [
1488                '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
1489              ],
1490            }],
1491          ],
1492        },
1493      ],
1494    }],
1495  ],
1496}
1497