Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / media / midi / midi.gyp
blob723a9a3166bb0505c55e0536bc0900f676991506
1 # Copyright 2015 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.
6   'variables': {
7     'chromium_code': 1,
8     'conditions': [
9       ['(OS=="linux" or OS=="freebsd" or OS=="solaris") and (embedded!=1 or (chromecast==1 and target_arch!="arm"))', {
10         'use_alsa%': 1,
11       }, {
12         'use_alsa%': 0,
13       }],
14     ],
15     # Source files that are used in production code for Android, and in tests
16     # for others.
17     'usb_midi_sources': [
18       'midi_manager_usb.cc',
19       'midi_manager_usb.h',
20       'usb_midi_descriptor_parser.cc',
21       'usb_midi_descriptor_parser.h',
22       'usb_midi_device.h',
23       'usb_midi_export.h',
24       'usb_midi_input_stream.cc',
25       'usb_midi_input_stream.h',
26       'usb_midi_jack.h',
27       'usb_midi_output_stream.cc',
28       'usb_midi_output_stream.h',
29     ],
30   },
31   'targets': [
32     {
33       # GN version: //media/midi
34       'target_name': 'midi',
35       'type': '<(component)',
36       'dependencies': [
37         '../../base/base.gyp:base',
38       ],
39       'defines': [
40         'MIDI_IMPLEMENTATION',
41       ],
42       'include_dirs': [
43         '../..',
44       ],
45       'sources': [
46         'midi_export.h',
47         'midi_manager.cc',
48         'midi_manager.h',
49         'midi_manager_android.cc',
50         'midi_manager_android.h',
51         'midi_manager_mac.cc',
52         'midi_manager_mac.h',
53         'midi_manager_win.cc',
54         'midi_manager_win.h',
55         'midi_message_queue.cc',
56         'midi_message_queue.h',
57         'midi_message_util.cc',
58         'midi_message_util.h',
59         'midi_port_info.cc',
60         'midi_port_info.h',
61         'midi_scheduler.cc',
62         'midi_scheduler.h',
63         'midi_switches.cc',
64         'midi_switches.h',
65         'usb_midi_device_android.cc',
66         'usb_midi_device_android.h',
67         'usb_midi_device_factory_android.cc',
68         'usb_midi_device_factory_android.h',
69       ],
70       'direct_dependent_settings': {
71         'include_dirs': [
72           '../..',
73         ],
74       },
75       'conditions': [
76         ['use_alsa==1 and use_udev==1', {
77           'dependencies': [
78             '../../crypto/crypto.gyp:crypto',
79             '../../device/udev_linux/udev.gyp:udev_linux',
80           ],
81           'defines': [
82             'USE_ALSA',
83             'USE_UDEV',
84           ],
85           'sources': [
86             'midi_manager_alsa.cc',
87             'midi_manager_alsa.h',
88           ],
89           'link_settings': {
90             'libraries': [
91               '-lasound',
92             ],
93           },
94         }],
95         ['OS=="android"', {
96           'dependencies': [
97             '../../base/base.gyp:base_i18n',
98             'midi_jni_headers',
99             'midi_java',
100           ],
101           'sources': [
102             '<@(usb_midi_sources)',
103             'midi_device_android.cc',
104             'midi_device_android.h',
105             'midi_input_port_android.cc',
106             'midi_input_port_android.h',
107             'midi_jni_registrar.cc',
108             'midi_jni_registrar.h',
109             'midi_output_port_android.cc',
110             'midi_output_port_android.h',
111           ],
112           'defines': [
113             'EXPORT_USB_MIDI',
114           ],
115         }],
116         ['OS=="mac"', {
117           'link_settings': {
118             'libraries': [
119               '$(SDKROOT)/System/Library/Frameworks/CoreAudio.framework',
120               '$(SDKROOT)/System/Library/Frameworks/CoreMIDI.framework',
121             ],
122           },
123         }],
124         ['OS=="win"', {
125           'dependencies': [
126             '../../device/usb/usb.gyp:device_usb',
127           ],
128         }],
129       ],  # conditions
130     },
131     {
132       # GN version: //media/midi:midi_unittests
133       'target_name': 'midi_unittests',
134       'type': '<(gtest_target_type)',
135       'dependencies': [
136         'midi',
137         '../../base/base.gyp:base',
138         '../../base/base.gyp:run_all_unittests',
139         '../../testing/gtest.gyp:gtest',
140       ],
141       'include_dirs': [
142         '../..',
143       ],
144       'sources': [
145         'midi_manager_unittest.cc',
146         'midi_manager_usb_unittest.cc',
147         'midi_message_queue_unittest.cc',
148         'midi_message_util_unittest.cc',
149         'usb_midi_descriptor_parser_unittest.cc',
150         'usb_midi_input_stream_unittest.cc',
151         'usb_midi_output_stream_unittest.cc',
152       ],
153       'conditions': [
154         ['use_alsa==1 and use_udev==1', {
155           'defines': [
156             'USE_ALSA',
157             'USE_UDEV',
158           ],
159           'sources': [
160             'midi_manager_alsa_unittest.cc',
161           ],
162         }],
163         ['use_x11==1', {
164           'dependencies': [
165             '../../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
166           ],
167         }],
168         ['OS=="android"', {
169           'dependencies': [
170             '../../testing/android/native_test.gyp:native_test_native_code',
171           ],
172         }, {
173           'sources': [
174             '<@(usb_midi_sources)',
175           ],
176         }],
177         ['OS=="mac"', {
178           'sources': [
179             'midi_manager_mac_unittest.cc',
180           ],
181         }],
182       ],
183     },
184   ],
185   'conditions': [
186     ['OS=="android"', {
187       'targets': [
188         {
189           # TODO(GN)
190           'target_name': 'midi_unittests_apk',
191           'type': 'none',
192           'dependencies': [
193             'midi_java',
194             'midi_unittests',
195           ],
196           'variables': {
197             'test_suite_name': 'midi_unittests',
198             'isolate_file': 'midi_unittests.isolate',
199           },
200           'includes': ['../../build/apk_test.gypi'],
201         },
202         {
203           # GN: //media/midi:midi_java
204           'target_name': 'midi_java',
205           'type': 'none',
206           'dependencies': [
207             '../../base/base.gyp:base',
208           ],
209           'variables': {
210             'java_in_dir': 'java',
211           },
212           'includes': ['../../build/java.gypi' ],
213         },
214         {
215           # GN: //media/midi:midi_jni_headers
216           'target_name': 'midi_jni_headers',
217           'type': 'none',
218           'sources': [
219             'java/src/org/chromium/media/midi/MidiDeviceAndroid.java',
220             'java/src/org/chromium/media/midi/MidiManagerAndroid.java',
221             'java/src/org/chromium/media/midi/MidiInputPortAndroid.java',
222             'java/src/org/chromium/media/midi/MidiOutputPortAndroid.java',
223             'java/src/org/chromium/media/midi/UsbMidiDeviceAndroid.java',
224             'java/src/org/chromium/media/midi/UsbMidiDeviceFactoryAndroid.java',
225           ],
226           'variables': {
227             'jni_gen_package': 'media/midi',
228           },
229           'includes': ['../../build/jni_generator.gypi'],
230         },
231       ],
232     }],
233     ['test_isolation_mode != "noop"', {
234       'targets': [
235         {
236           'target_name': 'midi_unittests_run',
237           'type': 'none',
238           'dependencies': [
239             'midi_unittests',
240           ],
241           'includes': [
242             '../../build/isolate.gypi',
243           ],
244           'sources': [
245             'midi_unittests.isolate',
246           ],
247         },
248       ],
249     }],
250   ],