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

Side by Side Diff: build/config/android/rules.gni

Issue 1854233002: Reland 2 of GN: Make breakpad_unittests & sandbox_linux_unittests use test() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test-minor-renames
Patch Set: Fix PIE errors, fix component mode. Created 4 years, 8 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 | « build/config/android/internal_rules.gni ('k') | sandbox/linux/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 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 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("//base/android/linker/config.gni") 5 import("//base/android/linker/config.gni")
6 import("//build/config/android/config.gni") 6 import("//build/config/android/config.gni")
7 import("//build/config/android/internal_rules.gni") 7 import("//build/config/android/internal_rules.gni")
8 import("//build/config/sanitizers/sanitizers.gni") 8 import("//build/config/sanitizers/sanitizers.gni")
9 import("//build/toolchain/toolchain.gni") 9 import("//build/toolchain/toolchain.gni")
10 import("//third_party/android_platform/config.gni") 10 import("//third_party/android_platform/config.gni")
(...skipping 2216 matching lines...) Expand 10 before | Expand all | Expand 10 after
2227 # executable, this will create a directory containing the native exe and all 2227 # executable, this will create a directory containing the native exe and all
2228 # it's library dependencies. 2228 # it's library dependencies.
2229 # 2229 #
2230 # Note: It's usually better to package things as an APK than as a native 2230 # Note: It's usually better to package things as an APK than as a native
2231 # executable. 2231 # executable.
2232 # 2232 #
2233 # Variables 2233 # Variables
2234 # dist_dir: Directory for the exe and libraries. Everything in this directory 2234 # dist_dir: Directory for the exe and libraries. Everything in this directory
2235 # will be deleted before copying in the exe and libraries. 2235 # will be deleted before copying in the exe and libraries.
2236 # binary: Path to (stripped) executable. 2236 # binary: Path to (stripped) executable.
2237 # include_main_binary: Whether |binary| should be copied to |dist_dir|. 2237 # extra_files: List of extra files to copy in (optional).
2238 # 2238 #
2239 # Example 2239 # Example
2240 # create_native_executable_dist("foo_dist") { 2240 # create_native_executable_dist("foo_dist") {
2241 # dist_dir = "$root_build_dir/foo_dist" 2241 # dist_dir = "$root_build_dir/foo_dist"
2242 # binary = "$root_build_dir/foo" 2242 # binary = "$root_build_dir/foo"
2243 # deps = [ ":the_thing_that_makes_foo" ] 2243 # deps = [ ":the_thing_that_makes_foo" ]
2244 # } 2244 # }
2245 template("create_native_executable_dist") { 2245 template("create_native_executable_dist") {
2246 set_sources_assignment_filter([])
2247 forward_variables_from(invoker, [ "testonly" ]) 2246 forward_variables_from(invoker, [ "testonly" ])
2248 2247
2249 dist_dir = invoker.dist_dir 2248 _libraries_list = "${target_gen_dir}/${target_name}_library_dependencies.list"
2250 binary = invoker.binary
2251 template_name = target_name
2252 2249
2253 libraries_list = 2250 _find_deps_target_name = "${target_name}__find_library_dependencies"
2254 "${target_gen_dir}/${template_name}_library_dependencies.list"
2255 2251
2256 find_deps_target_name = "${template_name}__find_library_dependencies" 2252 # TODO(agrieve): Extract dependent libs from GN rather than readelf.
2257 copy_target_name = "${template_name}__copy_libraries_and_exe" 2253 action(_find_deps_target_name) {
2258
2259 action(find_deps_target_name) {
2260 forward_variables_from(invoker, [ "deps" ]) 2254 forward_variables_from(invoker, [ "deps" ])
2261 visibility = [ ":$copy_target_name" ]
2262 2255
2263 script = "//build/android/gyp/write_ordered_libraries.py" 2256 script = "//build/android/gyp/write_ordered_libraries.py"
2264 depfile = "$target_gen_dir/$target_name.d" 2257 depfile = "$target_gen_dir/$target_name.d"
2265 inputs = [ 2258 inputs = [
2266 binary, 2259 invoker.binary,
2267 android_readelf, 2260 android_readelf,
2268 ] 2261 ]
2269 outputs = [ 2262 outputs = [
2270 depfile, 2263 depfile,
2271 libraries_list, 2264 _libraries_list,
2272 ] 2265 ]
2273 rebased_binaries = rebase_path([ binary ], root_build_dir) 2266 rebased_binaries = rebase_path([ invoker.binary ], root_build_dir)
2274 args = [ 2267 args = [
2275 "--depfile", 2268 "--depfile",
2276 rebase_path(depfile, root_build_dir), 2269 rebase_path(depfile, root_build_dir),
2277 "--input-libraries=$rebased_binaries", 2270 "--input-libraries=$rebased_binaries",
2278 "--libraries-dir", 2271 "--libraries-dir",
2279 rebase_path(root_shlib_dir, root_build_dir), 2272 rebase_path(root_shlib_dir, root_build_dir),
2280 "--output", 2273 "--output",
2281 rebase_path(libraries_list, root_build_dir), 2274 rebase_path(_libraries_list, root_build_dir),
2282 "--readelf", 2275 "--readelf",
2283 rebase_path(android_readelf, root_build_dir), 2276 rebase_path(android_readelf, root_build_dir),
2284 ] 2277 ]
2285 } 2278 }
2286 2279
2287 copy_ex(copy_target_name) { 2280 copy_ex(target_name) {
2288 visibility = [ ":$template_name" ]
2289
2290 clear_dir = true 2281 clear_dir = true
2291 2282
2292 inputs = [ 2283 inputs = [
2293 libraries_list, 2284 _libraries_list,
2285 invoker.binary,
2294 ] 2286 ]
2295 if (defined(invoker.include_main_binary) && invoker.include_main_binary) {
2296 inputs += [ binary ]
2297 }
2298 2287
2299 dest = dist_dir 2288 dest = invoker.dist_dir
2300 2289
2301 rebased_libraries_list = rebase_path(libraries_list, root_build_dir) 2290 _rebased_libraries_list = rebase_path(_libraries_list, root_build_dir)
2302 args = [ "--files=@FileArg($rebased_libraries_list:lib_paths)" ] 2291 _rebased_binaries_list = rebase_path([ invoker.binary ], root_build_dir)
2303 if (defined(invoker.include_main_binary) && invoker.include_main_binary) { 2292 args = [
2304 rebased_binaries_list = rebase_path([ binary ], root_build_dir) 2293 "--files=@FileArg($_rebased_libraries_list:lib_paths)",
2305 args += [ "--files=$rebased_binaries_list" ] 2294 "--files=$_rebased_binaries_list",
2295 ]
2296 if (defined(invoker.extra_files)) {
2297 _rebased_extra_files = rebase_path(invoker.extra_files, root_build_dir)
2298 args += [ "--files=$_rebased_extra_files" ]
2306 } 2299 }
2307 2300
2308 deps = [ 2301 deps = [
2309 ":$find_deps_target_name", 2302 ":$_find_deps_target_name",
2310 ] 2303 ]
2311 if (defined(invoker.deps)) { 2304 if (defined(invoker.deps)) {
2312 deps += invoker.deps 2305 deps += invoker.deps
2313 } 2306 }
2314 } 2307 }
2315
2316 group(template_name) {
2317 forward_variables_from(invoker, [ "visibility" ])
2318 public_deps = [
2319 ":$copy_target_name",
2320 ]
2321 }
2322 } 2308 }
2323 2309
2324 # Compile a protocol buffer to java. 2310 # Compile a protocol buffer to java.
2325 # 2311 #
2326 # This generates java files from protocol buffers and creates an Android library 2312 # This generates java files from protocol buffers and creates an Android library
2327 # containing the classes. 2313 # containing the classes.
2328 # 2314 #
2329 # Variables 2315 # Variables
2330 # sources: Paths to .proto files to compile. 2316 # sources: Paths to .proto files to compile.
2331 # proto_path: Root directory of .proto files. 2317 # proto_path: Root directory of .proto files.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2417 "--target", 2403 "--target",
2418 rebase_path(invoker.target, root_build_dir), 2404 rebase_path(invoker.target, root_build_dir),
2419 "--output-directory", 2405 "--output-directory",
2420 rebase_path(root_out_dir, root_build_dir), 2406 rebase_path(root_out_dir, root_build_dir),
2421 ] 2407 ]
2422 if (defined(invoker.flag_name)) { 2408 if (defined(invoker.flag_name)) {
2423 args += [ "--flag-name=${invoker.flag_name}" ] 2409 args += [ "--flag-name=${invoker.flag_name}" ]
2424 } 2410 }
2425 } 2411 }
2426 } 2412 }
OLDNEW
« no previous file with comments | « build/config/android/internal_rules.gni ('k') | sandbox/linux/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698