BUILD.gn 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. # Copyright 2017 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. import("//build/config/chromeos/ui_mode.gni")
  5. import("//build/config/chromeos/ui_mode.gni")
  6. import("//build/config/features.gni")
  7. if (is_android) {
  8. import("//build/config/android/config.gni")
  9. import("//build/config/android/rules.gni") # For generate_jni().
  10. }
  11. source_set("geolocation") {
  12. visibility = [
  13. ":*",
  14. "//services/device:*",
  15. ]
  16. sources = [
  17. "geolocation_config.cc",
  18. "geolocation_config.h",
  19. "geolocation_context.cc",
  20. "geolocation_context.h",
  21. "geolocation_impl.cc",
  22. "geolocation_impl.h",
  23. "geolocation_provider.h",
  24. "geolocation_provider_impl.cc",
  25. "geolocation_provider_impl.h",
  26. "location_arbitrator.cc",
  27. "location_arbitrator.h",
  28. "network_location_request.cc",
  29. "network_location_request.h",
  30. "position_cache.h",
  31. "position_cache_impl.cc",
  32. "position_cache_impl.h",
  33. "public_ip_address_geolocation_provider.cc",
  34. "public_ip_address_geolocation_provider.h",
  35. "public_ip_address_geolocator.cc",
  36. "public_ip_address_geolocator.h",
  37. "public_ip_address_location_notifier.cc",
  38. "public_ip_address_location_notifier.h",
  39. "wifi_data.cc",
  40. "wifi_data.h",
  41. "wifi_data_provider.cc",
  42. "wifi_data_provider.h",
  43. "wifi_data_provider_handle.cc",
  44. "wifi_data_provider_handle.h",
  45. "wifi_polling_policy.cc",
  46. "wifi_polling_policy.h",
  47. ]
  48. deps = [
  49. "//base",
  50. "//mojo/public/cpp/bindings",
  51. "//mojo/public/cpp/system",
  52. "//net",
  53. "//services/device/public/cpp:device_features",
  54. "//ui/gfx",
  55. ]
  56. public_deps = [
  57. "//services/device/public/cpp/geolocation",
  58. "//services/device/public/mojom",
  59. "//services/network/public/cpp",
  60. ]
  61. if (is_android) {
  62. sources += [
  63. "location_api_adapter_android.cc",
  64. "location_api_adapter_android.h",
  65. "location_provider_android.cc",
  66. "location_provider_android.h",
  67. ]
  68. deps += [ ":geolocation_jni_headers" ]
  69. } else {
  70. sources += [
  71. "network_location_provider.cc",
  72. "network_location_provider.h",
  73. "wifi_data_provider_common.cc",
  74. "wifi_data_provider_common.h",
  75. ]
  76. }
  77. if (is_mac) {
  78. frameworks = [ "Security.framework" ]
  79. sources += [
  80. "core_location_provider.cc",
  81. "core_location_provider.h",
  82. ]
  83. }
  84. if (is_win) {
  85. sources += [
  86. "win/location_provider_winrt.cc",
  87. "win/location_provider_winrt.h",
  88. ]
  89. deps += [ "//services/device/public/cpp:device_features" ]
  90. }
  91. # Platform-specific WifiDataProvider implementations.
  92. if (is_chromeos_ash) {
  93. sources += [
  94. "wifi_data_provider_chromeos.cc",
  95. "wifi_data_provider_chromeos.h",
  96. ]
  97. deps += [ "//chromeos/ash/components/network" ]
  98. } else if (is_linux && use_dbus) {
  99. sources += [
  100. "wifi_data_provider_linux.cc",
  101. "wifi_data_provider_linux.h",
  102. ]
  103. deps += [ "//dbus" ]
  104. } else if (is_chromeos_lacros) {
  105. sources += [
  106. "wifi_data_provider_lacros.cc",
  107. "wifi_data_provider_lacros.h",
  108. ]
  109. deps += [
  110. "//chromeos/crosapi/mojom",
  111. "//chromeos/lacros",
  112. ]
  113. } else if (is_mac) {
  114. frameworks += [
  115. "CoreWLAN.framework",
  116. "Foundation.framework",
  117. ]
  118. sources += [
  119. "wifi_data_provider_mac.h",
  120. "wifi_data_provider_mac.mm",
  121. ]
  122. } else if (is_win) {
  123. sources += [
  124. "wifi_data_provider_common_win.cc",
  125. "wifi_data_provider_common_win.h",
  126. "wifi_data_provider_win.cc",
  127. "wifi_data_provider_win.h",
  128. ]
  129. } else {
  130. # WifiDataProviderHandle declares a static factory method that is defined
  131. # by the platform implementation. Platforms with no Wi-Fi data provider must
  132. # include EmptyWifiDataProvider to provide this definition.
  133. sources += [
  134. "empty_wifi_data_provider.cc",
  135. "empty_wifi_data_provider.h",
  136. ]
  137. }
  138. }
  139. if (is_android) {
  140. generate_jni("geolocation_jni_headers") {
  141. sources = [
  142. "android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
  143. "android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",
  144. ]
  145. }
  146. android_library("geolocation_java") {
  147. sources = [
  148. "android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
  149. "android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java",
  150. "android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",
  151. "android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java",
  152. ]
  153. deps = [
  154. ":geolocation_jni_headers",
  155. "$google_play_services_package:google_play_services_base_java",
  156. "$google_play_services_package:google_play_services_basement_java",
  157. "$google_play_services_package:google_play_services_location_java",
  158. "$google_play_services_package:google_play_services_tasks_java",
  159. "//base:base_java",
  160. "//base:jni_java",
  161. "//build/android:build_java",
  162. "//components/location/android:location_java",
  163. "//services/device/public/java:geolocation_java",
  164. "//third_party/android_deps:chromium_play_services_availability_java",
  165. "//third_party/androidx:androidx_annotation_annotation_java",
  166. ]
  167. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  168. }
  169. }
  170. source_set("test_support") {
  171. testonly = true
  172. sources = [
  173. "fake_location_provider.cc",
  174. "fake_location_provider.h",
  175. "fake_position_cache.cc",
  176. "fake_position_cache.h",
  177. "position_cache_test_util.cc",
  178. "position_cache_test_util.h",
  179. ]
  180. public_deps = [ ":geolocation" ]
  181. deps = [
  182. "//services/device/public/cpp/geolocation",
  183. "//testing/gmock",
  184. "//testing/gtest",
  185. ]
  186. if (is_chromeos_ash) {
  187. deps += [ "//chromeos/ash/components/dbus/shill" ]
  188. }
  189. }