[M76 Migration] Fix crash during destruction of EvasGLDelegatedFrameHost
[platform/framework/web/chromium-efl.git] / device / BUILD.gn
1 # Copyright 2015 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 import("//build/config/features.gni")
6 import("//device/vr/buildflags/buildflags.gni")
7 import("//testing/test.gni")
8
9 if (is_android) {
10   import("//build/config/android/config.gni")
11   import("//build/config/android/rules.gni")  # For generate_jni().
12 }
13
14 if (is_mac) {
15   import("//build/config/mac/mac_sdk.gni")
16 }
17
18 is_linux_without_udev = is_linux && !use_udev
19
20 test("device_unittests") {
21   sources = [
22     "base/synchronization/one_writer_seqlock_unittest.cc",
23     "bluetooth/bluetooth_adapter_mac_metrics_unittest.mm",
24     "bluetooth/bluetooth_adapter_mac_unittest.mm",
25     "bluetooth/bluetooth_adapter_unittest.cc",
26     "bluetooth/bluetooth_adapter_win_unittest.cc",
27     "bluetooth/bluetooth_advertisement_unittest.cc",
28     "bluetooth/bluetooth_device_unittest.cc",
29     "bluetooth/bluetooth_device_win_unittest.cc",
30     "bluetooth/bluetooth_discovery_filter_unittest.cc",
31     "bluetooth/bluetooth_local_gatt_characteristic_unittest.cc",
32     "bluetooth/bluetooth_local_gatt_descriptor_unittest.cc",
33     "bluetooth/bluetooth_local_gatt_service_unittest.cc",
34     "bluetooth/bluetooth_low_energy_advertisement_manager_mac_unittest.mm",
35     "bluetooth/bluetooth_low_energy_win_unittest.cc",
36     "bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc",
37     "bluetooth/bluetooth_remote_gatt_descriptor_unittest.cc",
38     "bluetooth/bluetooth_remote_gatt_service_unittest.cc",
39     "bluetooth/bluetooth_service_record_win_unittest.cc",
40     "bluetooth/bluetooth_task_manager_win_unittest.cc",
41     "bluetooth/bluetooth_uuid_unittest.cc",
42     "bluetooth/device_unittest.cc",
43     "bluetooth/string_util_icu_unittest.cc",
44     "bluetooth/test/bluetooth_gatt_server_test.cc",
45     "bluetooth/test/bluetooth_gatt_server_test.h",
46     "bluetooth/test/bluetooth_test.cc",
47     "bluetooth/test/bluetooth_test.h",
48     "bluetooth/test/bluetooth_test_android.cc",
49     "bluetooth/test/bluetooth_test_android.h",
50     "bluetooth/test/bluetooth_test_mac.h",
51     "bluetooth/test/bluetooth_test_mac.mm",
52     "bluetooth/test/bluetooth_test_win.cc",
53     "bluetooth/test/bluetooth_test_win.h",
54     "bluetooth/test/mock_bluetooth_cbcharacteristic_mac.h",
55     "bluetooth/test/mock_bluetooth_cbcharacteristic_mac.mm",
56     "bluetooth/test/mock_bluetooth_cbdescriptor_mac.h",
57     "bluetooth/test/mock_bluetooth_cbdescriptor_mac.mm",
58     "bluetooth/test/mock_bluetooth_cbperipheral_mac.h",
59     "bluetooth/test/mock_bluetooth_cbperipheral_mac.mm",
60     "bluetooth/test/mock_bluetooth_cbservice_mac.h",
61     "bluetooth/test/mock_bluetooth_cbservice_mac.mm",
62     "bluetooth/test/mock_bluetooth_central_manager_mac.h",
63     "bluetooth/test/mock_bluetooth_central_manager_mac.mm",
64     "bluetooth/test/test_bluetooth_adapter_observer.cc",
65     "bluetooth/test/test_bluetooth_adapter_observer.h",
66     "bluetooth/test/test_bluetooth_advertisement_observer.cc",
67     "bluetooth/test/test_bluetooth_advertisement_observer.h",
68     "bluetooth/test/test_bluetooth_local_gatt_service_delegate.cc",
69     "bluetooth/test/test_bluetooth_local_gatt_service_delegate.h",
70     "bluetooth/test/test_pairing_delegate.cc",
71     "bluetooth/test/test_pairing_delegate.h",
72     "bluetooth/uribeacon/uri_encoder_unittest.cc",
73     "fido/attestation_statement_formats_unittest.cc",
74     "fido/bio/enrollment_handler_unittest.cc",
75     "fido/ble/fido_ble_connection_unittest.cc",
76     "fido/ble/fido_ble_device_unittest.cc",
77     "fido/ble/fido_ble_frames_unittest.cc",
78     "fido/ble/fido_ble_pairing_delegate_unittest.cc",
79     "fido/ble/fido_ble_transaction_unittest.cc",
80     "fido/ble_adapter_manager_unittest.cc",
81     "fido/cable/fido_cable_device_unittest.cc",
82     "fido/cable/fido_cable_discovery_unittest.cc",
83     "fido/cable/fido_cable_handshake_handler_unittest.cc",
84     "fido/credential_management_handler_unittest.cc",
85     "fido/ctap_request_unittest.cc",
86     "fido/ctap_response_unittest.cc",
87     "fido/fake_fido_discovery_unittest.cc",
88     "fido/fido_device_discovery_unittest.cc",
89     "fido/fido_parsing_utils_unittest.cc",
90     "fido/fido_request_handler_unittest.cc",
91     "fido/get_assertion_handler_unittest.cc",
92     "fido/get_assertion_task_unittest.cc",
93     "fido/hid/fido_hid_message_unittest.cc",
94     "fido/mac/browsing_data_deletion_unittest.mm",
95     "fido/mac/credential_metadata_unittest.cc",
96     "fido/mac/get_assertion_operation_unittest_mac.mm",
97     "fido/mac/make_credential_operation_unittest_mac.mm",
98     "fido/mac/util_unittest.cc",
99     "fido/make_credential_handler_unittest.cc",
100     "fido/make_credential_task_unittest.cc",
101     "fido/test_callback_receiver_unittest.cc",
102     "fido/u2f_command_constructor_unittest.cc",
103     "fido/u2f_register_operation_unittest.cc",
104     "fido/u2f_sign_operation_unittest.cc",
105     "fido/win/type_conversions_unittest.cc",
106     "gamepad/abstract_haptic_gamepad_unittest.cc",
107     "gamepad/gamepad_id_list_unittest.cc",
108     "gamepad/gamepad_provider_unittest.cc",
109     "gamepad/gamepad_service_unittest.cc",
110     "gamepad/hid_haptic_gamepad_base_unittest.cc",
111     "gamepad/public/cpp/gamepad_mojom_traits_unittest.cc",
112     "test/run_all_unittests.cc",
113   ]
114
115   if (is_fuchsia) {
116     sources += [
117       "bluetooth/test/bluetooth_test_fuchsia.cc",
118       "bluetooth/test/bluetooth_test_fuchsia.h",
119     ]
120   }
121
122   deps = [
123     "//base",
124     "//base/test:test_support",
125     "//base/third_party/dynamic_annotations:dynamic_annotations",
126     "//components/apdu",
127     "//components/cbor",
128     "//components/device_event_log",
129     "//device/base",
130     "//device/base/synchronization",
131     "//device/bluetooth",
132     "//device/bluetooth:deprecated_experimental_mojo",
133     "//device/bluetooth:mocks",
134     "//device/bluetooth/uribeacon",
135     "//device/fido",
136     "//device/fido:mocks",
137     "//device/fido:test_support",
138     "//device/gamepad",
139     "//device/gamepad:test_helpers",
140     "//device/gamepad/public/cpp:shared_with_blink",
141     "//device/gamepad/public/mojom",
142     "//mojo/core/embedder",
143     "//mojo/public/cpp/bindings",
144     "//mojo/public/cpp/test_support:test_utils",
145     "//net",
146     "//testing/gmock",
147     "//testing/gtest",
148     "//third_party/blink/public:blink_headers",
149     "//ui/base",
150     "//url",
151   ]
152
153   data_deps = [
154     "bluetooth/strings:bluetooth_test_strings",
155     "//ui/resources:ui_test_pak_data",
156   ]
157
158   # U2F:
159   # Android doesn't compile.
160   # Linux, requires udev.
161   if (!is_linux_without_udev && !is_android) {
162     sources += [
163       "fido/hid/fido_hid_device_unittest.cc",
164       "fido/hid/fido_hid_discovery_unittest.cc",
165     ]
166     deps += [
167       "//device/fido:test_support",
168       "//services/device/public/cpp/hid",
169       "//services/device/public/mojom",
170       "//services/service_manager/public/cpp",
171       "//services/service_manager/public/mojom",
172     ]
173   }
174
175   if (use_udev) {
176     sources += [ "udev_linux/udev_unittest.cc" ]
177     deps += [ "//device/udev_linux" ]
178   }
179
180   if (is_android) {
181     deps += [
182       ":bluetooth_test_java",
183       ":bluetooth_test_jni_headers",
184     ]
185   }
186
187   if (is_chromeos) {
188     sources += [ "bluetooth/chromeos/bluetooth_utils_unittest.cc" ]
189     deps += [ "//chromeos/constants" ]
190   }
191
192   if ((is_chromeos || is_linux) && use_dbus) {
193     configs += [ "//build/config/linux/dbus" ]
194
195     sources += [
196       "bluetooth/bluez/bluetooth_adapter_profile_bluez_unittest.cc",
197       "bluetooth/bluez/bluetooth_advertisement_bluez_unittest.cc",
198       "bluetooth/bluez/bluetooth_bluez_unittest.cc",
199       "bluetooth/bluez/bluetooth_gatt_bluez_unittest.cc",
200       "bluetooth/bluez/bluetooth_service_attribute_value_bluez_unittest.cc",
201       "bluetooth/bluez/bluetooth_service_record_bluez_unittest.cc",
202       "bluetooth/bluez/bluetooth_socket_bluez_unittest.cc",
203       "bluetooth/dbus/bluetooth_gatt_application_service_provider_unittest.cc",
204       "bluetooth/test/bluetooth_test_bluez.cc",
205       "bluetooth/test/bluetooth_test_bluez.h",
206     ]
207
208     deps += [ "//dbus" ]
209   }
210
211   if (is_linux) {
212     if (is_chromecast) {
213       # Cast does not support GATT server mode.
214       sources -= [
215         "bluetooth/bluetooth_local_gatt_characteristic_unittest.cc",
216         "bluetooth/bluetooth_local_gatt_descriptor_unittest.cc",
217         "bluetooth/bluetooth_local_gatt_service_unittest.cc",
218       ]
219
220       sources += [
221         "bluetooth/cast/bluetooth_adapter_cast_unittest.cc",
222         "bluetooth/cast/bluetooth_utils_unittest.cc",
223         "bluetooth/test/bluetooth_test_cast.cc",
224         "bluetooth/test/bluetooth_test_cast.h",
225       ]
226
227       deps += [
228         "//chromecast/device/bluetooth:util",
229         "//chromecast/device/bluetooth/le",
230         "//chromecast/device/bluetooth/le:test_support",
231         "//chromecast/device/bluetooth/shlib:mock_shlib",
232       ]
233     } else {
234       # BLE discovery: works on Linux.
235       sources += [ "fido/ble/fido_ble_discovery_unittest.cc" ]
236     }
237   }
238
239   if (is_mac) {
240     deps += [ "//third_party/ocmock" ]
241     ldflags = [ "-ObjC" ]
242     libs = [
243       "IOBluetooth.framework",
244       "IOKit.framework",
245     ]
246
247     # In the OSX 10.10 SDK, CoreBluetooth became a top level framework.
248     # Previously, it was nested in IOBluetooth. In order for Chrome to run on
249     # OSes older than OSX 10.10, the top level CoreBluetooth framework must be
250     # weakly linked.
251     if (mac_sdk_version == "10.10") {
252       ldflags += [
253         "-weak_framework",
254         "CoreBluetooth",
255       ]
256     }
257   }
258
259   if (is_win) {
260     sources += [
261       "bluetooth/bluetooth_classic_win_fake.cc",
262       "bluetooth/bluetooth_classic_win_fake.h",
263       "bluetooth/bluetooth_low_energy_win_fake.cc",
264       "bluetooth/bluetooth_low_energy_win_fake.h",
265       "bluetooth/test/fake_bluetooth_adapter_winrt.cc",
266       "bluetooth/test/fake_bluetooth_adapter_winrt.h",
267       "bluetooth/test/fake_bluetooth_le_advertisement_data_section_winrt.cc",
268       "bluetooth/test/fake_bluetooth_le_advertisement_data_section_winrt.h",
269       "bluetooth/test/fake_bluetooth_le_advertisement_publisher_status_changed_event_args_winrt.cc",
270       "bluetooth/test/fake_bluetooth_le_advertisement_publisher_status_changed_event_args_winrt.h",
271       "bluetooth/test/fake_bluetooth_le_advertisement_publisher_winrt.cc",
272       "bluetooth/test/fake_bluetooth_le_advertisement_publisher_winrt.h",
273       "bluetooth/test/fake_bluetooth_le_advertisement_received_event_args_winrt.cc",
274       "bluetooth/test/fake_bluetooth_le_advertisement_received_event_args_winrt.h",
275       "bluetooth/test/fake_bluetooth_le_advertisement_watcher_winrt.cc",
276       "bluetooth/test/fake_bluetooth_le_advertisement_watcher_winrt.h",
277       "bluetooth/test/fake_bluetooth_le_advertisement_winrt.cc",
278       "bluetooth/test/fake_bluetooth_le_advertisement_winrt.h",
279       "bluetooth/test/fake_bluetooth_le_device_winrt.cc",
280       "bluetooth/test/fake_bluetooth_le_device_winrt.h",
281       "bluetooth/test/fake_bluetooth_le_manufacturer_data_winrt.cc",
282       "bluetooth/test/fake_bluetooth_le_manufacturer_data_winrt.h",
283       "bluetooth/test/fake_device_information_custom_pairing_winrt.cc",
284       "bluetooth/test/fake_device_information_custom_pairing_winrt.h",
285       "bluetooth/test/fake_device_information_pairing_winrt.cc",
286       "bluetooth/test/fake_device_information_pairing_winrt.h",
287       "bluetooth/test/fake_device_information_winrt.cc",
288       "bluetooth/test/fake_device_information_winrt.h",
289       "bluetooth/test/fake_device_pairing_requested_event_args_winrt.cc",
290       "bluetooth/test/fake_device_pairing_requested_event_args_winrt.h",
291       "bluetooth/test/fake_device_pairing_result_winrt.cc",
292       "bluetooth/test/fake_device_pairing_result_winrt.h",
293       "bluetooth/test/fake_device_watcher_winrt.cc",
294       "bluetooth/test/fake_device_watcher_winrt.h",
295       "bluetooth/test/fake_gatt_characteristic_winrt.cc",
296       "bluetooth/test/fake_gatt_characteristic_winrt.h",
297       "bluetooth/test/fake_gatt_characteristics_result_winrt.cc",
298       "bluetooth/test/fake_gatt_characteristics_result_winrt.h",
299       "bluetooth/test/fake_gatt_descriptor_winrt.cc",
300       "bluetooth/test/fake_gatt_descriptor_winrt.h",
301       "bluetooth/test/fake_gatt_descriptors_result_winrt.cc",
302       "bluetooth/test/fake_gatt_descriptors_result_winrt.h",
303       "bluetooth/test/fake_gatt_device_service_winrt.cc",
304       "bluetooth/test/fake_gatt_device_service_winrt.h",
305       "bluetooth/test/fake_gatt_device_services_result_winrt.cc",
306       "bluetooth/test/fake_gatt_device_services_result_winrt.h",
307       "bluetooth/test/fake_gatt_read_result_winrt.cc",
308       "bluetooth/test/fake_gatt_read_result_winrt.h",
309       "bluetooth/test/fake_gatt_value_changed_event_args_winrt.cc",
310       "bluetooth/test/fake_gatt_value_changed_event_args_winrt.h",
311       "bluetooth/test/fake_gatt_write_result_winrt.cc",
312       "bluetooth/test/fake_gatt_write_result_winrt.h",
313       "bluetooth/test/fake_radio_winrt.cc",
314       "bluetooth/test/fake_radio_winrt.h",
315     ]
316   }
317
318   if (enable_vr) {
319     sources += [
320       "vr/orientation/orientation_device_provider_unittest.cc",
321       "vr/orientation/orientation_device_unittest.cc",
322       "vr/util/fps_meter_unittest.cc",
323       "vr/util/sliding_average_unittest.cc",
324       "vr/vr_device_base_unittest.cc",
325       "vr/vr_display_impl_unittest.cc",
326     ]
327
328     if (is_android) {
329       deps += [ "//device/vr:java" ]
330     }
331
332     defines = [ "DEVICE_VR_IMPLEMENTATION" ]
333
334     deps += [
335       "//device/vr",
336       "//device/vr:fakes",
337       "//device/vr/public/mojom",
338       "//services/device/public/cpp/generic_sensor",
339       "//ui/display",
340       "//ui/display:test_support",
341     ]
342   }
343
344   # Some gamepad tests require the HID service. Only build these tests on
345   # platforms where the HID service is enabled.
346   if (!is_android && !is_fuchsia) {
347     sources += [ "gamepad/nintendo_data_fetcher_unittest.cc" ]
348
349     deps += [
350       "//services/device:test_support",
351       "//services/device/hid",
352       "//services/device/hid:mocks",
353     ]
354   }
355 }
356
357 if (is_android) {
358   bluetooth_java_sources_needing_jni = [
359     "bluetooth/test/android/java/src/org/chromium/device/bluetooth/Fakes.java",
360   ]
361
362   generate_jni("bluetooth_test_jni_headers") {
363     sources = bluetooth_java_sources_needing_jni
364     jni_package = "bluetooth"
365   }
366
367   android_library("bluetooth_test_java") {
368     testonly = true
369     java_files = bluetooth_java_sources_needing_jni
370     deps = [
371       "//base:base_java",
372       "//components/location/android:location_java",
373       "//device/bluetooth:java",
374       "//third_party/android_deps:com_android_support_support_annotations_java",
375       "//third_party/android_sdk:android_test_mock_java",
376     ]
377
378     srcjar_deps = [ ":bluetooth_test_javagen" ]
379   }
380
381   junit_binary("device_junit_tests") {
382     java_files = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ]
383     deps = [
384       "$google_play_services_package:google_play_services_base_java",
385       "$google_play_services_package:google_play_services_basement_java",
386       "$google_play_services_package:google_play_services_location_java",
387       "//base:base_java",
388       "//base:base_java_test_support",
389       "//base:base_junit_test_support",
390       "//device/gamepad:java",
391       "//mojo/public/java:bindings_java",
392       "//third_party/android_deps:com_android_support_support_annotations_java",
393     ]
394     srcjar_deps = [ "//device/gamepad:java_enums_srcjar" ]
395   }
396
397   java_cpp_enum("bluetooth_test_javagen") {
398     sources = [
399       "bluetooth/test/bluetooth_test.h",
400     ]
401   }
402 }