| // Copyright (C) 2015 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Common defaults |
| // ======================================================== |
| |
| // Using Chrome header files directly could cause -Wunused-parameter errors, |
| // and this is workaround. Please find the document in include_generator.py |
| // for details. |
| // Note: gensrcs does not support exclude_srcs, so filegroup rule is |
| // introduced. |
| filegroup { |
| name: "libchrome-include-sources", |
| srcs: [ |
| "base/**/*.h", |
| "build/**/*.h", |
| "components/**/*.h", |
| "device/**/*.h", |
| "testing/**/*.h", |
| "third_party/**/*.h", |
| "ui/**/*.h", |
| ], |
| exclude_srcs: [ |
| "base/android/**/*", |
| ], |
| } |
| |
| gensrcs { |
| name: "libchrome-include", |
| cmd: "$(location libchrome_tools/include_generator.py) $(in) $(out)", |
| tool_files: ["libchrome_tools/include_generator.py"], |
| export_include_dirs: ["."], |
| srcs: [":libchrome-include-sources"], |
| output_extension: "h", |
| } |
| |
| cc_defaults { |
| name: "libchrome-defaults", |
| // Set clang to "true" to force clang or "false" to force gcc. |
| // clang: true, |
| |
| cflags: [ |
| "-Wall", |
| "-Werror", |
| "-Wno-deprecated-declarations", |
| "-Wno-implicit-fallthrough", |
| // memory_mapped_file.cc:80, json_parser.cc:264, |
| // sys_string_conversions_posix.cc:122, and |
| // icu_utf.cc:161,165 have -Wno-implicit-fallthrough. |
| "-Wno-missing-field-initializers", |
| "-Wno-unused-parameter", |
| ], |
| |
| // Note: Although the generated header files are exported here, in building |
| // libchrome, "." has priority (unlike building projects using libchrome), |
| // so the raw header files are used for them. |
| generated_headers: ["libchrome-include"], |
| export_generated_headers: ["libchrome-include"], |
| target: { |
| host: { |
| cflags: [ |
| "-D__ANDROID_HOST__", |
| "-DDONT_EMBED_BUILD_METADATA", |
| ], |
| }, |
| darwin: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| cc_defaults { |
| name: "libchrome-test-defaults", |
| defaults: ["libchrome-defaults"], |
| cflags: [ |
| "-Wno-unused-function", |
| "-Wno-unused-variable", |
| ], |
| } |
| |
| libchromeCommonSrc = [ |
| "base/at_exit.cc", |
| "base/barrier_closure.cc", |
| "base/base64.cc", |
| "base/base64url.cc", |
| "base/base_paths.cc", |
| "base/base_paths_posix.cc", |
| "base/base_switches.cc", |
| "base/big_endian.cc", |
| "base/build_time.cc", |
| "base/callback_helpers.cc", |
| "base/callback_internal.cc", |
| "base/command_line.cc", |
| "base/cpu.cc", |
| "base/debug/activity_tracker.cc", |
| "base/debug/alias.cc", |
| "base/debug/crash_logging.cc", |
| "base/debug/debugger.cc", |
| "base/debug/debugger_posix.cc", |
| "base/debug/dump_without_crashing.cc", |
| "base/debug/proc_maps_linux.cc", |
| "base/debug/profiler.cc", |
| "base/debug/stack_trace.cc", |
| "base/debug/task_annotator.cc", |
| "base/environment.cc", |
| "base/feature_list.cc", |
| "base/files/file.cc", |
| "base/files/file_descriptor_watcher_posix.cc", |
| "base/files/file_enumerator.cc", |
| "base/files/file_enumerator_posix.cc", |
| "base/files/file_path.cc", |
| "base/files/file_path_constants.cc", |
| "base/files/file_path_watcher.cc", |
| "base/files/file_posix.cc", |
| "base/files/file_tracing.cc", |
| "base/files/file_util.cc", |
| "base/files/file_util_posix.cc", |
| "base/files/important_file_writer.cc", |
| "base/files/memory_mapped_file.cc", |
| "base/files/memory_mapped_file_posix.cc", |
| "base/files/scoped_file.cc", |
| "base/files/scoped_temp_dir.cc", |
| "base/guid.cc", |
| "base/hash.cc", |
| "base/json/json_file_value_serializer.cc", |
| "base/json/json_parser.cc", |
| "base/json/json_reader.cc", |
| "base/json/json_string_value_serializer.cc", |
| "base/json/json_value_converter.cc", |
| "base/json/json_writer.cc", |
| "base/json/string_escape.cc", |
| "base/lazy_instance_helpers.cc", |
| "base/location.cc", |
| "base/logging.cc", |
| "base/md5.cc", |
| "base/memory/aligned_memory.cc", |
| "base/memory/platform_shared_memory_region.cc", |
| "base/memory/platform_shared_memory_region_posix.cc", |
| "base/memory/read_only_shared_memory_region.cc", |
| "base/memory/ref_counted.cc", |
| "base/memory/ref_counted_memory.cc", |
| "base/memory/shared_memory_handle.cc", |
| "base/memory/shared_memory_handle_posix.cc", |
| "base/memory/shared_memory_helper.cc", |
| "base/memory/shared_memory_mapping.cc", |
| "base/memory/unsafe_shared_memory_region.cc", |
| "base/memory/weak_ptr.cc", |
| "base/memory/writable_shared_memory_region.cc", |
| "base/message_loop/incoming_task_queue.cc", |
| "base/message_loop/message_loop.cc", |
| "base/message_loop/message_loop_current.cc", |
| "base/message_loop/message_loop_task_runner.cc", |
| "base/message_loop/message_pump.cc", |
| "base/message_loop/message_pump_default.cc", |
| "base/message_loop/message_pump_libevent.cc", |
| "base/message_loop/watchable_io_message_pump_posix.cc", |
| "base/metrics/bucket_ranges.cc", |
| "base/metrics/dummy_histogram.cc", |
| "base/metrics/field_trial.cc", |
| "base/metrics/field_trial_param_associator.cc", |
| "base/metrics/histogram.cc", |
| "base/metrics/histogram_base.cc", |
| "base/metrics/histogram_functions.cc", |
| "base/metrics/histogram_samples.cc", |
| "base/metrics/histogram_snapshot_manager.cc", |
| "base/metrics/metrics_hashes.cc", |
| "base/metrics/persistent_histogram_allocator.cc", |
| "base/metrics/persistent_memory_allocator.cc", |
| "base/metrics/persistent_sample_map.cc", |
| "base/metrics/sample_map.cc", |
| "base/metrics/sample_vector.cc", |
| "base/metrics/sparse_histogram.cc", |
| "base/metrics/statistics_recorder.cc", |
| "base/native_library.cc", |
| "base/native_library_posix.cc", |
| "base/observer_list_threadsafe.cc", |
| "base/path_service.cc", |
| "base/pending_task.cc", |
| "base/pickle.cc", |
| "base/posix/file_descriptor_shuffle.cc", |
| "base/posix/global_descriptors.cc", |
| "base/posix/safe_strerror.cc", |
| "base/process/kill.cc", |
| "base/process/kill_posix.cc", |
| "base/process/launch.cc", |
| "base/process/launch_posix.cc", |
| "base/process/memory.cc", |
| "base/process/process_handle.cc", |
| "base/process/process_handle_posix.cc", |
| "base/process/process_iterator.cc", |
| "base/process/process_metrics.cc", |
| "base/process/process_metrics_posix.cc", |
| "base/process/process_posix.cc", |
| "base/rand_util.cc", |
| "base/rand_util_posix.cc", |
| "base/run_loop.cc", |
| "base/scoped_native_library.cc", |
| "base/sequence_checker_impl.cc", |
| "base/sequence_token.cc", |
| "base/sequenced_task_runner.cc", |
| "base/sha1.cc", |
| "base/strings/nullable_string16.cc", |
| "base/strings/pattern.cc", |
| "base/strings/safe_sprintf.cc", |
| "base/strings/string16.cc", |
| "base/strings/string_number_conversions.cc", |
| "base/strings/string_piece.cc", |
| "base/strings/string_split.cc", |
| "base/strings/string_util.cc", |
| "base/strings/string_util_constants.cc", |
| "base/strings/stringprintf.cc", |
| "base/strings/utf_string_conversion_utils.cc", |
| "base/strings/utf_string_conversions.cc", |
| "base/sync_socket_posix.cc", |
| "base/synchronization/atomic_flag.cc", |
| "base/synchronization/condition_variable_posix.cc", |
| "base/synchronization/lock.cc", |
| "base/synchronization/lock_impl_posix.cc", |
| "base/synchronization/waitable_event_posix.cc", |
| "base/sys_info.cc", |
| "base/sys_info_posix.cc", |
| "base/task/cancelable_task_tracker.cc", |
| "base/task_runner.cc", |
| "base/task_scheduler/scheduler_lock_impl.cc", |
| "base/task_scheduler/scoped_set_task_priority_for_current_thread.cc", |
| "base/task_scheduler/sequence.cc", |
| "base/task_scheduler/sequence_sort_key.cc", |
| "base/task_scheduler/task.cc", |
| "base/task_scheduler/task_traits.cc", |
| "base/third_party/dynamic_annotations/dynamic_annotations.c", |
| "base/third_party/icu/icu_utf.cc", |
| "base/third_party/nspr/prtime.cc", |
| "base/threading/platform_thread_posix.cc", |
| "base/threading/post_task_and_reply_impl.cc", |
| "base/threading/scoped_blocking_call.cc", |
| "base/threading/sequence_local_storage_map.cc", |
| "base/threading/sequence_local_storage_slot.cc", |
| "base/threading/sequenced_task_runner_handle.cc", |
| "base/threading/simple_thread.cc", |
| "base/threading/thread.cc", |
| "base/threading/thread_checker_impl.cc", |
| "base/threading/thread_collision_warner.cc", |
| "base/threading/thread_id_name_manager.cc", |
| "base/threading/thread_local_storage.cc", |
| "base/threading/thread_local_storage_posix.cc", |
| "base/threading/thread_restrictions.cc", |
| "base/threading/thread_task_runner_handle.cc", |
| "base/time/clock.cc", |
| "base/time/default_clock.cc", |
| "base/time/default_tick_clock.cc", |
| "base/time/tick_clock.cc", |
| "base/time/time.cc", |
| "base/time/time_conversion_posix.cc", |
| "base/time/time_exploded_posix.cc", |
| "base/time/time_now_posix.cc", |
| "base/time/time_override.cc", |
| "base/timer/elapsed_timer.cc", |
| "base/timer/timer.cc", |
| "base/unguessable_token.cc", |
| "base/value_iterators.cc", |
| "base/values.cc", |
| "base/version.cc", |
| "base/vlog.cc", |
| "device/bluetooth/bluetooth_advertisement.cc", |
| "device/bluetooth/bluetooth_uuid.cc", |
| "device/bluetooth/bluez/bluetooth_service_attribute_value_bluez.cc", |
| "ui/gfx/geometry/insets.cc", |
| "ui/gfx/geometry/insets_f.cc", |
| "ui/gfx/geometry/point.cc", |
| "ui/gfx/geometry/point_conversions.cc", |
| "ui/gfx/geometry/point_f.cc", |
| "ui/gfx/geometry/rect.cc", |
| "ui/gfx/geometry/rect_f.cc", |
| "ui/gfx/geometry/size.cc", |
| "ui/gfx/geometry/size_conversions.cc", |
| "ui/gfx/geometry/size_f.cc", |
| "ui/gfx/geometry/vector2d.cc", |
| "ui/gfx/geometry/vector2d_f.cc", |
| "ui/gfx/range/range.cc", |
| "ui/gfx/range/range_f.cc", |
| ] |
| |
| libchromeLinuxSrc = [ |
| "base/files/file_path_watcher_linux.cc", |
| "base/files/file_util_linux.cc", |
| "base/memory/shared_memory_posix.cc", |
| "base/posix/unix_domain_socket.cc", |
| "base/process/internal_linux.cc", |
| "base/process/memory_linux.cc", |
| "base/process/process_handle_linux.cc", |
| "base/process/process_info_linux.cc", |
| "base/process/process_iterator_linux.cc", |
| "base/process/process_metrics_linux.cc", |
| "base/strings/sys_string_conversions_posix.cc", |
| "base/sys_info_linux.cc", |
| "base/threading/platform_thread_internal_posix.cc", |
| "base/threading/platform_thread_linux.cc", |
| "components/timers/alarm_timer_chromeos.cc", |
| ] |
| |
| libchromeLinuxGlibcSrc = [ |
| "base/allocator/allocator_shim.cc", |
| "base/allocator/allocator_shim_default_dispatch_to_glibc.cc", |
| "base/debug/stack_trace_posix.cc", |
| ] |
| |
| libchromeAndroidSrc = [ |
| "base/debug/stack_trace_android.cc", |
| "base/memory/shared_memory_android.cc", |
| "base/sys_info_chromeos.cc", |
| ] |
| |
| // libchrome static+shared for host and device |
| // ======================================================== |
| cc_library { |
| name: "libchrome", |
| host_supported: true, |
| recovery_available: true, |
| vendor_available: true, |
| defaults: ["libchrome-defaults"], |
| srcs: libchromeCommonSrc, |
| |
| export_shared_lib_headers: ["libbase"], |
| export_static_lib_headers: ["libgtest_prod"], |
| shared_libs: [ |
| "libbase", |
| "libevent", |
| ], |
| static_libs: [ |
| "libgtest_prod", |
| "libmodpb64", |
| ], |
| target: { |
| linux: { |
| srcs: libchromeLinuxSrc, |
| }, |
| linux_glibc: { |
| srcs: libchromeLinuxGlibcSrc, |
| }, |
| android: { |
| srcs: libchromeAndroidSrc, |
| shared_libs: [ |
| "libcutils", |
| "liblog", |
| ], |
| }, |
| }, |
| } |
| |
| // libchrome-crypto shared library for device |
| // ======================================================== |
| |
| // Similar to libchrome, generate wrapped header files. See comments for |
| // libchrome-include for the details. |
| gensrcs { |
| name: "libchrome-crypto-include", |
| cmd: "$(location libchrome_tools/include_generator.py) $(in) $(out)", |
| tool_files: ["libchrome_tools/include_generator.py"], |
| export_include_dirs: ["."], |
| srcs: ["crypto/**/*.h"], |
| output_extension: "h", |
| } |
| |
| cc_library_shared { |
| name: "libchrome-crypto", |
| vendor_available: true, |
| defaults: ["libchrome-defaults"], |
| srcs: [ |
| "crypto/openssl_util.cc", |
| "crypto/random.cc", |
| "crypto/secure_hash.cc", |
| "crypto/secure_util.cc", |
| "crypto/sha2.cc", |
| ], |
| |
| generated_headers: ["libchrome-crypto-include"], |
| export_generated_headers: ["libchrome-crypto-include"], |
| |
| shared_libs: [ |
| "libchrome", |
| "libcrypto", |
| "libssl", |
| ], |
| } |
| |
| // Helpers needed for unit tests. |
| // ======================================================== |
| cc_library_static { |
| name: "libchrome_test_helpers", |
| defaults: ["libchrome-test-defaults"], |
| shared_libs: ["libchrome"], |
| host_supported: true, |
| |
| srcs: [ |
| "base/test/gtest_util.cc", |
| "base/test/simple_test_clock.cc", |
| "base/test/simple_test_tick_clock.cc", |
| "base/test/test_file_util.cc", |
| "base/test/test_file_util_linux.cc", |
| "base/test/test_switches.cc", |
| "base/test/test_timeouts.cc", |
| ], |
| } |
| |
| // Helpers needed for unit tests (for host). |
| // ======================================================== |
| cc_library_host_static { |
| name: "libchrome_test_helpers-host", |
| defaults: ["libchrome-test-defaults"], |
| shared_libs: ["libchrome"], |
| |
| srcs: ["base/test/simple_test_clock.cc"], |
| } |
| |
| // Host and target unit tests. Run (from repo root) with: |
| // ./out/host/<arch>/nativetest/libchrome_test/libchrome_test |
| // or |
| // adb shell /data/nativetest/libchrome_test/libchrome_test |
| // ======================================================== |
| cc_test { |
| name: "libchrome_test", |
| host_supported: true, |
| defaults: ["libchrome-test-defaults"], |
| srcs: [ |
| "base/at_exit_unittest.cc", |
| "base/atomicops_unittest.cc", |
| "base/base64_unittest.cc", |
| "base/base64url_unittest.cc", |
| "base/big_endian_unittest.cc", |
| "base/bind_unittest.cc", |
| "base/bits_unittest.cc", |
| "base/build_time_unittest.cc", |
| "base/callback_helpers_unittest.cc", |
| "base/callback_list_unittest.cc", |
| "base/callback_unittest.cc", |
| "base/cancelable_callback_unittest.cc", |
| "base/command_line_unittest.cc", |
| "base/cpu_unittest.cc", |
| "base/debug/activity_tracker_unittest.cc", |
| "base/debug/debugger_unittest.cc", |
| "base/debug/leak_tracker_unittest.cc", |
| "base/environment_unittest.cc", |
| "base/files/dir_reader_posix_unittest.cc", |
| "base/files/file_descriptor_watcher_posix_unittest.cc", |
| "base/files/file_enumerator_unittest.cc", |
| "base/files/file_path_unittest.cc", |
| "base/files/file_path_watcher_unittest.cc", |
| "base/files/file_unittest.cc", |
| "base/files/important_file_writer_unittest.cc", |
| "base/files/scoped_temp_dir_unittest.cc", |
| "base/gmock_unittest.cc", |
| "base/guid_unittest.cc", |
| "base/json/json_parser_unittest.cc", |
| "base/json/json_reader_unittest.cc", |
| "base/json/json_value_converter_unittest.cc", |
| "base/json/json_value_serializer_unittest.cc", |
| "base/json/json_writer_unittest.cc", |
| "base/json/string_escape_unittest.cc", |
| "base/lazy_instance_unittest.cc", |
| "base/logging_unittest.cc", |
| "base/md5_unittest.cc", |
| "base/memory/aligned_memory_unittest.cc", |
| "base/memory/linked_ptr_unittest.cc", |
| "base/memory/ref_counted_memory_unittest.cc", |
| "base/memory/ref_counted_unittest.cc", |
| "base/memory/singleton_unittest.cc", |
| "base/memory/weak_ptr_unittest.cc", |
| "base/message_loop/message_loop_task_runner_unittest.cc", |
| "base/message_loop/message_loop_unittest.cc", |
| "base/metrics/bucket_ranges_unittest.cc", |
| "base/metrics/field_trial_unittest.cc", |
| "base/metrics/histogram_base_unittest.cc", |
| "base/metrics/histogram_macros_unittest.cc", |
| "base/metrics/histogram_snapshot_manager_unittest.cc", |
| "base/metrics/histogram_unittest.cc", |
| "base/metrics/metrics_hashes_unittest.cc", |
| "base/metrics/persistent_histogram_allocator_unittest.cc", |
| "base/metrics/persistent_memory_allocator_unittest.cc", |
| "base/metrics/persistent_sample_map_unittest.cc", |
| "base/metrics/sample_map_unittest.cc", |
| "base/metrics/sample_vector_unittest.cc", |
| "base/metrics/sparse_histogram_unittest.cc", |
| "base/metrics/statistics_recorder_unittest.cc", |
| "base/observer_list_unittest.cc", |
| "base/optional_unittest.cc", |
| "base/pickle_unittest.cc", |
| "base/posix/file_descriptor_shuffle_unittest.cc", |
| "base/posix/unix_domain_socket_unittest.cc", |
| "base/process/process_info_unittest.cc", |
| "base/process/process_metrics_unittest.cc", |
| "base/rand_util_unittest.cc", |
| "base/scoped_clear_errno_unittest.cc", |
| "base/scoped_generic_unittest.cc", |
| "base/security_unittest.cc", |
| "base/sequence_checker_unittest.cc", |
| "base/sequence_token_unittest.cc", |
| "base/sha1_unittest.cc", |
| "base/stl_util_unittest.cc", |
| "base/strings/pattern_unittest.cc", |
| "base/strings/string16_unittest.cc", |
| "base/strings/string_number_conversions_unittest.cc", |
| "base/strings/string_piece_unittest.cc", |
| "base/strings/string_split_unittest.cc", |
| "base/strings/string_util_unittest.cc", |
| "base/strings/stringprintf_unittest.cc", |
| "base/strings/sys_string_conversions_unittest.cc", |
| "base/strings/utf_string_conversions_unittest.cc", |
| "base/sync_socket_unittest.cc", |
| "base/synchronization/atomic_flag_unittest.cc", |
| "base/synchronization/condition_variable_unittest.cc", |
| "base/synchronization/lock_unittest.cc", |
| "base/synchronization/waitable_event_unittest.cc", |
| "base/sys_info_unittest.cc", |
| "base/task/cancelable_task_tracker_unittest.cc", |
| "base/task_runner_util_unittest.cc", |
| "base/task_scheduler/scheduler_lock_unittest.cc", |
| "base/task_scheduler/scoped_set_task_priority_for_current_thread_unittest.cc", |
| "base/task_scheduler/sequence_sort_key_unittest.cc", |
| "base/task_scheduler/sequence_unittest.cc", |
| "base/task_scheduler/task_traits.cc", |
| "base/template_util_unittest.cc", |
| "base/test/metrics/histogram_tester.cc", |
| "base/test/mock_entropy_provider.cc", |
| "base/test/multiprocess_test.cc", |
| "base/test/scoped_feature_list.cc", |
| "base/test/scoped_locale.cc", |
| "base/test/simple_test_tick_clock.cc", |
| "base/test/test_file_util.cc", |
| "base/test/test_file_util_linux.cc", |
| "base/test/test_file_util_posix.cc", |
| "base/test/test_io_thread.cc", |
| "base/test/test_mock_time_task_runner.cc", |
| "base/test/test_pending_task.cc", |
| "base/test/test_shared_memory_util.cc", |
| "base/test/test_simple_task_runner.cc", |
| "base/test/test_switches.cc", |
| "base/test/test_timeouts.cc", |
| "base/threading/platform_thread_unittest.cc", |
| "base/threading/simple_thread_unittest.cc", |
| "base/threading/thread_checker_unittest.cc", |
| "base/threading/thread_collision_warner_unittest.cc", |
| "base/threading/thread_id_name_manager_unittest.cc", |
| "base/threading/thread_local_storage_unittest.cc", |
| "base/threading/thread_local_unittest.cc", |
| "base/threading/thread_unittest.cc", |
| "base/time/pr_time_unittest.cc", |
| "base/time/time_unittest.cc", |
| "base/timer/hi_res_timer_manager_unittest.cc", |
| "base/timer/mock_timer.cc", |
| "base/tuple_unittest.cc", |
| "base/values_unittest.cc", |
| "base/version_unittest.cc", |
| "base/vlog_unittest.cc", |
| "testing/multiprocess_func_list.cc", |
| "testrunner.cc", |
| "ui/gfx/range/range_unittest.cc", |
| ], |
| |
| cflags: ["-DUNIT_TEST"], |
| shared_libs: [ |
| "libchrome", |
| "libevent", |
| ], |
| static_libs: [ |
| "libgmock", |
| "libgtest", |
| ], |
| target: { |
| android: { |
| srcs: [ |
| "crypto/secure_hash_unittest.cc", |
| "crypto/sha2_unittest.cc", |
| ], |
| shared_libs: [ |
| "libchrome-crypto", |
| ], |
| cflags: ["-DDONT_EMBED_BUILD_METADATA"], |
| }, |
| }, |
| } |
| |
| filegroup { |
| name: "libmojo_mojom_files", |
| srcs: [ |
| "ipc/ipc.mojom", |
| "mojo/public/interfaces/bindings/interface_control_messages.mojom", |
| "mojo/public/interfaces/bindings/native_struct.mojom", |
| "mojo/public/interfaces/bindings/pipe_control_messages.mojom", |
| "mojo/public/mojom/base/big_buffer.mojom", |
| "mojo/public/mojom/base/big_string.mojom", |
| "mojo/public/mojom/base/file.mojom", |
| "mojo/public/mojom/base/file_error.mojom", |
| "mojo/public/mojom/base/file_info.mojom", |
| "mojo/public/mojom/base/file_path.mojom", |
| "mojo/public/mojom/base/process_id.mojom", |
| "mojo/public/mojom/base/read_only_buffer.mojom", |
| "mojo/public/mojom/base/ref_counted_memory.mojom", |
| "mojo/public/mojom/base/shared_memory.mojom", |
| "mojo/public/mojom/base/string16.mojom", |
| "mojo/public/mojom/base/text_direction.mojom", |
| "mojo/public/mojom/base/thread_priority.mojom", |
| "mojo/public/mojom/base/time.mojom", |
| "mojo/public/mojom/base/unguessable_token.mojom", |
| "mojo/public/mojom/base/values.mojom", |
| "ui/gfx/geometry/mojo/geometry.mojom", |
| "ui/gfx/range/mojo/range.mojom", |
| ], |
| } |
| |
| filegroup { |
| name: "libmojo_mojo_sources", |
| srcs: [ |
| "mojo/**/*.cc", |
| ], |
| exclude_srcs: [ |
| // Unused in Chrome. Looks like mistakenly checked in. |
| // TODO(hidehiko): Remove this after the file is removed in Chrome |
| // repository. http://crrev.com/c/644531 |
| "mojo/public/cpp/system/message.cc", |
| |
| // No WTF support. |
| "mojo/public/cpp/bindings/lib/string_traits_wtf.cc", |
| |
| // Exclude windows/mac/ios/fuchsia files. |
| "**/*_win.cc", |
| "**/*_fuchsia.cc", |
| "mojo/core/mach_port_relay.*", |
| "mojo/public/cpp/base/logfont_win*", |
| "mojo/public/mojom/base/logfont_win*", |
| |
| // Exclude js binding related files. |
| "mojo/public/js/**/*", |
| |
| // Exclude tests. |
| "**/*_unittest.cc", |
| "**/*_unittests.cc", |
| "**/*_perftest.cc", |
| "mojo/core/core_test_base.*", |
| "mojo/core/test/*", |
| "mojo/core/test_utils.*", |
| "mojo/public/c/system/tests/**/*", |
| "mojo/public/cpp/bindings/tests/**/*", |
| "mojo/public/cpp/system/tests/**/*", |
| "mojo/public/cpp/test_support/**/*", |
| "mojo/public/java/system/javatests/**/*", |
| "mojo/public/tests/**/*", |
| |
| // Exclude memory allocator unsupported feature |
| "mojo/public/cpp/base/memory_allocator_dump_cross_process_uid*", |
| |
| // Exclude fuzzers |
| "mojo/public/tools/fuzzers/**/*", |
| ], |
| } |
| |
| // Python in Chrome repository requires still Python 2. |
| python_defaults { |
| name: "libmojo_scripts", |
| version: { |
| py2: { |
| enabled: true, |
| }, |
| py3: { |
| enabled: false, |
| }, |
| }, |
| } |
| |
| python_binary_host { |
| name: "jni_generator", |
| main: "base/android/jni_generator/jni_generator.py", |
| srcs: [ |
| "base/android/jni_generator/jni_generator.py", |
| "build/**/*.py", |
| ], |
| defaults: ["libmojo_scripts"], |
| } |
| |
| python_binary_host { |
| name: "jni_registration_generator", |
| main: "base/android/jni_generator/jni_registration_generator.py", |
| srcs: [ |
| "base/android/jni_generator/jni_generator.py", |
| "base/android/jni_generator/jni_registration_generator.py", |
| "build/**/*.py", |
| ], |
| defaults: ["libmojo_scripts"], |
| } |
| |
| python_binary_host { |
| name: "mojom_bindings_generator", |
| main: "mojo/public/tools/bindings/mojom_bindings_generator.py", |
| srcs: [ |
| "build/**/*.py", |
| "mojo/public/tools/bindings/**/*.py", |
| "third_party/jinja2/**/*.py", |
| "third_party/markupsafe/**/*.py", |
| "third_party/ply/**/*.py", |
| ], |
| data: [ |
| "mojo/public/tools/bindings/generators/cpp_templates/*.tmpl", |
| "mojo/public/tools/bindings/generators/java_templates/*.tmpl", |
| "mojo/public/tools/bindings/generators/js_templates/*.tmpl", |
| ], |
| defaults: ["libmojo_scripts"], |
| } |
| |
| genrule { |
| name: "libmojo_mojom_templates", |
| cmd: "$(location mojom_bindings_generator)" + |
| " --use_bundled_pylibs precompile" + |
| " -o $(genDir)", |
| |
| tools: [ |
| "mojom_bindings_generator", |
| ], |
| |
| out: [ |
| "cpp_templates.zip", |
| "java_templates.zip", |
| "js_templates.zip", |
| ], |
| } |
| |
| python_binary_host { |
| name: "mojom_generate_type_mappings", |
| main: "libchrome_tools/mojom_generate_type_mappings.py", |
| srcs: [ |
| "build/gn_helpers.py", |
| "libchrome_tools/mojom_generate_type_mappings.py", |
| "mojo/public/tools/bindings/generate_type_mappings.py", |
| "mojo/public/tools/bindings/pylib/mojom/fileutil.py", |
| "mojo/public/tools/bindings/pylib/mojom/generate/generator.py", |
| "mojo/public/tools/bindings/pylib/mojom/generate/module.py", |
| "mojo/public/tools/bindings/pylib/mojom/generate/pack.py", |
| ], |
| defaults: ["libmojo_scripts"], |
| } |
| |
| genrule { |
| name: "libmojo_common_custom_types__type_mappings", |
| cmd: "$(location mojom_generate_type_mappings)" + |
| " --output=$(out)" + |
| " $(in)", |
| |
| tools: ["mojom_generate_type_mappings"], |
| |
| srcs: [ |
| "mojo/public/cpp/base/big_buffer.typemap", |
| "mojo/public/cpp/base/big_string.typemap", |
| "mojo/public/cpp/base/file.typemap", |
| "mojo/public/cpp/base/file_error.typemap", |
| "mojo/public/cpp/base/file_info.typemap", |
| "mojo/public/cpp/base/file_path.typemap", |
| "mojo/public/cpp/base/process_id.typemap", |
| "mojo/public/cpp/base/read_only_buffer.typemap", |
| "mojo/public/cpp/base/ref_counted_memory.typemap", |
| "mojo/public/cpp/base/shared_memory.typemap", |
| "mojo/public/cpp/base/string16.typemap", |
| "mojo/public/cpp/base/text_direction.typemap", |
| "mojo/public/cpp/base/thread_priority.typemap", |
| "mojo/public/cpp/base/time.typemap", |
| "mojo/public/cpp/base/unguessable_token.typemap", |
| "mojo/public/cpp/base/values.typemap", |
| "ui/gfx/geometry/mojo/geometry.typemap", |
| "ui/gfx/range/mojo/range.typemap", |
| ], |
| out: ["common_custom_types__type_mappings"], |
| } |
| |
| python_binary_host { |
| name: "mojom_types_downgrader", |
| main: "mojo/public/tools/bindings/mojom_types_downgrader.py", |
| srcs: [ |
| "mojo/public/tools/bindings/mojom_types_downgrader.py", |
| ], |
| defaults: ["libmojo_scripts"], |
| } |
| |
| generate_mojom_downgraded_files { |
| name: "libmojo_mojom_downgraded_files", |
| srcs: [":libmojo_mojom_files"], |
| } |
| |
| generate_mojom_pickles { |
| name: "libmojo_mojom_pickles", |
| srcs: [":libmojo_mojom_downgraded_files"], |
| } |
| |
| generate_mojom_headers { |
| name: "libmojo_mojom_headers", |
| srcs: [":libmojo_mojom_downgraded_files"], |
| pickles: [":libmojo_mojom_pickles"], |
| templates: ":libmojo_mojom_templates", |
| flags: "--disallow_native_types", |
| typemaps: [":libmojo_common_custom_types__type_mappings"], |
| } |
| |
| generate_mojom_srcs { |
| name: "libmojo_mojom_srcs", |
| srcs: [":libmojo_mojom_downgraded_files"], |
| pickles: [":libmojo_mojom_pickles"], |
| templates: ":libmojo_mojom_templates", |
| flags: "--disallow_native_types", |
| typemaps: [":libmojo_common_custom_types__type_mappings"], |
| } |
| |
| genrule { |
| name: "libmojo_jni_headers", |
| cmd: "$(location libchrome_tools/jni_generator_helper.sh)" + |
| " --jni_generator=$(location jni_generator)" + |
| " --output_dir=$(genDir)/jni" + |
| " --includes=base/android/jni_generator/jni_generator_helper.h" + |
| " --ptr_type=long" + |
| " $(in)", |
| |
| tools: [ |
| "jni_generator", |
| ], |
| |
| tool_files: [ |
| "libchrome_tools/jni_generator_helper.sh", |
| ], |
| |
| srcs: [ |
| "base/android/java/src/org/chromium/base/BuildInfo.java", |
| "base/android/java/src/org/chromium/base/JavaExceptionReporter.java", |
| "base/android/java/src/org/chromium/base/ThreadUtils.java", |
| "mojo/public/java/system/src/org/chromium/mojo/system/impl/BaseRunLoop.java", |
| "mojo/public/java/system/src/org/chromium/mojo/system/impl/CoreImpl.java", |
| "mojo/public/java/system/src/org/chromium/mojo/system/impl/WatcherImpl.java", |
| ], |
| |
| out: [ |
| "jni/BaseRunLoop_jni.h", |
| "jni/BuildInfo_jni.h", |
| "jni/CoreImpl_jni.h", |
| "jni/JavaExceptionReporter_jni.h", |
| "jni/WatcherImpl_jni.h", |
| ], |
| } |
| |
| genrule { |
| name: "libmojo_jni_registration_headers", |
| cmd: "$(location libchrome_tools/jni_registration_generator_helper.sh)" + |
| " --jni_generator=$(location jni_registration_generator)" + |
| " --output=$(genDir)/jni/libmojo_jni_registrations.h" + |
| " $(in)", |
| |
| tools: [ |
| "jni_registration_generator", |
| ], |
| |
| tool_files: [ |
| "libchrome_tools/jni_registration_generator_helper.sh", |
| ], |
| |
| srcs: [ |
| "base/android/java/src/org/chromium/base/BuildInfo.java", |
| "base/android/java/src/org/chromium/base/JavaExceptionReporter.java", |
| "base/android/java/src/org/chromium/base/ThreadUtils.java", |
| "mojo/public/java/system/src/org/chromium/mojo/system/impl/BaseRunLoop.java", |
| "mojo/public/java/system/src/org/chromium/mojo/system/impl/CoreImpl.java", |
| "mojo/public/java/system/src/org/chromium/mojo/system/impl/WatcherImpl.java", |
| ], |
| |
| out: [ |
| "jni/libmojo_jni_registrations.h", |
| ], |
| } |
| |
| cc_library_shared { |
| name: "libmojo", |
| vendor_available: true, |
| |
| generated_sources: ["libmojo_mojom_srcs"], |
| generated_headers: [ |
| "libmojo_jni_headers", |
| "libmojo_jni_registration_headers", |
| "libmojo_mojom_headers", |
| ], |
| export_generated_headers: [ |
| "libmojo_jni_registration_headers", |
| "libmojo_mojom_headers", |
| ], |
| |
| srcs: [ |
| ":libmojo_mojo_sources", |
| "base/android/build_info.cc", |
| "base/android/java_exception_reporter.cc", |
| "base/android/jni_android.cc", |
| "base/android/jni_array.cc", |
| "base/android/jni_string.cc", |
| "base/android/scoped_java_ref.cc", |
| "ipc/ipc_message.cc", |
| "ipc/ipc_message_attachment.cc", |
| "ipc/ipc_message_attachment_set.cc", |
| "ipc/ipc_message_utils.cc", |
| "ipc/ipc_mojo_handle_attachment.cc", |
| "ipc/ipc_mojo_message_helper.cc", |
| "ipc/ipc_mojo_param_traits.cc", |
| "ipc/ipc_platform_file_attachment_posix.cc", |
| "ipc/native_handle_type_converters.cc", |
| ], |
| |
| cflags: [ |
| "-DMOJO_CORE_LEGACY_PROTOCOL", |
| "-Wall", |
| "-Werror", |
| "-Wno-missing-field-initializers", |
| "-Wno-unused-parameter", |
| ], |
| |
| // We also pass NO_ASHMEM to make base::SharedMemory avoid using it and prefer |
| // the POSIX versions. |
| cppflags: [ |
| "-DNO_ASHMEM", |
| "-Wno-extra", |
| "-Wno-ignored-qualifiers", |
| "-Wno-non-virtual-dtor", |
| "-Wno-sign-promo", |
| ], |
| |
| shared_libs: [ |
| "libchrome", |
| "libchrome-crypto", |
| "libevent", |
| "liblog", |
| ], |
| |
| header_libs: ["jni_headers"], |
| |
| export_include_dirs: ["."], |
| } |
| |
| generate_mojom_srcjar { |
| name: "libmojo_mojom_java_srcs", |
| srcs: [":libmojo_mojom_downgraded_files"], |
| pickles: [":libmojo_mojom_pickles"], |
| srcjar: "libmojo_mojom.srcjar", |
| templates: ":libmojo_mojom_templates", |
| flags: "--disallow_native_types", |
| typemaps: [":libmojo_common_custom_types__type_mappings"], |
| } |
| |
| java_library { |
| name: "android.mojo", |
| |
| srcs: [ |
| ":libmojo_mojom_java_srcs", |
| "base/android/java/src/**/*.java", |
| "mojo/android/system/src/**/*.java", |
| "mojo/public/java/bindings/src/**/*.java", |
| "mojo/public/java/system/src/**/*.java", |
| ], |
| |
| static_libs: [ |
| "android-support-annotations", |
| ], |
| } |