• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2015 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Common defaults
16// ========================================================
17
18cc_defaults {
19    name: "libchrome-defaults",
20    // Set clang to "true" to force clang or "false" to force gcc.
21    // clang: true,
22
23    cflags: [
24        "-Wall",
25        "-Werror",
26    ],
27    include_dirs: [
28        "external/valgrind/include",
29        "external/valgrind",
30    ],
31    export_include_dirs: ["."],
32    target: {
33        host: {
34            cflags: [
35                "-D__ANDROID_HOST__",
36                "-DDONT_EMBED_BUILD_METADATA",
37            ],
38        },
39        darwin: {
40            cflags: [
41                "-D_FILE_OFFSET_BITS=64",
42                "-Wno-deprecated-declarations",
43            ],
44            host_ldlibs: [
45                "-framework AppKit",
46                "-framework CoreFoundation",
47                "-framework Foundation",
48                "-framework Security",
49            ],
50        },
51    },
52}
53
54cc_defaults {
55    name: "libchrome-test-defaults",
56    defaults: ["libchrome-defaults"],
57    cflags: [
58        "-Wno-unused-parameter",
59        "-Wno-unused-function",
60        "-Wno-missing-field-initializers",
61    ],
62
63    clang_cflags: [
64        // Temporarily suppress the warnings http://b/38232827
65        "-Wno-error=unused-lambda-capture",
66    ],
67}
68
69libchromeCommonSrc = [
70    "base/at_exit.cc",
71    "base/base64.cc",
72    "base/base64url.cc",
73    "base/base_switches.cc",
74    "base/bind_helpers.cc",
75    "base/build_time.cc",
76    "base/callback_helpers.cc",
77    "base/callback_internal.cc",
78    "base/command_line.cc",
79    "base/cpu.cc",
80    "base/debug/alias.cc",
81    "base/debug/debugger.cc",
82    "base/debug/debugger_posix.cc",
83    "base/debug/stack_trace.cc",
84    "base/debug/stack_trace_posix.cc",
85    "base/debug/task_annotator.cc",
86    "base/environment.cc",
87    "base/files/file.cc",
88    "base/files/file_enumerator.cc",
89    "base/files/file_enumerator_posix.cc",
90    "base/files/file_path.cc",
91    "base/files/file_path_constants.cc",
92    "base/files/file_path_watcher.cc",
93    "base/files/file_posix.cc",
94    "base/files/file_tracing.cc",
95    "base/files/file_util.cc",
96    "base/files/file_util_posix.cc",
97    "base/files/important_file_writer.cc",
98    "base/files/memory_mapped_file.cc",
99    "base/files/memory_mapped_file_posix.cc",
100    "base/files/scoped_file.cc",
101    "base/files/scoped_temp_dir.cc",
102    "base/guid.cc",
103    "base/hash.cc",
104    "base/json/json_file_value_serializer.cc",
105    "base/json/json_parser.cc",
106    "base/json/json_reader.cc",
107    "base/json/json_string_value_serializer.cc",
108    "base/json/json_value_converter.cc",
109    "base/json/json_writer.cc",
110    "base/json/string_escape.cc",
111    "base/lazy_instance.cc",
112    "base/location.cc",
113    "base/logging.cc",
114    "base/md5.cc",
115    "base/memory/aligned_memory.cc",
116    "base/memory/ref_counted.cc",
117    "base/memory/ref_counted_memory.cc",
118    "base/memory/singleton.cc",
119    "base/memory/weak_ptr.cc",
120    "base/message_loop/incoming_task_queue.cc",
121    "base/message_loop/message_loop.cc",
122    "base/message_loop/message_loop_task_runner.cc",
123    "base/message_loop/message_pump.cc",
124    "base/message_loop/message_pump_default.cc",
125    "base/message_loop/message_pump_libevent.cc",
126    "base/metrics/bucket_ranges.cc",
127    "base/metrics/field_trial.cc",
128    "base/metrics/metrics_hashes.cc",
129    "base/metrics/histogram_base.cc",
130    "base/metrics/histogram.cc",
131    "base/metrics/histogram_samples.cc",
132    "base/metrics/histogram_snapshot_manager.cc",
133    "base/metrics/persistent_histogram_allocator.cc",
134    "base/metrics/persistent_memory_allocator.cc",
135    "base/metrics/persistent_sample_map.cc",
136    "base/metrics/sample_map.cc",
137    "base/metrics/sample_vector.cc",
138    "base/metrics/sparse_histogram.cc",
139    "base/metrics/statistics_recorder.cc",
140    "base/pending_task.cc",
141    "base/pickle.cc",
142    "base/posix/file_descriptor_shuffle.cc",
143    "base/posix/safe_strerror.cc",
144    "base/process/kill.cc",
145    "base/process/kill_posix.cc",
146    "base/process/launch.cc",
147    "base/process/launch_posix.cc",
148    "base/process/process_handle.cc",
149    "base/process/process_handle_posix.cc",
150    "base/process/process_iterator.cc",
151    "base/process/process_metrics.cc",
152    "base/process/process_metrics_posix.cc",
153    "base/process/process_posix.cc",
154    "base/profiler/scoped_profile.cc",
155    "base/profiler/scoped_tracker.cc",
156    "base/profiler/tracked_time.cc",
157    "base/rand_util.cc",
158    "base/rand_util_posix.cc",
159    "base/run_loop.cc",
160    "base/sequence_checker_impl.cc",
161    "base/sequenced_task_runner.cc",
162    "base/sha1_portable.cc",
163    "base/strings/pattern.cc",
164    "base/strings/safe_sprintf.cc",
165    "base/strings/string16.cc",
166    "base/strings/string_number_conversions.cc",
167    "base/strings/string_piece.cc",
168    "base/strings/stringprintf.cc",
169    "base/strings/string_split.cc",
170    "base/strings/string_util.cc",
171    "base/strings/string_util_constants.cc",
172    "base/strings/utf_string_conversions.cc",
173    "base/strings/utf_string_conversion_utils.cc",
174    "base/synchronization/cancellation_flag.cc",
175    "base/synchronization/condition_variable_posix.cc",
176    "base/synchronization/lock.cc",
177    "base/synchronization/lock_impl_posix.cc",
178    "base/synchronization/read_write_lock_posix.cc",
179    "base/synchronization/waitable_event_posix.cc",
180    "base/sync_socket_posix.cc",
181    "base/sys_info.cc",
182    "base/sys_info_posix.cc",
183    "base/task/cancelable_task_tracker.cc",
184    "base/task_runner.cc",
185    "base/task_scheduler/scheduler_lock_impl.cc",
186    "base/task_scheduler/sequence.cc",
187    "base/task_scheduler/sequence_sort_key.cc",
188    "base/task_scheduler/task.cc",
189    "base/task_scheduler/task_traits.cc",
190    "base/test/trace_event_analyzer.cc",
191    "base/third_party/icu/icu_utf.cc",
192    "base/third_party/nspr/prtime.cc",
193    "base/threading/non_thread_safe_impl.cc",
194    "base/threading/platform_thread_posix.cc",
195    "base/threading/post_task_and_reply_impl.cc",
196    "base/threading/sequenced_task_runner_handle.cc",
197    "base/threading/sequenced_worker_pool.cc",
198    "base/threading/simple_thread.cc",
199    "base/threading/thread.cc",
200    "base/threading/thread_checker_impl.cc",
201    "base/threading/thread_collision_warner.cc",
202    "base/threading/thread_id_name_manager.cc",
203    "base/threading/thread_local_posix.cc",
204    "base/threading/thread_local_storage.cc",
205    "base/threading/thread_local_storage_posix.cc",
206    "base/threading/thread_restrictions.cc",
207    "base/threading/thread_task_runner_handle.cc",
208    "base/threading/worker_pool.cc",
209    "base/threading/worker_pool_posix.cc",
210    "base/time/clock.cc",
211    "base/time/default_clock.cc",
212    "base/time/default_tick_clock.cc",
213    "base/time/tick_clock.cc",
214    "base/time/time.cc",
215    "base/time/time_posix.cc",
216    "base/timer/elapsed_timer.cc",
217    "base/timer/timer.cc",
218    "base/trace_event/heap_profiler_allocation_context.cc",
219    "base/trace_event/heap_profiler_allocation_context_tracker.cc",
220    "base/trace_event/heap_profiler_allocation_register.cc",
221    "base/trace_event/heap_profiler_allocation_register_posix.cc",
222    "base/trace_event/heap_profiler_heap_dump_writer.cc",
223    "base/trace_event/heap_profiler_stack_frame_deduplicator.cc",
224    "base/trace_event/heap_profiler_type_name_deduplicator.cc",
225    "base/trace_event/malloc_dump_provider.cc",
226    "base/trace_event/memory_allocator_dump.cc",
227    "base/trace_event/memory_allocator_dump_guid.cc",
228    "base/trace_event/memory_dump_manager.cc",
229    "base/trace_event/memory_dump_request_args.cc",
230    "base/trace_event/memory_dump_session_state.cc",
231    "base/trace_event/memory_infra_background_whitelist.cc",
232    "base/trace_event/process_memory_dump.cc",
233    "base/trace_event/process_memory_maps.cc",
234    "base/trace_event/process_memory_totals.cc",
235    "base/trace_event/trace_buffer.cc",
236    "base/trace_event/trace_config.cc",
237    "base/trace_event/trace_event_argument.cc",
238    "base/trace_event/trace_event_impl.cc",
239    "base/trace_event/trace_event_memory_overhead.cc",
240    "base/trace_event/trace_event_synthetic_delay.cc",
241    "base/trace_event/trace_log.cc",
242    "base/trace_event/trace_log_constants.cc",
243    "base/trace_event/trace_sampling_thread.cc",
244    "base/tracked_objects.cc",
245    "base/tracking_info.cc",
246    "base/values.cc",
247    "base/version.cc",
248    "base/vlog.cc",
249]
250
251libchromeLinuxSrc = [
252    "base/files/file_path_watcher_linux.cc",
253    "base/files/file_util_linux.cc",
254    "base/memory/shared_memory_posix.cc",
255    "base/posix/unix_domain_socket_linux.cc",
256    "base/process/internal_linux.cc",
257    "base/process/process_handle_linux.cc",
258    "base/process/process_iterator_linux.cc",
259    "base/process/process_metrics_linux.cc",
260    "base/strings/sys_string_conversions_posix.cc",
261    "base/sys_info_linux.cc",
262    "base/threading/platform_thread_internal_posix.cc",
263    "base/threading/platform_thread_linux.cc",
264    "components/timers/alarm_timer_chromeos.cc",
265]
266
267libchromeMacSrc = [
268    "base/files/file_path_watcher_fsevents.cc",
269    "base/files/file_path_watcher_kqueue.cc",
270    "base/files/file_path_watcher_mac.cc",
271    "base/files/file_util_mac.mm",
272    "base/mac/bundle_locations.mm",
273    "base/mac/foundation_util.mm",
274    "base/mac/mach_logging.cc",
275    "base/mac/scoped_mach_port.cc",
276    "base/mac/scoped_mach_vm.cc",
277    "base/mac/scoped_nsautorelease_pool.mm",
278    "base/mac/sdk_forward_declarations.mm",
279    "base/memory/shared_memory_mac.cc",
280    "base/memory/shared_memory_handle_mac.cc",
281    "base/message_loop/message_pump_mac.mm",
282    "base/process/launch_mac.cc",
283    "base/process/port_provider_mac.cc",
284    "base/process/process_handle_mac.cc",
285    "base/process/process_iterator_mac.cc",
286    "base/process/process_metrics_mac.cc",
287    "base/strings/sys_string_conversions_mac.mm",
288    "base/sys_info_mac.mm",
289    "base/time/time_mac.cc",
290    "base/threading/platform_thread_mac.mm",
291]
292
293
294// libchrome static+shared for host and device
295// ========================================================
296cc_library {
297    name: "libchrome",
298    host_supported: true,
299    vendor_available: true,
300    defaults: ["libchrome-defaults"],
301    srcs: libchromeCommonSrc,
302
303    export_shared_lib_headers: ["libbase"],
304    export_static_lib_headers: ["libgtest_prod"],
305    shared_libs: [
306        "libbase",
307        "libevent",
308    ],
309    static_libs: [
310        "libmodpb64",
311        "libgtest_prod",
312    ],
313    target: {
314        android: {
315            srcs: libchromeLinuxSrc + [
316                "base/memory/shared_memory_android.cc",
317                "base/sys_info_chromeos.cc",
318            ],
319            shared_libs: [
320                "liblog",
321                "libcutils",
322            ],
323        },
324        linux: {
325            srcs: libchromeLinuxSrc + [
326                "base/allocator/allocator_shim.cc",
327                "base/allocator/allocator_shim_default_dispatch_to_glibc.cc"
328            ],
329            host_ldlibs: ["-lrt"],
330        },
331        darwin: {
332            srcs: libchromeMacSrc,
333        },
334    },
335}
336
337// libchrome-crypto shared library for device
338// ========================================================
339cc_library_shared {
340    name: "libchrome-crypto",
341    defaults: ["libchrome-defaults"],
342    srcs: [
343        "crypto/openssl_util.cc",
344        "crypto/random.cc",
345        "crypto/secure_hash.cc",
346        "crypto/secure_util.cc",
347        "crypto/sha2.cc",
348    ],
349
350    cflags: ["-Wno-unused-parameter"],
351    shared_libs: [
352        "libchrome",
353        "libcrypto",
354        "libssl",
355    ],
356}
357
358// Helpers needed for unit tests.
359// ========================================================
360cc_library_static {
361    name: "libchrome_test_helpers",
362    defaults: ["libchrome-test-defaults"],
363    shared_libs: ["libchrome"],
364    host_supported: true,
365
366    srcs: [
367        "base/test/simple_test_clock.cc",
368        "base/test/simple_test_tick_clock.cc",
369        "base/test/test_file_util.cc",
370        "base/test/test_file_util_linux.cc",
371        "base/test/test_switches.cc",
372        "base/test/test_timeouts.cc",
373    ],
374    target: {
375        darwin: {
376            enabled: false,
377        },
378    },
379}
380
381// Helpers needed for unit tests (for host).
382// ========================================================
383cc_library_host_static {
384    name: "libchrome_test_helpers-host",
385    defaults: ["libchrome-test-defaults"],
386    shared_libs: ["libchrome"],
387
388    srcs: ["base/test/simple_test_clock.cc"],
389    target: {
390        darwin: {
391            enabled: false,
392        },
393    },
394}
395
396// Host and target unit tests. Run (from repo root) with:
397// ./out/host/<arch>/nativetest/libchrome_test/libchrome_test
398// or
399// adb shell /data/nativetest/libchrome_test/libchrome_test
400// ========================================================
401cc_test {
402    name: "libchrome_test",
403    host_supported: true,
404    defaults: ["libchrome-test-defaults"],
405    srcs: [
406        "base/at_exit_unittest.cc",
407        "base/atomicops_unittest.cc",
408        "base/base64_unittest.cc",
409        "base/base64url_unittest.cc",
410        "base/bind_unittest.cc",
411        "base/bits_unittest.cc",
412        "base/build_time_unittest.cc",
413        "base/callback_helpers_unittest.cc",
414        "base/callback_list_unittest.cc",
415        "base/callback_unittest.cc",
416        "base/cancelable_callback_unittest.cc",
417        "base/command_line_unittest.cc",
418        "base/cpu_unittest.cc",
419        "base/debug/debugger_unittest.cc",
420        "base/debug/leak_tracker_unittest.cc",
421        "base/debug/task_annotator_unittest.cc",
422        "base/environment_unittest.cc",
423        "base/file_version_info_unittest.cc",
424        "base/files/dir_reader_posix_unittest.cc",
425        "base/files/file_path_watcher_unittest.cc",
426        "base/files/file_path_unittest.cc",
427        "base/files/file_unittest.cc",
428        "base/files/important_file_writer_unittest.cc",
429        "base/files/scoped_temp_dir_unittest.cc",
430        "base/gmock_unittest.cc",
431        "base/guid_unittest.cc",
432        "base/id_map_unittest.cc",
433        "base/json/json_parser_unittest.cc",
434        "base/json/json_reader_unittest.cc",
435        "base/json/json_value_converter_unittest.cc",
436        "base/json/json_value_serializer_unittest.cc",
437        "base/json/json_writer_unittest.cc",
438        "base/json/string_escape_unittest.cc",
439        "base/lazy_instance_unittest.cc",
440        "base/logging_unittest.cc",
441        "base/md5_unittest.cc",
442        "base/memory/aligned_memory_unittest.cc",
443        "base/memory/linked_ptr_unittest.cc",
444        "base/memory/ref_counted_memory_unittest.cc",
445        "base/memory/ref_counted_unittest.cc",
446        "base/memory/scoped_vector_unittest.cc",
447        "base/memory/singleton_unittest.cc",
448        "base/memory/weak_ptr_unittest.cc",
449        "base/message_loop/message_loop_test.cc",
450        "base/message_loop/message_loop_task_runner_unittest.cc",
451        "base/message_loop/message_loop_unittest.cc",
452        "base/metrics/bucket_ranges_unittest.cc",
453        "base/metrics/field_trial_unittest.cc",
454        "base/metrics/metrics_hashes_unittest.cc",
455        "base/metrics/histogram_base_unittest.cc",
456        "base/metrics/histogram_macros_unittest.cc",
457        "base/metrics/histogram_snapshot_manager_unittest.cc",
458        "base/metrics/histogram_unittest.cc",
459        "base/metrics/persistent_histogram_allocator_unittest.cc",
460        "base/metrics/persistent_memory_allocator_unittest.cc",
461        "base/metrics/persistent_sample_map_unittest.cc",
462        "base/metrics/sample_map_unittest.cc",
463        "base/metrics/sample_vector_unittest.cc",
464        "base/metrics/sparse_histogram_unittest.cc",
465        "base/metrics/statistics_recorder_unittest.cc",
466        "base/numerics/safe_numerics_unittest.cc",
467        "base/observer_list_unittest.cc",
468        "base/optional_unittest.cc",
469        "base/pickle_unittest.cc",
470        "base/posix/file_descriptor_shuffle_unittest.cc",
471        "base/posix/unix_domain_socket_linux_unittest.cc",
472        "base/process/process_metrics_unittest.cc",
473        "base/profiler/tracked_time_unittest.cc",
474        "base/rand_util_unittest.cc",
475        "base/scoped_clear_errno_unittest.cc",
476        "base/scoped_generic_unittest.cc",
477        "base/security_unittest.cc",
478        "base/sequence_checker_unittest.cc",
479        "base/sha1_unittest.cc",
480        "base/stl_util_unittest.cc",
481        "base/strings/pattern_unittest.cc",
482        "base/strings/string16_unittest.cc",
483        "base/strings/string_number_conversions_unittest.cc",
484        "base/strings/string_piece_unittest.cc",
485        "base/strings/stringprintf_unittest.cc",
486        "base/strings/string_split_unittest.cc",
487        "base/strings/string_util_unittest.cc",
488        "base/strings/sys_string_conversions_unittest.cc",
489        "base/strings/utf_string_conversions_unittest.cc",
490        "base/synchronization/cancellation_flag_unittest.cc",
491        "base/synchronization/condition_variable_unittest.cc",
492        "base/synchronization/lock_unittest.cc",
493        "base/synchronization/waitable_event_unittest.cc",
494        "base/sync_socket_unittest.cc",
495        "base/sys_info_unittest.cc",
496        "base/task/cancelable_task_tracker_unittest.cc",
497        "base/task_runner_util_unittest.cc",
498        "base/task_scheduler/scheduler_lock_unittest.cc",
499        "base/task_scheduler/sequence_sort_key_unittest.cc",
500        "base/task_scheduler/sequence_unittest.cc",
501        "base/task_scheduler/task_traits.cc",
502        "base/template_util_unittest.cc",
503        "base/test/multiprocess_test.cc",
504        "base/test/multiprocess_test_android.cc",
505        "base/test/opaque_ref_counted.cc",
506        "base/test/scoped_locale.cc",
507        "base/test/sequenced_worker_pool_owner.cc",
508        "base/test/test_file_util.cc",
509        "base/test/test_file_util_linux.cc",
510        "base/test/test_file_util_posix.cc",
511        "base/test/test_io_thread.cc",
512        "base/test/test_pending_task.cc",
513        "base/test/test_simple_task_runner.cc",
514        "base/test/test_switches.cc",
515        "base/test/test_timeouts.cc",
516        "base/test/trace_event_analyzer.cc",
517        "base/threading/non_thread_safe_unittest.cc",
518        "base/threading/platform_thread_unittest.cc",
519        "base/threading/simple_thread_unittest.cc",
520        "base/threading/thread_checker_unittest.cc",
521        "base/threading/thread_collision_warner_unittest.cc",
522        "base/threading/thread_id_name_manager_unittest.cc",
523        "base/threading/thread_local_storage_unittest.cc",
524        "base/threading/thread_local_unittest.cc",
525        "base/threading/thread_unittest.cc",
526        "base/threading/worker_pool_posix_unittest.cc",
527        "base/threading/worker_pool_unittest.cc",
528        "base/time/pr_time_unittest.cc",
529        "base/time/time_unittest.cc",
530        "base/timer/hi_res_timer_manager_unittest.cc",
531        "base/timer/timer_unittest.cc",
532        "base/trace_event/heap_profiler_allocation_context_tracker_unittest.cc",
533        "base/trace_event/heap_profiler_stack_frame_deduplicator_unittest.cc",
534        "base/trace_event/heap_profiler_type_name_deduplicator_unittest.cc",
535        "base/trace_event/memory_allocator_dump_unittest.cc",
536        "base/trace_event/memory_dump_manager_unittest.cc",
537        "base/trace_event/process_memory_dump_unittest.cc",
538        "base/trace_event/trace_config_unittest.cc",
539        "base/trace_event/trace_event_argument_unittest.cc",
540        "base/trace_event/trace_event_synthetic_delay_unittest.cc",
541        "base/trace_event/trace_event_unittest.cc",
542        "base/tracked_objects_unittest.cc",
543        "base/tuple_unittest.cc",
544        "base/values_unittest.cc",
545        "base/version_unittest.cc",
546        "base/vlog_unittest.cc",
547        "testing/multiprocess_func_list.cc",
548        "testrunner.cc",
549    ],
550
551    cflags: ["-DUNIT_TEST"],
552    shared_libs: [
553        "libchrome",
554        "libevent",
555    ],
556    static_libs: [
557        "libgmock",
558        "libgtest",
559    ],
560    target: {
561        android: {
562            srcs: [
563                "crypto/secure_hash_unittest.cc",
564                "crypto/sha2_unittest.cc",
565            ],
566            shared_libs: [
567                "libchrome-crypto",
568            ],
569            cflags: ["-DDONT_EMBED_BUILD_METADATA"],
570        },
571        linux: {
572            host_ldlibs: ["-lrt"],
573        },
574        darwin: {
575            enabled: false,
576        },
577    },
578}
579