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

Side by Side Diff: mojo/public/mojo_application.gni

Issue 2164503006: Rename mojo_application GN templates to service* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « mojo/public/cpp/bindings/tests/BUILD.gn ('k') | mojo/public/mojo_application_manifest.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
4
5 import("//build/toolchain/toolchain.gni")
6 import("//mojo/public/mojo_constants.gni")
7
8 if (is_android) {
9 import("//build/config/android/rules.gni")
10 import("//build/config/zip.gni")
11 }
12
13 # Generate a binary Mojo application in a self-named directory.
14 # Application resources are copied to a "resources" directory alongside the app.
15 # The parameters of this template are those of a shared library.
16 template("mojo_native_application") {
17 base_target_name = target_name
18 if (defined(invoker.output_name)) {
19 base_target_name = invoker.output_name
20 }
21
22 final_target_name = target_name
23
24 mojo_deps = []
25 if (defined(invoker.deps)) {
26 mojo_deps += invoker.deps
27 }
28
29 mojo_data_deps = []
30
31 if (defined(invoker.resources)) {
32 copy_step_name = "${base_target_name}__copy_resources"
33 copy(copy_step_name) {
34 sources = invoker.resources
35 outputs = [
36 "${root_out_dir}/${mojo_application_subdir}/${base_target_name}/resource s/{{source_file_part}}",
37 ]
38 if (defined(invoker.testonly)) {
39 testonly = invoker.testonly
40 }
41 deps = mojo_deps
42 }
43 mojo_data_deps += [ ":$copy_step_name" ]
44 }
45
46 output = base_target_name + ".mojo"
47 library_target_name = base_target_name + "_library"
48 library_name = "${shlib_prefix}${library_target_name}${shlib_extension}"
49
50 shared_library(library_target_name) {
51 if (defined(invoker.cflags)) {
52 cflags = invoker.cflags
53 }
54 if (defined(invoker.cflags_c)) {
55 cflags_c = invoker.cflags_c
56 }
57 if (defined(invoker.cflags_cc)) {
58 cflags_cc = invoker.cflags_cc
59 }
60 if (defined(invoker.cflags_objc)) {
61 cflags_objc = invoker.cflags_objc
62 }
63 if (defined(invoker.cflags_objcc)) {
64 cflags_objcc = invoker.cflags_objcc
65 }
66 if (defined(invoker.defines)) {
67 defines = invoker.defines
68 }
69 if (defined(invoker.include_dirs)) {
70 include_dirs = invoker.include_dirs
71 }
72 if (defined(invoker.ldflags)) {
73 ldflags = invoker.ldflags
74 }
75 if (defined(invoker.lib_dirs)) {
76 lib_dirs = invoker.lib_dirs
77 }
78 if (defined(invoker.libs)) {
79 libs = invoker.libs
80 }
81
82 data_deps = []
83 if (!defined(invoker.avoid_runner_cycle) || !invoker.avoid_runner_cycle) {
84 # Give the user an out; as some mojo services are depended on by the
85 # runner.
86 data_deps += [ "//services/shell/standalone" ]
87 }
88 if (defined(invoker.data_deps)) {
89 data_deps += invoker.data_deps
90 }
91 data_deps += mojo_data_deps
92
93 deps = [
94 "//mojo/public/c/system:set_thunks_for_app",
95 "//services/shell/public/cpp:application_support",
96 ]
97
98 deps += mojo_deps
99 if (defined(invoker.public_deps)) {
100 public_deps = invoker.public_deps
101 }
102 if (defined(invoker.all_dependent_configs)) {
103 all_dependent_configs = invoker.all_dependent_configs
104 }
105 if (defined(invoker.public_configs)) {
106 public_configs = invoker.public_configs
107 }
108 if (defined(invoker.check_includes)) {
109 check_includes = invoker.check_includes
110 }
111 if (defined(invoker.configs)) {
112 configs += invoker.configs
113 }
114 if (defined(invoker.data)) {
115 data = invoker.data
116 }
117 if (defined(invoker.inputs)) {
118 inputs = invoker.inputs
119 }
120 if (defined(invoker.public)) {
121 public = invoker.public
122 }
123 if (defined(invoker.sources)) {
124 sources = invoker.sources
125 }
126 if (defined(invoker.testonly)) {
127 testonly = invoker.testonly
128 }
129 }
130
131 copy(final_target_name) {
132 forward_variables_from(invoker,
133 [
134 "testonly",
135 "visibility",
136 ])
137 deps = [
138 ":${library_target_name}",
139 ]
140
141 sources = [
142 "${root_shlib_dir}/${library_name}",
143 ]
144 outputs = [
145 "${root_out_dir}/${mojo_application_subdir}/${base_target_name}/${output}" ,
146 ]
147 }
148
149 if (is_android) {
150 android_assets("${final_target_name}_assets") {
151 forward_variables_from(invoker, [ "testonly" ])
152 deps = [
153 ":${library_target_name}",
154 ]
155 if (defined(invoker.deps)) {
156 deps += invoker.deps
157 }
158 renaming_sources = [ "${root_shlib_dir}/${library_name}" ]
159 renaming_destinations = [ "${base_target_name}/${output}" ]
160 if (defined(invoker.resources)) {
161 renaming_sources += invoker.resources
162 renaming_destinations += process_file_template(
163 invoker.resources,
164 [ "$base_target_name/resources/{{source_file_part}}" ])
165 }
166 }
167 }
168 }
169
170 if (is_android) {
171 # Declares an Android Mojo application consisting of an .so file and a
172 # corresponding .dex.jar file.
173 #
174 # Variables:
175 # input_so: the .so file to bundle
176 # input_dex_jar: the .dex.jar file to bundle
177 # deps / public_deps / data_deps (optional):
178 # Dependencies. The targets that generate the .so/jar inputs should be
179 # listed in either deps or public_deps.
180 # output_name (optional): override for the output file name
181 template("mojo_android_application") {
182 assert(defined(invoker.input_so))
183 assert(defined(invoker.input_dex_jar))
184
185 base_target_name = target_name
186 if (defined(invoker.output_name)) {
187 base_target_name = invoker.output_name
188 }
189
190 mojo_data_deps = []
191 if (defined(invoker.resources)) {
192 copy_step_name = "${base_target_name}__copy_resources"
193 copy(copy_step_name) {
194 sources = invoker.resources
195 outputs = [
196 "${root_out_dir}/${mojo_application_subdir}/${base_target_name}/resour ces/{{source_file_part}}",
197 ]
198 if (defined(invoker.testonly)) {
199 testonly = invoker.testonly
200 }
201 if (defined(invoker.deps)) {
202 deps = invoker.deps
203 }
204 }
205 mojo_data_deps += [ ":$copy_step_name" ]
206 }
207
208 zip_action_name = "${target_name}_zip"
209 zip_action_output = "$target_gen_dir/${target_name}.zip"
210 prepend_action_name = target_name
211 zip(zip_action_name) {
212 visibility = [ ":$prepend_action_name" ]
213 inputs = [
214 invoker.input_so,
215 invoker.input_dex_jar,
216 ]
217 output = zip_action_output
218 forward_variables_from(invoker,
219 [
220 "deps",
221 "public_deps",
222 "data_deps",
223 ])
224 }
225
226 _mojo_output = "${root_out_dir}/${mojo_application_subdir}/${base_target_nam e}/${base_target_name}.mojo"
227
228 action(target_name) {
229 script = "//mojo/public/tools/prepend.py"
230
231 input = zip_action_output
232 inputs = [
233 input,
234 ]
235
236 outputs = [
237 _mojo_output,
238 ]
239
240 rebase_input = rebase_path(input, root_build_dir)
241 rebase_output = rebase_path(_mojo_output, root_build_dir)
242 args = [
243 "--input=$rebase_input",
244 "--output=$rebase_output",
245 "--line=#!mojo mojo:android_handler",
246 ]
247
248 data_deps = mojo_data_deps
249
250 public_deps = [
251 ":$zip_action_name",
252 ]
253 }
254
255 android_assets("${target_name}_assets") {
256 forward_variables_from(invoker, [ "testonly" ])
257 deps = [
258 ":$prepend_action_name",
259 ]
260 renaming_sources = [ _mojo_output ]
261 renaming_destinations = [ "${base_target_name}/${base_target_name}.mojo" ]
262 if (defined(invoker.resources)) {
263 renaming_sources += invoker.resources
264 renaming_destinations += process_file_template(
265 invoker.resources,
266 [ "$base_target_name/resources/{{source_file_part}}" ])
267 }
268 }
269 }
270 }
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/tests/BUILD.gn ('k') | mojo/public/mojo_application_manifest.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698