summaryrefslogtreecommitdiffstats
path: root/media/midi/BUILD.gn
diff options
context:
space:
mode:
authortoyoshim <toyoshim@chromium.org>2015-04-30 07:52:02 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-30 14:52:36 +0000
commitc6475779990f6ffdfa33d42b0bd97818df5e8d3c (patch)
tree8d7993b714b48c21c570833127f06c3e6a0c545f /media/midi/BUILD.gn
parent3140c7194502109de2f7803d00e68fc10c94d2b6 (diff)
downloadchromium_src-c6475779990f6ffdfa33d42b0bd97818df5e8d3c.zip
chromium_src-c6475779990f6ffdfa33d42b0bd97818df5e8d3c.tar.gz
chromium_src-c6475779990f6ffdfa33d42b0bd97818df5e8d3c.tar.bz2
Reland: Web MIDI: split build rules for media/midi
Changes from the first coommit. - Define right dependencies to xdisplaycheck - Fix build rules for midi_unittests_apk to run on Android - Rebase error fixes (build rule deopendency adjustments) Original commit is: https://crrev.com/31624cad1a3b5cf26950b864837ba44b3aa38331 Original description follows: Split MIDI related stuffs from media as a component in build files. Also, MIDI related unit tests are split into midi_unittests. BUG=475869 TEST=git cl try TEST=ninja midi_unittests_apk && ./build/android/test_runner.py gtest midi_unittests Review URL: https://codereview.chromium.org/1065743003 Cr-Commit-Position: refs/heads/master@{#327712}
Diffstat (limited to 'media/midi/BUILD.gn')
-rw-r--r--media/midi/BUILD.gn172
1 files changed, 172 insertions, 0 deletions
diff --git a/media/midi/BUILD.gn b/media/midi/BUILD.gn
new file mode 100644
index 0000000..0faa867
--- /dev/null
+++ b/media/midi/BUILD.gn
@@ -0,0 +1,172 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/android/config.gni")
+import("//build/config/features.gni")
+import("//build/config/ui.gni")
+import("//media/media_options.gni")
+import("//testing/test.gni")
+
+if (is_android) {
+ # For generate_jni().
+ import("//build/config/android/rules.gni")
+}
+
+# Common configuration for targets in the media/midi directory.
+config("midi_config") {
+ if (use_alsa) {
+ defines = [
+ "USE_ALSA",
+ "USE_UDEV",
+ ]
+ }
+
+ visibility = [ ":*" ]
+}
+
+# USB MIDI specific source files that are used in Android port, and unit tests.
+source_set("usb_midi") {
+ sources = [
+ "midi_manager_usb.cc",
+ "midi_manager_usb.h",
+ "usb_midi_descriptor_parser.cc",
+ "usb_midi_descriptor_parser.h",
+ "usb_midi_device.h",
+ "usb_midi_input_stream.cc",
+ "usb_midi_input_stream.h",
+ "usb_midi_jack.h",
+ "usb_midi_output_stream.cc",
+ "usb_midi_output_stream.h",
+ ]
+
+ defines = [ "MEDIA_IMPLEMENTATION" ]
+ deps = [
+ "//base",
+ ]
+}
+
+# Android specific Java source files that are used to generate jni header files.
+if (is_android) {
+ android_library("midi_java") {
+ deps = [
+ "//base:base_java",
+ ]
+
+ DEPRECATED_java_in_dir = "java/src"
+ }
+
+ generate_jni("midi_jni_headers") {
+ sources = [
+ "java/src/org/chromium/media/midi/UsbMidiDeviceAndroid.java",
+ "java/src/org/chromium/media/midi/UsbMidiDeviceFactoryAndroid.java",
+ ]
+ jni_package = "media/midi"
+ }
+}
+
+component("midi") {
+ sources = [
+ "midi_manager.cc",
+ "midi_manager.h",
+ "midi_manager_mac.cc",
+ "midi_manager_mac.h",
+ "midi_manager_win.cc",
+ "midi_manager_win.h",
+ "midi_message_queue.cc",
+ "midi_message_queue.h",
+ "midi_message_util.cc",
+ "midi_message_util.h",
+ "midi_port_info.cc",
+ "midi_port_info.h",
+ "midi_scheduler.cc",
+ "midi_scheduler.h",
+ ]
+
+ configs += [ ":midi_config" ]
+
+ defines = [ "MEDIA_IMPLEMENTATION" ]
+ deps = []
+ libs = []
+
+ if (is_android) {
+ sources += [
+ "midi_jni_registrar.cc",
+ "midi_jni_registrar.h",
+ "midi_manager_android.cc",
+ "usb_midi_device_android.cc",
+ "usb_midi_device_android.h",
+ "usb_midi_device_factory_android.cc",
+ "usb_midi_device_factory_android.h",
+ ]
+
+ deps += [
+ "//base:i18n",
+ ":midi_jni_headers",
+ ":usb_midi",
+ ]
+ }
+
+ if (is_mac) {
+ libs += [
+ "CoreAudio.framework",
+ "CoreMIDI.framework",
+ ]
+ }
+
+ if (is_win) {
+ deps += [ "//device/usb" ]
+ }
+
+ if (use_alsa && use_udev) {
+ deps += [
+ "//crypto",
+ "//crypto:platform",
+ ]
+ libs += [ "asound" ]
+ sources += [
+ "midi_manager_alsa.cc",
+ "midi_manager_alsa.h",
+ ]
+ }
+
+ if (use_udev) {
+ deps += [ "//device/udev_linux" ]
+ }
+}
+
+test("midi_unittests") {
+ sources = [
+ "midi_manager_unittest.cc",
+ "midi_manager_usb_unittest.cc",
+ "midi_message_queue_unittest.cc",
+ "midi_message_util_unittest.cc",
+ "usb_midi_descriptor_parser_unittest.cc",
+ "usb_midi_input_stream_unittest.cc",
+ "usb_midi_output_stream_unittest.cc",
+ ]
+
+ configs += [ ":midi_config" ]
+ deps = [
+ ":midi",
+ "//base/test/:run_all_unittests",
+ "//base/test/:test_support",
+ "//testing/gtest",
+ ]
+
+ if (!is_android) {
+ deps += [ ":usb_midi" ]
+ }
+
+ if (is_mac) {
+ sources += [ "midi_manager_mac_unittest.cc" ]
+ }
+
+ if (use_alsa && use_udev) {
+ sources += [ "midi_manager_alsa_unittest.cc" ]
+ }
+
+ if (use_x11) {
+ deps += [ "//tools/xdisplaycheck" ]
+ }
+}