diff options
author | toyoshim <toyoshim@chromium.org> | 2015-04-30 07:52:02 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-30 14:52:36 +0000 |
commit | c6475779990f6ffdfa33d42b0bd97818df5e8d3c (patch) | |
tree | 8d7993b714b48c21c570833127f06c3e6a0c545f /media/midi/BUILD.gn | |
parent | 3140c7194502109de2f7803d00e68fc10c94d2b6 (diff) | |
download | chromium_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.gn | 172 |
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" ] + } +} |