| OLD | NEW |
| 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("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
| 6 | 6 |
| 7 assert(is_android) | 7 assert(is_android) |
| 8 | 8 |
| 9 | 9 |
| 10 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) | 10 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) |
| 11 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir) | 11 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir) |
| 12 rebased_android_sdk_build_tools = rebase_path(android_sdk_build_tools, root_buil
d_dir) | 12 rebased_android_sdk_build_tools = rebase_path(android_sdk_build_tools, root_buil
d_dir) |
| 13 | 13 |
| 14 android_sdk_jar = "$android_sdk/android.jar" |
| 15 rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir) |
| 16 |
| 14 template("android_lint") { | 17 template("android_lint") { |
| 15 jar_path = invoker.jar_path | 18 jar_path = invoker.jar_path |
| 16 android_manifest = invoker.android_manifest | 19 android_manifest = invoker.android_manifest |
| 17 java_files = invoker.java_files | 20 java_files = invoker.java_files |
| 18 base_path = "$target_gen_dir/$target_name" | 21 base_path = "$target_gen_dir/$target_name" |
| 19 | 22 |
| 20 action(target_name) { | 23 action(target_name) { |
| 21 script = "//build/android/gyp/lint.py" | 24 script = "//build/android/gyp/lint.py" |
| 22 result_path = base_path + "/result.xml" | 25 result_path = base_path + "/result.xml" |
| 23 config_path = base_path + "/config.xml" | 26 config_path = base_path + "/config.xml" |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 "--key-name", _keystore_name, | 317 "--key-name", _keystore_name, |
| 315 "--key-passwd", _keystore_password, | 318 "--key-passwd", _keystore_password, |
| 316 ] | 319 ] |
| 317 } | 320 } |
| 318 | 321 |
| 319 group(target_name) { | 322 group(target_name) { |
| 320 deps = [":${target_name}__finalize"] | 323 deps = [":${target_name}__finalize"] |
| 321 } | 324 } |
| 322 } | 325 } |
| 323 | 326 |
| 327 template("java_prebuilt") { |
| 328 _input_jar_path = invoker.input_jar_path |
| 329 _output_jar_path = invoker.output_jar_path |
| 330 _jar_toc_path = _output_jar_path + ".TOC" |
| 331 |
| 332 assert(invoker.build_config != "") |
| 333 |
| 334 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { |
| 335 _proguard_jar_path = "$android_sdk_root/tools/proguard/lib/proguard.jar" |
| 336 _proguard_config_path = invoker.proguard_config |
| 337 _build_config = invoker.build_config |
| 338 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
| 339 action("${target_name}__proguard_process") { |
| 340 script = "//build/android/gyp/proguard.py" |
| 341 inputs = [ |
| 342 android_sdk_jar, |
| 343 _proguard_jar_path, |
| 344 _build_config, |
| 345 _input_jar_path, |
| 346 _proguard_config_path, |
| 347 ] |
| 348 depfile = "${target_gen_dir}/${target_name}.d" |
| 349 outputs = [ |
| 350 depfile, |
| 351 _output_jar_path, |
| 352 ] |
| 353 args = [ |
| 354 "--depfile", rebase_path(depfile, root_build_dir), |
| 355 "--proguard-path", rebase_path(_proguard_jar_path, root_build_dir), |
| 356 "--input-path", rebase_path(_input_jar_path, root_build_dir), |
| 357 "--output-path", rebase_path(_output_jar_path, root_build_dir), |
| 358 "--proguard-config", rebase_path(_proguard_config_path, root_build_dir), |
| 359 "--classpath", rebased_android_sdk_jar, |
| 360 "--classpath=@FileArg($_rebased_build_config:javac:classpath)", |
| 361 ] |
| 362 } |
| 363 } else { |
| 364 copy("${target_name}__copy_jar") { |
| 365 sources = [_input_jar_path] |
| 366 outputs = [_output_jar_path] |
| 367 } |
| 368 } |
| 369 |
| 370 action("${target_name}__jar_toc") { |
| 371 script = "//build/android/gyp/jar_toc.py" |
| 372 depfile = "$target_gen_dir/$target_name.d" |
| 373 outputs = [ |
| 374 depfile, |
| 375 _jar_toc_path, |
| 376 _jar_toc_path + ".md5.stamp" |
| 377 ] |
| 378 inputs = [ _output_jar_path ] |
| 379 args = [ |
| 380 "--depfile", rebase_path(depfile, root_build_dir), |
| 381 "--jar-path", rebase_path(_output_jar_path, root_build_dir), |
| 382 "--toc-path", rebase_path(_jar_toc_path, root_build_dir), |
| 383 ] |
| 384 } |
| 385 |
| 386 group(target_name) { |
| 387 deps = [ |
| 388 ":${target_name}__jar_toc" |
| 389 ] |
| 390 } |
| 391 } |
| 392 |
| 324 # Compiles and jars a set of java files. | 393 # Compiles and jars a set of java files. |
| 325 # | 394 # |
| 326 # Outputs: | 395 # Outputs: |
| 327 # $jar_path.jar | 396 # $jar_path.jar |
| 328 # $jar_path.jar.TOC | 397 # $jar_path.jar.TOC |
| 329 # | 398 # |
| 330 # Variables | 399 # Variables |
| 331 # java_files: List of .java files to compile. | 400 # java_files: List of .java files to compile. |
| 332 # java_deps: List of java dependencies. These should all have a .jar output | 401 # java_deps: List of java dependencies. These should all have a .jar output |
| 333 # at "${target_gen_dir}/${target_name}.jar. | 402 # at "${target_gen_dir}/${target_name}.jar. |
| 334 # chromium_code: If true, enable extra warnings. | 403 # chromium_code: If true, enable extra warnings. |
| 335 # srcjar_deps: List of srcjar dependencies. The .java files contained in the | 404 # srcjar_deps: List of srcjar dependencies. The .java files contained in the |
| 336 # dependencies srcjar outputs will be compiled and added to the output jar. | 405 # dependencies srcjar outputs will be compiled and added to the output jar. |
| 337 # jar_path: Use this to explicitly set the output jar path. Defaults to | 406 # jar_path: Use this to explicitly set the output jar path. Defaults to |
| 338 # "${target_gen_dir}/${target_name}.jar. | 407 # "${target_gen_dir}/${target_name}.jar. |
| 339 template("java_library") { | 408 template("java_library") { |
| 340 assert(defined(invoker.java_files)) | 409 assert(defined(invoker.java_files)) |
| 341 assert(defined(invoker.build_config)) | 410 assert(defined(invoker.build_config)) |
| 342 assert(defined(invoker.jar_path)) | 411 assert(defined(invoker.jar_path)) |
| 343 | 412 |
| 344 java_files = invoker.java_files | 413 _java_files = invoker.java_files |
| 345 jar_path = invoker.jar_path | 414 _final_jar_path = invoker.jar_path |
| 346 jar_toc_path = jar_path + ".TOC" | 415 _intermediate_jar_path = "$target_gen_dir/$target_name.initial.jar" |
| 347 | 416 |
| 348 build_config = invoker.build_config | 417 _build_config = invoker.build_config |
| 349 | 418 |
| 350 jar_excluded_patterns = [] | 419 _jar_excluded_patterns = [] |
| 351 if (defined(invoker.jar_excluded_patterns)) { | 420 if (defined(invoker.jar_excluded_patterns)) { |
| 352 jar_excluded_patterns += invoker.jar_excluded_patterns | 421 _jar_excluded_patterns += invoker.jar_excluded_patterns |
| 353 } | 422 } |
| 354 | 423 |
| 355 chromium_code = false | 424 _chromium_code = false |
| 356 if (defined(invoker.chromium_code)) { | 425 if (defined(invoker.chromium_code)) { |
| 357 chromium_code = chromium_code || invoker.chromium_code | 426 _chromium_code = invoker.chromium_code |
| 358 } | 427 } |
| 359 | 428 |
| 360 srcjar_deps = [] | 429 _srcjar_deps = [] |
| 361 if (defined(invoker.srcjar_deps)) { | 430 if (defined(invoker.srcjar_deps)) { |
| 362 srcjar_deps += invoker.srcjar_deps | 431 _srcjar_deps += invoker.srcjar_deps |
| 363 } | 432 } |
| 364 | 433 |
| 365 java_srcjars = [] | 434 _java_srcjars = [] |
| 366 foreach(dep, srcjar_deps) { | 435 foreach(dep, _srcjar_deps) { |
| 367 dep_gen_dir = get_label_info(dep, "target_gen_dir") | 436 _dep_gen_dir = get_label_info(dep, "target_gen_dir") |
| 368 dep_name = get_label_info(dep, "name") | 437 _dep_name = get_label_info(dep, "name") |
| 369 java_srcjars += [ "$dep_gen_dir/$dep_name.srcjar" ] | 438 _java_srcjars += [ "$_dep_gen_dir/$_dep_name.srcjar" ] |
| 370 } | 439 } |
| 371 # Mark srcjar_deps as used. | 440 # Mark srcjar_deps as used. |
| 372 assert(srcjar_deps == [] || srcjar_deps != []) | 441 assert(_srcjar_deps == [] || true) |
| 373 | 442 |
| 374 rebase_jar_path = rebase_path(jar_path, root_build_dir) | 443 _system_jars = [ android_sdk_jar ] |
| 375 | |
| 376 system_jars = [ "${android_sdk}/android.jar" ] | |
| 377 action("${target_name}__javac") { | 444 action("${target_name}__javac") { |
| 378 script = "//build/android/gyp/javac.py" | 445 script = "//build/android/gyp/javac.py" |
| 379 depfile = "$target_gen_dir/$target_name.d" | 446 depfile = "$target_gen_dir/$target_name.d" |
| 380 outputs = [ | 447 outputs = [ |
| 381 depfile, | 448 depfile, |
| 382 jar_path, | 449 _intermediate_jar_path, |
| 383 jar_path + ".md5.stamp" | 450 _intermediate_jar_path + ".md5.stamp" |
| 384 ] | 451 ] |
| 385 sources = java_files + java_srcjars | 452 sources = _java_files + _java_srcjars |
| 386 inputs = system_jars + [ build_config ] | 453 inputs = _system_jars + [ _build_config ] |
| 387 | 454 |
| 388 rebase_system_jars = rebase_path(system_jars, root_build_dir) | 455 _rebased_system_jars = rebase_path(_system_jars, root_build_dir) |
| 389 rebase_java_srcjars = rebase_path(java_srcjars, root_build_dir) | 456 _rebased_java_srcjars = rebase_path(_java_srcjars, root_build_dir) |
| 390 rebase_build_config = rebase_path(build_config, root_build_dir) | 457 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
| 391 rebase_depfile = rebase_path(depfile, root_build_dir) | 458 _rebased_depfile = rebase_path(depfile, root_build_dir) |
| 459 _rebased_jar_path = rebase_path(_intermediate_jar_path, root_build_dir) |
| 392 args = [ | 460 args = [ |
| 393 "--depfile=$rebase_depfile", | 461 "--depfile=$_rebased_depfile", |
| 394 "--classpath=$rebase_system_jars", | 462 "--classpath=$_rebased_system_jars", |
| 395 "--classpath=@FileArg($rebase_build_config:javac:classpath)", | 463 "--classpath=@FileArg($_rebased_build_config:javac:classpath)", |
| 396 "--jar-path=$rebase_jar_path", | 464 "--jar-path=$_rebased_jar_path", |
| 397 "--java-srcjars=$rebase_java_srcjars", | 465 "--java-srcjars=$_rebased_java_srcjars", |
| 398 "--java-srcjars=@FileArg($rebase_build_config:javac:srcjars)", | 466 "--java-srcjars=@FileArg($_rebased_build_config:javac:srcjars)", |
| 399 "--jar-excluded-classes=$jar_excluded_patterns", | 467 "--jar-excluded-classes=$_jar_excluded_patterns", |
| 400 ] | 468 ] |
| 401 if (chromium_code) { | 469 if (_chromium_code) { |
| 402 args += [ "--chromium-code" ] | 470 args += [ "--chromium-code" ] |
| 403 } | 471 } |
| 404 | 472 |
| 405 args += rebase_path(java_files, root_build_dir) | 473 args += rebase_path(_java_files, root_build_dir) |
| 406 } | 474 } |
| 407 | 475 |
| 408 # TODO(cjhopman): proguard | 476 java_prebuilt("${target_name}__finish") { |
| 409 | 477 build_config = _build_config |
| 410 rebase_jar_toc_path = rebase_path(jar_toc_path, root_build_dir) | 478 input_jar_path = _intermediate_jar_path |
| 411 action("${target_name}__jar_toc") { | 479 output_jar_path = _final_jar_path |
| 412 script = "//build/android/gyp/jar_toc.py" | 480 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { |
| 413 depfile = "$target_gen_dir/$target_name.d" | 481 proguard_preprocess = invoker.proguard_preprocess |
| 414 outputs = [ | 482 proguard_config = invoker.proguard_config |
| 415 depfile, | 483 } |
| 416 jar_toc_path, | |
| 417 jar_toc_path + ".md5.stamp" | |
| 418 ] | |
| 419 inputs = [ jar_path ] | |
| 420 args = [ | |
| 421 "--depfile", rebase_path(depfile, root_build_dir), | |
| 422 "--jar-path=${rebase_jar_path}", | |
| 423 "--toc-path=${rebase_jar_toc_path}", | |
| 424 ] | |
| 425 } | 484 } |
| 426 | 485 |
| 427 group(target_name) { | 486 group(target_name) { |
| 428 deps = [ | 487 deps = [ |
| 429 ":${target_name}__javac", | 488 ":${target_name}__javac", |
| 430 ":${target_name}__jar_toc", | 489 ":${target_name}__finish", |
| 431 ] | 490 ] |
| 432 } | 491 } |
| 433 } | 492 } |
| 434 | 493 |
| 435 | 494 |
| 436 # This adds Android-specific parts to the java_library template. | 495 # This adds Android-specific parts to the java_library template. |
| 437 # | 496 # |
| 438 # Runs Android lint against the compiled java files. | 497 # Runs Android lint against the compiled java files. |
| 439 # Dexes the output jar for inclusion in an APK. | 498 # Dexes the output jar for inclusion in an APK. |
| 440 template("android_java_library") { | 499 template("android_java_library") { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 458 jar_path = _jar_path | 517 jar_path = _jar_path |
| 459 if (defined(invoker.jar_excluded_patterns)) { | 518 if (defined(invoker.jar_excluded_patterns)) { |
| 460 jar_excluded_patterns = invoker.jar_excluded_patterns | 519 jar_excluded_patterns = invoker.jar_excluded_patterns |
| 461 } | 520 } |
| 462 build_config = invoker.build_config | 521 build_config = invoker.build_config |
| 463 java_files = invoker.java_files | 522 java_files = invoker.java_files |
| 464 | 523 |
| 465 if (defined(invoker.srcjar_deps)) { | 524 if (defined(invoker.srcjar_deps)) { |
| 466 srcjar_deps = invoker.srcjar_deps | 525 srcjar_deps = invoker.srcjar_deps |
| 467 } | 526 } |
| 527 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { |
| 528 proguard_preprocess = invoker.proguard_preprocess |
| 529 proguard_config = invoker.proguard_config |
| 530 } |
| 468 } | 531 } |
| 469 | 532 |
| 470 if (defined(invoker.chromium_code) && invoker.chromium_code) { | 533 if (defined(invoker.chromium_code) && invoker.chromium_code) { |
| 471 _final_deps += [ ":${target_name}__lint" ] | 534 _final_deps += [ ":${target_name}__lint" ] |
| 472 android_lint("${target_name}__lint") { | 535 android_lint("${target_name}__lint") { |
| 473 android_manifest = _android_manifest | 536 android_manifest = _android_manifest |
| 474 jar_path = _jar_path | 537 jar_path = _jar_path |
| 475 java_files = invoker.java_files | 538 java_files = invoker.java_files |
| 476 } | 539 } |
| 477 } | 540 } |
| 478 | 541 |
| 479 dex("${target_name}__dex") { | 542 dex("${target_name}__dex") { |
| 480 sources = [_jar_path] | 543 sources = [_jar_path] |
| 481 output = _dex_path | 544 output = _dex_path |
| 482 } | 545 } |
| 483 | 546 |
| 484 group(target_name) { | 547 group(target_name) { |
| 485 deps = [ | 548 deps = [ |
| 486 ":${target_name}__java_library", | 549 ":${target_name}__java_library", |
| 487 ":${target_name}__dex", | 550 ":${target_name}__dex", |
| 488 ] + _final_deps | 551 ] + _final_deps |
| 489 } | 552 } |
| 490 } | 553 } |
| 491 | 554 |
| 492 | |
| 493 # Runs process_resources.py | 555 # Runs process_resources.py |
| 494 template("process_resources") { | 556 template("process_resources") { |
| 495 zip_path = invoker.zip_path | 557 zip_path = invoker.zip_path |
| 496 srcjar_path = invoker.srcjar_path | 558 srcjar_path = invoker.srcjar_path |
| 497 build_config = invoker.build_config | 559 build_config = invoker.build_config |
| 498 resource_dirs = invoker.resource_dirs | 560 resource_dirs = invoker.resource_dirs |
| 499 android_manifest = invoker.android_manifest | 561 android_manifest = invoker.android_manifest |
| 500 | 562 |
| 501 non_constant_id = true | 563 non_constant_id = true |
| 502 if (defined(invoker.generate_constant_ids) && invoker.generate_constant_ids) { | 564 if (defined(invoker.generate_constant_ids) && invoker.generate_constant_ids) { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 args += [ | 622 args += [ |
| 561 "--all-resources-zip-out", rebase_path(all_resources_zip, root_build_dir
) | 623 "--all-resources-zip-out", rebase_path(all_resources_zip, root_build_dir
) |
| 562 ] | 624 ] |
| 563 } | 625 } |
| 564 | 626 |
| 565 if (defined(invoker.args)) { | 627 if (defined(invoker.args)) { |
| 566 args += invoker.args | 628 args += invoker.args |
| 567 } | 629 } |
| 568 } | 630 } |
| 569 } | 631 } |
| OLD | NEW |