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

Unified Diff: build/config/ios/rules.gni

Issue 2559323005: Add support for generating PkgInfo for application bundle on iOS. (Closed)
Patch Set: Add a comment to explain why the intermediate file is not named PkfInfo. Created 4 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | build/config/mac/write_pkg_info.py » ('j') | build/config/mac/write_pkg_info.py » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/ios/rules.gni
diff --git a/build/config/ios/rules.gni b/build/config/ios/rules.gni
index d6413633829f6fa4be14ab248815c75d75f5c1b7..778a56b178186a2efe84f6bf4b2bc21cfb9cb8e9 100644
--- a/build/config/ios/rules.gni
+++ b/build/config/ios/rules.gni
@@ -420,6 +420,17 @@ template("ios_app_bundle") {
_output_name = invoker.output_name
}
+ # TODO(sdefresne): some target downstream manually pack an PkgInfo, so
+ # allow controlling the generation of the PkgInfo file via an undocumented
+ # parameter until they are fixed.
+ _write_pkg_info = false
+ if (defined(invoker.write_pkg_info)) {
+ _write_pkg_info = invoker.write_pkg_info
+ }
+
+ assert(_write_pkg_info || !_write_pkg_info,
+ "prevents 'Assignment had no effect.' errors")
Robert Sesek 2016/12/09 15:55:07 🙄
sdefresne 2016/12/09 16:03:06 I know.
+
_arch_executable_source = _target_name + "_arch_executable_sources"
_arch_executable_target = _target_name + "_arch_executable"
_lipo_executable_target = _target_name + "_executable"
@@ -634,6 +645,38 @@ template("ios_app_bundle") {
]
}
+ if (_write_pkg_info) {
+ _create_pkg_info = target_name + "_pkg_info"
+ action(_create_pkg_info) {
+ forward_variables_from(invoker, [ "testonly" ])
+ script = "//build/config/mac/write_pkg_info.py"
+ sources = get_target_outputs(":$_generate_info_plist")
+ outputs = [
+ # Cannot name the output PkgInfo as the name will not be unique if
+ # multiple ios_app_bundle are defined in the same BUILD.gn file. The
+ # file is renamed in the bundle_data outputs to the correct name.
+ "$target_gen_dir/$target_name",
+ ]
+ args = [ "--plist" ] + rebase_path(sources, root_build_dir) +
+ [ "--output" ] + rebase_path(outputs, root_build_dir)
+ deps = [
+ ":$_generate_info_plist",
+ ]
+ }
+
+ _bundle_data_pkg_info = target_name + "_bundle_data_pkg_info"
+ bundle_data(_bundle_data_pkg_info) {
+ forward_variables_from(invoker, [ "testonly" ])
+ sources = get_target_outputs(":$_create_pkg_info")
+ outputs = [
+ "{{bundle_resources_dir}}/PkgInfo",
+ ]
+ public_deps = [
+ ":$_create_pkg_info",
+ ]
+ }
+ }
+
create_signed_bundle(_target_name) {
forward_variables_from(invoker,
[
@@ -661,6 +704,9 @@ template("ios_app_bundle") {
bundle_deps = []
}
bundle_deps += [ ":$_bundle_data_info_plist" ]
+ if (_write_pkg_info) {
+ bundle_deps += [ ":$_bundle_data_pkg_info" ]
+ }
if (use_ios_simulator) {
if (!defined(data_deps)) {
« no previous file with comments | « no previous file | build/config/mac/write_pkg_info.py » ('j') | build/config/mac/write_pkg_info.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698