Adds support for iOS colorsets.
Bug: None
Change-Id: Icaf2e8969753fc7717fae79821a530f765d3e688
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/5240
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Brett Wilson <brettw@google.com>
Commit-Queue: Brett Wilson <brettw@google.com>
diff --git a/tools/gn/bundle_data.cc b/tools/gn/bundle_data.cc
index 095e989..3af92d2 100644
--- a/tools/gn/bundle_data.cc
+++ b/tools/gn/bundle_data.cc
@@ -34,7 +34,7 @@
if (source.ends_with("/Contents.json") && dir.ends_with(".xcassets")) {
is_file_from_asset_catalog = true;
} else if (dir.ends_with(".appiconset") || dir.ends_with(".imageset") ||
- dir.ends_with(".launchimage")) {
+ dir.ends_with(".launchimage") || dir.ends_with(".colorset")) {
dir = FindDirNoTrailingSeparator(dir);
is_file_from_asset_catalog = dir.ends_with(".xcassets");
}
diff --git a/tools/gn/ninja_bundle_data_target_writer_unittest.cc b/tools/gn/ninja_bundle_data_target_writer_unittest.cc
index 5b1a4ba..f2ec6c5 100644
--- a/tools/gn/ninja_bundle_data_target_writer_unittest.cc
+++ b/tools/gn/ninja_bundle_data_target_writer_unittest.cc
@@ -22,6 +22,8 @@
bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/Contents.json"));
bundle_data.sources().push_back(
+ SourceFile("//foo/Foo.xcassets/foo.colorset/Contents.json"));
+ bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/Contents.json"));
bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29.png"));
@@ -44,6 +46,7 @@
"../../foo/input1.txt "
"../../foo/input2.txt "
"../../foo/Foo.xcassets/Contents.json "
+ "../../foo/Foo.xcassets/foo.colorset/Contents.json "
"../../foo/Foo.xcassets/foo.imageset/Contents.json "
"../../foo/Foo.xcassets/foo.imageset/FooIcon-29.png "
"../../foo/Foo.xcassets/foo.imageset/FooIcon-29@2x.png "
diff --git a/tools/gn/ninja_create_bundle_target_writer_unittest.cc b/tools/gn/ninja_create_bundle_target_writer_unittest.cc
index af7a7f5..51c982c 100644
--- a/tools/gn/ninja_create_bundle_target_writer_unittest.cc
+++ b/tools/gn/ninja_create_bundle_target_writer_unittest.cc
@@ -186,6 +186,8 @@
bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/Contents.json"));
bundle_data.sources().push_back(
+ SourceFile("//foo/Foo.xcassets/foo.colorset/Contents.json"));
+ bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/Contents.json"));
bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29.png"));
@@ -290,6 +292,8 @@
bundle_data2.sources().push_back(
SourceFile("//foo/Foo.xcassets/Contents.json"));
bundle_data2.sources().push_back(
+ SourceFile("//foo/Foo.xcassets/foo.colorset/Contents.json"));
+ bundle_data2.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/Contents.json"));
bundle_data2.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29.png"));
@@ -321,6 +325,18 @@
bundle_data3.visibility().SetPublic();
ASSERT_TRUE(bundle_data3.OnResolved(&err));
+ Target bundle_data4(setup.settings(), Label(SourceDir("//biz/"), "assets"));
+ bundle_data4.set_output_type(Target::BUNDLE_DATA);
+ bundle_data4.sources().push_back(
+ SourceFile("//biz/Biz.xcassets/Contents.json"));
+ bundle_data4.sources().push_back(
+ SourceFile("//biz/Biz.xcassets/biz.colorset/Contents.json"));
+ bundle_data4.action_values().outputs() = SubstitutionList::MakeForTest(
+ "{{bundle_resources_dir}}/{{source_file_part}}");
+ bundle_data4.SetToolchain(setup.toolchain());
+ bundle_data4.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data4.OnResolved(&err));
+
Target create_bundle(
setup.settings(),
Label(SourceDir("//baz/"), "bar", setup.toolchain()->label().dir(),
@@ -331,6 +347,7 @@
create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data1));
create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data2));
create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data3));
+ create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data4));
create_bundle.private_deps().push_back(LabelTargetPair(action.get()));
create_bundle.bundle_data().product_type().assign("com.apple.product-type");
create_bundle.bundle_data().set_partial_info_plist(
@@ -343,9 +360,9 @@
writer.Run();
const char expected[] =
- "build obj/baz/bar.inputdeps.stamp: stamp obj/foo/assets.stamp "
- "obj/foo/bar.stamp obj/foo/data.stamp obj/qux/info_plist.stamp "
- "obj/quz/assets.stamp\n"
+ "build obj/baz/bar.inputdeps.stamp: stamp obj/biz/assets.stamp "
+ "obj/foo/assets.stamp obj/foo/bar.stamp obj/foo/data.stamp "
+ "obj/qux/info_plist.stamp obj/quz/assets.stamp\n"
"build bar.bundle/Contents/Info.plist: copy_bundle_data "
"../../qux/qux-Info.plist || obj/baz/bar.inputdeps.stamp\n"
"build bar.bundle/Contents/Resources/input1.txt: copy_bundle_data "
@@ -354,11 +371,11 @@
"../../foo/input2.txt || obj/baz/bar.inputdeps.stamp\n"
"build obj/baz/bar.xcassets.inputdeps.stamp: stamp "
"obj/foo/assets.stamp "
- "obj/quz/assets.stamp\n"
+ "obj/quz/assets.stamp obj/biz/assets.stamp\n"
"build bar.bundle/Contents/Resources/Assets.car | "
"baz/bar/bar_partial_info.plist: compile_xcassets "
- "../../foo/Foo.xcassets "
- "../../quz/Quz.xcassets | obj/baz/bar.xcassets.inputdeps.stamp || "
+ "../../foo/Foo.xcassets ../../quz/Quz.xcassets "
+ "../../biz/Biz.xcassets | obj/baz/bar.xcassets.inputdeps.stamp || "
"obj/baz/bar.inputdeps.stamp\n"
" product_type = com.apple.product-type\n"
" partial_info_plist = baz/bar/bar_partial_info.plist\n"