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

Side by Side Diff: services/service_manager/public/service_manifest.gni

Issue 2475543003: Introduce the image_decoder service (Closed)
Patch Set: . Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/dcheck_always_on.gni")
5 import("//services/service_manager/public/constants.gni") 6 import("//services/service_manager/public/constants.gni")
6 7
7 # Used to produce a Service Manifest for a Service. 8 # Used to produce a Service Manifest for a Service.
8 # 9 #
9 # Parameters: 10 # Parameters:
10 # 11 #
11 # source 12 # source
12 # The manifest file template for this service, must be valid JSON with 13 # The manifest file template for this service, must be valid JSON with
13 # a valid 'url' key matching name. 14 # a valid 'url' key matching name.
14 # 15 #
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 98
98 rebase_parent = rebase_path(invoker.source, root_build_dir) 99 rebase_parent = rebase_path(invoker.source, root_build_dir)
99 rebase_output = rebase_path(output, root_build_dir) 100 rebase_output = rebase_path(output, root_build_dir)
100 101
101 args = [ 102 args = [
102 "--name=$name", 103 "--name=$name",
103 "--parent=$rebase_parent", 104 "--parent=$rebase_parent",
104 "--output=$rebase_output", 105 "--output=$rebase_output",
105 ] 106 ]
106 107
108 if (is_debug || dcheck_always_on) {
109 args += [ "--pretty" ]
110 }
111
107 if (defined(invoker.overlays)) { 112 if (defined(invoker.overlays)) {
108 args += [ "--overlays" ] 113 args += [ "--overlays" ]
109 foreach(overlay_path, invoker.overlays) { 114 foreach(overlay_path, invoker.overlays) {
110 args += [ rebase_path(overlay_path, root_build_dir) ] 115 args += [ rebase_path(overlay_path, root_build_dir) ]
111 } 116 }
112 } 117 }
113 118
114 if (defined(invoker.packaged_services)) { 119 if (defined(invoker.packaged_services)) {
120 args += [ "--packaged-services" ]
115 foreach(name, invoker.packaged_services) { 121 foreach(name, invoker.packaged_services) {
116 input = "$root_out_dir/$packages_directory/$name/manifest.json" 122 input = "$root_out_dir/$packages_directory/$name/manifest.json"
117 inputs += [ input ] 123 inputs += [ input ]
118 args += [ rebase_path(input, root_build_dir) ] 124 args += [ rebase_path(input, root_build_dir) ]
119 } 125 }
120 } 126 }
121 deps = [] 127 deps = []
122 data_deps = [] 128 data_deps = []
123 if (defined(invoker.deps)) { 129 if (defined(invoker.deps)) {
124 deps += invoker.deps 130 deps += invoker.deps
125 data_deps += invoker.deps 131 data_deps += invoker.deps
126 } 132 }
127 } 133 }
128 134
129 all_deps = [] 135 all_deps = []
130 if (defined(invoker.deps)) { 136 if (defined(invoker.deps)) {
131 all_deps += invoker.deps 137 all_deps += invoker.deps
132 } 138 }
133 139
134 group("${target_name}__is_service_manifest") { 140 group("${target_name}__is_service_manifest_or_overlay") {
135 } 141 }
136 142
137 # Explicitly ensure that all dependencies are service_manifest 143 # Explicitly ensure that all dependencies are service_manifest
138 # targets themselves. 144 # or service_manifest_overlay targets themselves.
139 group("${target_name}__check_deps_are_all_service_manifest") { 145 group("${target_name}__check_deps_are_all_service_manifest") {
140 deps = [] 146 deps = []
141 foreach(d, all_deps) { 147 foreach(d, all_deps) {
142 name = get_label_info(d, "label_no_toolchain") 148 name = get_label_info(d, "label_no_toolchain")
143 toolchain = get_label_info(d, "toolchain") 149 toolchain = get_label_info(d, "toolchain")
144 deps += [ "${name}__is_service_manifest(${toolchain})" ] 150 deps += [ "${name}__is_service_manifest_or_overlay(${toolchain})" ]
145 } 151 }
146 } 152 }
147 } 153 }
154
155 # A simple derivative of the service_manifest template above. This allows for
156 # embedding of packaged services into a manifest overlay.
157 #
158 # Parameters:
159 #
160 # source
161 # The manifest overlay file to procss.
162 #
163 # overlays (optional)
164 # A list of partial manifests to overlay onto the source manifest before
165 # emitting the final output. Overlays are applied as the last step, after
166 # any packaged manifests are embedded.
167 #
168 # output_name (optional)
169 # The output name of the manifest. Defaults to the target name.
170 #
171 # deps (optional)
172 # An array of the service_manifest targets this overlay depends on.
173 #
174 # packaged_services (optional)
175 # An array of names of the services packaged into this overlay.
176 #
177 # Outputs:
178 #
179 # An instantiation of this template produces in
180 # ${root_gen_dir}/${output_name}.json
181 #
182 template("service_manifest_overlay") {
183 assert(defined(invoker.source),
184 "\"source\" must be defined for the $target_name template")
185 if (defined(invoker.deps)) {
186 assert(defined(invoker.packaged_services) || defined(invoker.overlays),
187 "\"deps\" implies that you also want \"packaged_services\" and/or" +
188 "\"overlays\", but you have neither.")
189 }
190 if (defined(invoker.packaged_services)) {
191 assert(defined(invoker.deps),
192 "\"deps\" building the dependent packaged services must be " +
193 "provided.")
194 }
195 if (defined(invoker.type)) {
196 assert(invoker.type == "mojo" || invoker.type == "exe",
197 "\"type\" must be one of \"mojo\" or \"exe\".")
198 }
199
200 action(target_name) {
201 script =
202 "//services/service_manager/public/tools/manifest/manifest_collator.py"
203
204 inputs = [
205 invoker.source,
206 ]
207 if (defined(invoker.overlays)) {
208 inputs += invoker.overlays
209 }
210
211 output_name = target_name
212 if (defined(invoker.output_name)) {
213 output_name = invoker.output_name
214 }
215 output = "${root_gen_dir}/${output_name}.json"
216
217 outputs = [
218 output,
219 ]
220
221 rebase_parent = rebase_path(invoker.source, root_build_dir)
222 rebase_output = rebase_path(output, root_build_dir)
223
224 args = [
225 "--parent=$rebase_parent",
226 "--output=$rebase_output",
227 ]
228
229 if (is_debug || dcheck_always_on) {
230 args += [ "--pretty" ]
231 }
232
233 if (defined(invoker.overlays)) {
234 args += [ "--overlays" ]
235 foreach(overlay_path, invoker.overlays) {
236 args += [ rebase_path(overlay_path, root_build_dir) ]
237 }
238 }
239
240 if (defined(invoker.packaged_services)) {
241 args += [ "--packaged-services" ]
242 foreach(name, invoker.packaged_services) {
243 input = "$root_out_dir/$packages_directory/$name/manifest.json"
244 inputs += [ input ]
245 args += [ rebase_path(input, root_build_dir) ]
246 }
247 }
248
249 deps = []
250 data_deps = []
251 if (defined(invoker.deps)) {
252 deps += invoker.deps
253 data_deps += invoker.deps
254 }
255 }
256
257 group("${target_name}__is_service_manifest_or_overlay") {
258 }
259
260 # Explicitly ensure that all dependencies are service_manifest
261 # or service_manifest_overlay targets themselves.
262 group("${target_name}__check_deps_are_all_service_manifest") {
263 deps = []
264 foreach(d, all_deps) {
265 name = get_label_info(d, "label_no_toolchain")
266 toolchain = get_label_info(d, "toolchain")
267 deps += [ "${name}__is_service_manifest_or_overlay(${toolchain})" ]
268 }
269 }
270 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698