Revert of Linux MSan: enable swarming/sharding for browser_tests. (patchset #1 id...
[chromium-blink-merge.git] / media / mojo / services / BUILD.gn
blob77b15bb3c7b78418f49add4853e7364908c5852f
1 # Copyright 2014 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.
5 import("//media/media_options.gni")
6 import("//testing/test.gni")
7 import("//third_party/mojo/src/mojo/public/mojo_application.gni")
9 # Target naming conventions:
10 # - converters: C++/Mojo type converters.
11 # - proxy: C++ implementations supported by mojo services.
12 # - service: Mojo interface implementations.
13 # - unittests: Unit tests for a particular class/file.
14 # - test: Tests for a particular app, e.g. media.
16 config("enable_media_mojo_renderer_config") {
17   if (enable_media_mojo_renderer) {
18     defines = [ "ENABLE_MEDIA_MOJO_RENDERER" ]
19   }
22 source_set("converters") {
23   sources = [
24     "media_type_converters.cc",
25     "media_type_converters.h",
26   ]
28   deps = [
29     "//base",
30     "//media",
31     "//media/mojo/interfaces",
32     "//mojo/common",
33     "//mojo/converters/geometry",
34     "//mojo/environment:chromium",
35     "//skia",
36     "//third_party/mojo/src/mojo/public/c/system:for_component",
37     "//third_party/mojo_services/src/geometry/public/interfaces",
38   ]
41 source_set("cdm_proxy") {
42   deps = [
43     ":converters",
44     "//base",
45     "//media",
46     "//media/mojo/interfaces",
47     "//mojo/common",
48     "//mojo/environment:chromium",
49     "//third_party/mojo/src/mojo/public/interfaces/application",
50     "//third_party/mojo/src/mojo/public/c/system:for_component",
51   ]
53   sources = [
54     "mojo_cdm.cc",
55     "mojo_cdm.h",
56     "mojo_type_trait.h",
57   ]
60 source_set("cdm_service") {
61   deps = [
62     ":converters",
63     "//base",
64     "//media",
65     "//media/mojo/interfaces",
66     "//mojo/common",
67     "//mojo/environment:chromium",
68     "//third_party/mojo/src/mojo/public/interfaces/application",
69     "//third_party/mojo/src/mojo/public/c/system:for_component",
70   ]
72   sources = [
73     "mojo_cdm_promise.cc",
74     "mojo_cdm_promise.h",
75     "mojo_cdm_service.cc",
76     "mojo_cdm_service.h",
77     "mojo_type_trait.h",
78   ]
81 # media::Renderer implementation using mojo::MediaRenderer.
82 source_set("renderer_proxy") {
83   sources = [
84     "mojo_demuxer_stream_impl.cc",
85     "mojo_demuxer_stream_impl.h",
86     "mojo_renderer_factory.cc",
87     "mojo_renderer_factory.h",
88     "mojo_renderer_impl.cc",
89     "mojo_renderer_impl.h",
90   ]
92   public_configs = [ ":enable_media_mojo_renderer_config" ]
94   deps = [
95     ":converters",
96     "//base",
97     "//media",
98     "//media/mojo/interfaces",
99     "//mojo/common",
100     "//mojo/environment:chromium",
101     "//third_party/mojo/src/mojo/public/c/system:for_component",
102     "//third_party/mojo/src/mojo/public/interfaces/application",
103   ]
106 # MediaRenderer service; without a specific config.
107 source_set("renderer_service_generic") {
108   sources = [
109     "demuxer_stream_provider_shim.cc",
110     "demuxer_stream_provider_shim.h",
111     "mojo_demuxer_stream_adapter.cc",
112     "mojo_demuxer_stream_adapter.h",
113     "mojo_renderer_service.cc",
114     "mojo_renderer_service.h",
115     "renderer_config.cc",
116     "renderer_config.h",
117   ]
119   deps = [
120     ":converters",
121     "//base",
122     "//media",
123     "//media/mojo/interfaces",
124     "//media:shared_memory_support",
125     "//mojo/common",
126   ]
129 # MediaRenderer service with a default config.
130 source_set("renderer_service") {
131   sources = [
132     "renderer_config_default.cc",
133   ]
135   public_configs = [ ":enable_media_mojo_renderer_config" ]
137   deps = [
138     ":renderer_service_generic",
139     "//base",
140     "//media",
141     "//media:shared_memory_support",
142   ]
145 test("media_mojo_unittests") {
146   sources = [
147     "media_type_converters_unittest.cc",
148   ]
150   deps = [
151     ":converters",
152     "//base",
153     "//base/test:test_support",
154     "//media",
155     "//media/mojo/interfaces",
156     "//mojo/environment:chromium",
157     "//testing/gtest",
158     "//third_party/mojo/src/mojo/edk/system",
159     "//third_party/mojo/src/mojo/edk/test:run_all_unittests",
160   ]
163 if (!is_component_build) {
164   mojo_native_application("media") {
165     sources = [
166       "mojo_media_application.cc",
167     ]
169     deps = [
170       ":renderer_service",
171       "//mojo/application",
172       "//third_party/mojo/src/mojo/public/c/system:for_shared_library",
173     ]
174   }
176   # Note, this 'test' must be loaded via mojo_shell as an app:
177   #
178   #   out/Debug/mojo_shell mojo:media_test
179   #
180   # To get "mojo_shell" you must specify "use_prebuilt_mojo_shell=true" in GN.
181   mojo_native_application("media_test") {
182     testonly = true
184     deps = [
185       "//media/test:mojo_pipeline_integration_tests",
186     ]
187   }
190 group("services") {
191   deps = [
192     ":cdm_proxy",
193     ":renderer_proxy",
194   ]
196   if (!is_component_build) {
197     deps += [ ":media" ]
198   }
201 group("tests") {
202   testonly = true
203   deps = [
204     ":media_mojo_unittests",
205   ]
207   if (!is_component_build) {
208     deps += [ ":media_test" ]
209   }