BUILD.gn 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. # Copyright 2016 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/features.gni")
  6. if (is_chromeos) {
  7. import("//chromeos/components/sensors/buildflags.gni")
  8. }
  9. if (is_android) {
  10. import("//build/config/android/rules.gni") # For generate_jni().
  11. }
  12. source_set("generic_sensor") {
  13. visibility = [ "//services/device:*" ]
  14. output_name = "generic_sensor"
  15. sources = [
  16. "absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.cc",
  17. "absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.h",
  18. "generic_sensor_consts.h",
  19. "gravity_fusion_algorithm_using_accelerometer.cc",
  20. "gravity_fusion_algorithm_using_accelerometer.h",
  21. "linear_acceleration_fusion_algorithm_using_accelerometer.cc",
  22. "linear_acceleration_fusion_algorithm_using_accelerometer.h",
  23. "orientation_euler_angles_fusion_algorithm_using_quaternion.cc",
  24. "orientation_euler_angles_fusion_algorithm_using_quaternion.h",
  25. "orientation_quaternion_fusion_algorithm_using_euler_angles.cc",
  26. "orientation_quaternion_fusion_algorithm_using_euler_angles.h",
  27. "orientation_util.cc",
  28. "orientation_util.h",
  29. "platform_sensor.cc",
  30. "platform_sensor.h",
  31. "platform_sensor_fusion.cc",
  32. "platform_sensor_fusion.h",
  33. "platform_sensor_fusion_algorithm.cc",
  34. "platform_sensor_fusion_algorithm.h",
  35. "platform_sensor_provider.cc",
  36. "platform_sensor_provider.h",
  37. "platform_sensor_provider_base.cc",
  38. "platform_sensor_provider_base.h",
  39. "platform_sensor_util.cc",
  40. "platform_sensor_util.h",
  41. "relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.cc",
  42. "relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.h",
  43. "relative_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_gyroscope.cc",
  44. "relative_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_gyroscope.h",
  45. "sensor_impl.cc",
  46. "sensor_impl.h",
  47. "sensor_provider_impl.cc",
  48. "sensor_provider_impl.h",
  49. ]
  50. deps = [
  51. "//base",
  52. "//build:chromeos_buildflags",
  53. "//device/base/synchronization",
  54. "//services/device/public/cpp:device_features",
  55. "//ui/gfx/geometry:geometry",
  56. ]
  57. public_deps = [ "//services/device/public/cpp/generic_sensor" ]
  58. if (is_android) {
  59. sources += [
  60. "platform_sensor_android.cc",
  61. "platform_sensor_android.h",
  62. "platform_sensor_provider_android.cc",
  63. "platform_sensor_provider_android.h",
  64. ]
  65. deps += [ ":jni_headers" ]
  66. }
  67. if (is_mac) {
  68. sources += [
  69. "platform_sensor_accelerometer_mac.cc",
  70. "platform_sensor_accelerometer_mac.h",
  71. "platform_sensor_ambient_light_mac.cc",
  72. "platform_sensor_ambient_light_mac.h",
  73. "platform_sensor_provider_mac.cc",
  74. "platform_sensor_provider_mac.h",
  75. ]
  76. deps += [ "//third_party/sudden_motion_sensor" ]
  77. frameworks = [
  78. "CoreFoundation.framework",
  79. "IOKit.framework",
  80. ]
  81. }
  82. if (is_chromeos) {
  83. deps += [ "//chromeos/components/sensors:buildflags" ]
  84. }
  85. if (is_chromeos && use_iioservice) {
  86. deps += [
  87. "//chromeos/components/sensors",
  88. "//chromeos/components/sensors/mojom",
  89. ]
  90. sources += [
  91. "platform_sensor_chromeos.cc",
  92. "platform_sensor_chromeos.h",
  93. "platform_sensor_provider_chromeos.cc",
  94. "platform_sensor_provider_chromeos.h",
  95. "platform_sensor_provider_linux_base.cc",
  96. "platform_sensor_provider_linux_base.h",
  97. ]
  98. } else if ((is_linux || is_chromeos) && use_udev) {
  99. deps += [
  100. "//device/base",
  101. "//device/udev_linux",
  102. ]
  103. sources += [
  104. "linux/sensor_data_linux.cc",
  105. "linux/sensor_data_linux.h",
  106. "linux/sensor_device_manager.cc",
  107. "linux/sensor_device_manager.h",
  108. "platform_sensor_linux.cc",
  109. "platform_sensor_linux.h",
  110. "platform_sensor_provider_linux.cc",
  111. "platform_sensor_provider_linux.h",
  112. "platform_sensor_provider_linux_base.cc",
  113. "platform_sensor_provider_linux_base.h",
  114. "platform_sensor_reader_linux.cc",
  115. "platform_sensor_reader_linux.h",
  116. ]
  117. }
  118. if (is_win) {
  119. sources += [
  120. "platform_sensor_provider_win.cc",
  121. "platform_sensor_provider_win.h",
  122. "platform_sensor_provider_winrt.cc",
  123. "platform_sensor_provider_winrt.h",
  124. "platform_sensor_reader_win.cc",
  125. "platform_sensor_reader_win.h",
  126. "platform_sensor_reader_win_base.h",
  127. "platform_sensor_reader_winrt.cc",
  128. "platform_sensor_reader_winrt.h",
  129. "platform_sensor_win.cc",
  130. "platform_sensor_win.h",
  131. ]
  132. libs = [
  133. "portabledeviceguids.lib",
  134. "sensorsapi.lib",
  135. ]
  136. }
  137. }
  138. if (is_android) {
  139. device_sensors_jni_sources = [
  140. "android/java/src/org/chromium/device/sensors/PlatformSensor.java",
  141. "android/java/src/org/chromium/device/sensors/PlatformSensorProvider.java",
  142. ]
  143. generate_jni("jni_headers") {
  144. visibility = [ ":generic_sensor" ]
  145. sources = device_sensors_jni_sources
  146. }
  147. android_library("java") {
  148. visibility = [
  149. "//services:*",
  150. "//services/device:*",
  151. ]
  152. sources = device_sensors_jni_sources
  153. deps = [
  154. "//base:base_java",
  155. "//base:jni_java",
  156. "//build/android:build_java",
  157. "//services/device/public/mojom:generic_sensor_java",
  158. "//third_party/androidx:androidx_annotation_annotation_java",
  159. ]
  160. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  161. }
  162. }