blob: 961e62c5b2e77dac9a414e3038aff6b3f6ef389f [file] [log] [blame]
# 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.
{
'variables': {
'chromium_code': 1,
'conditions': [
['(OS=="linux" or OS=="freebsd" or OS=="solaris") and (embedded==0 or chromecast==1)', {
'use_alsa%': 1,
}, {
'use_alsa%': 0,
}],
],
# Source files that are used in production code for Android, and in tests
# for others.
'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_export.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',
],
},
'targets': [
{
# GN version: //media/midi
'target_name': 'midi',
'type': '<(component)',
'dependencies': [
'../../base/base.gyp:base',
],
'defines': [
'MIDI_IMPLEMENTATION',
],
'include_dirs': [
'../..',
],
'sources': [
'midi_export.h',
'midi_manager.cc',
'midi_manager.h',
'midi_manager_android.cc',
'midi_manager_android.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',
'midi_switches.cc',
'midi_switches.h',
'usb_midi_device_android.cc',
'usb_midi_device_android.h',
'usb_midi_device_factory_android.cc',
'usb_midi_device_factory_android.h',
],
'direct_dependent_settings': {
'include_dirs': [
'../..',
],
},
'conditions': [
['use_alsa==1 and use_udev==1', {
'dependencies': [
'../../crypto/crypto.gyp:crypto',
'../../device/udev_linux/udev.gyp:udev_linux',
],
'defines': [
'USE_ALSA',
'USE_UDEV',
],
'sources': [
'midi_manager_alsa.cc',
'midi_manager_alsa.h',
],
'link_settings': {
'libraries': [
'-lasound',
],
},
}],
['OS=="android"', {
'dependencies': [
'../../base/base.gyp:base_i18n',
'midi_jni_headers',
'midi_java',
],
'sources': [
'<@(usb_midi_sources)',
'midi_device_android.cc',
'midi_device_android.h',
'midi_input_port_android.cc',
'midi_input_port_android.h',
'midi_jni_registrar.cc',
'midi_jni_registrar.h',
'midi_output_port_android.cc',
'midi_output_port_android.h',
],
'defines': [
'EXPORT_USB_MIDI',
],
}],
['OS=="mac"', {
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
'$(SDKROOT)/System/Library/Frameworks/CoreMIDI.framework',
],
},
}],
['OS=="win"', {
'dependencies': [
'../../device/usb/usb.gyp:device_usb',
],
}],
], # conditions
},
{
# GN version: //media/midi:midi_unittests
'target_name': 'midi_unittests',
'type': '<(gtest_target_type)',
'dependencies': [
'midi',
'../../base/base.gyp:base',
'../../base/base.gyp:run_all_unittests',
'../../testing/gtest.gyp:gtest',
],
'include_dirs': [
'../..',
],
'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',
],
'conditions': [
['use_alsa==1 and use_udev==1', {
'defines': [
'USE_ALSA',
'USE_UDEV',
],
'sources': [
'midi_manager_alsa_unittest.cc',
],
}],
['use_x11==1', {
'dependencies': [
'../../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
],
}],
['OS=="android"', {
'dependencies': [
'../../testing/android/native_test.gyp:native_test_native_code',
],
}, {
'sources': [
'<@(usb_midi_sources)',
],
}],
['OS=="mac"', {
'sources': [
'midi_manager_mac_unittest.cc',
],
}],
],
},
],
'conditions': [
['OS=="android"', {
'targets': [
{
# TODO(GN)
'target_name': 'midi_unittests_apk',
'type': 'none',
'dependencies': [
'midi_java',
'midi_unittests',
],
'variables': {
'test_suite_name': 'midi_unittests',
'isolate_file': 'midi_unittests.isolate',
},
'includes': ['../../build/apk_test.gypi'],
},
{
# GN: //media/midi:midi_java
'target_name': 'midi_java',
'type': 'none',
'dependencies': [
'../../base/base.gyp:base',
],
'variables': {
'java_in_dir': 'java',
},
'includes': ['../../build/java.gypi' ],
},
{
# GN: //media/midi:midi_jni_headers
'target_name': 'midi_jni_headers',
'type': 'none',
'sources': [
'java/src/org/chromium/media/midi/MidiDeviceAndroid.java',
'java/src/org/chromium/media/midi/MidiManagerAndroid.java',
'java/src/org/chromium/media/midi/MidiInputPortAndroid.java',
'java/src/org/chromium/media/midi/MidiOutputPortAndroid.java',
'java/src/org/chromium/media/midi/UsbMidiDeviceAndroid.java',
'java/src/org/chromium/media/midi/UsbMidiDeviceFactoryAndroid.java',
],
'variables': {
'jni_gen_package': 'media/midi',
},
'includes': ['../../build/jni_generator.gypi'],
},
],
}],
['test_isolation_mode != "noop"', {
'targets': [
{
'target_name': 'midi_unittests_run',
'type': 'none',
'dependencies': [
'midi_unittests',
],
'includes': [
'../../build/isolate.gypi',
],
'sources': [
'midi_unittests.isolate',
],
},
],
}],
],
}