Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1643)

Unified Diff: media/midi/BUILD.gn

Issue 1065743003: Reland: Web MIDI: split build rules for media/midi (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: gyp fix Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/midi/BUILD.gn
diff --git a/media/midi/BUILD.gn b/media/midi/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..8aa5a67711907b49be36e762874d74ec3da07eca
--- /dev/null
+++ b/media/midi/BUILD.gn
@@ -0,0 +1,167 @@
+# 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("//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.
+# NOT for exporting.
+config("midi_config") {
+ if (use_alsa) {
+ defines = [ "USE_ALSA" ]
+ }
+}
+
+# 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",
+ ]
+
+ # TODO(toyoshim): Do not use media/base/media_export.h in media/midi, and
+ # use MIDI_IMPLEMENTATION instead of MEDIA_IMPLEMENTATION. Also, create midi
+ # namespace inside media.
+ defines = [ "MEDIA_IMPLEMENTATION" ]
DaleCurtis 2015/04/20 16:23:37 I think this one is fine to keep, we usually stick
Takashi Toyoshima 2015/04/21 06:50:46 Done.
+ 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" ]
+
+ # TODO(toyoshim): Use MIDI_IMPLEMENTATION.
+ 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 += [
+ ":usb_midi",
+ ":midi_jni_headers",
+ ]
+ }
+
+ if (is_mac) {
+ libs += [
+ "CoreAudio.framework",
+ "CoreMIDI.framework",
+ ]
+ }
+
+ if (is_win) {
+ deps += [ "//device/usb" ]
+ }
+
+ if (use_alsa) {
+ deps += [
+ "//crypto",
+ "//crypto:platform",
+ ]
+ libs += [ "asound" ]
+ sources += [
+ "midi_manager_alsa.cc",
+ "midi_manager_alsa.h",
+ ]
+ }
+
+ if (use_udev) {
+ deps += [ "//device/udev_linux" ]
+ }
+}
+
+# TODO(toyoshim): Check if all tests pass on Android.
+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) {
+ sources += [ "midi_manager_alsa_unittest.cc" ]
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698