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

Unified Diff: tools/gn/ninja_create_bundle_target_writer_unittest.cc

Issue 2105613003: Fix dependencies rules for create_bundle and bundle_data ninja steps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove stamps (to allow using hardlinks) Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/ninja_create_bundle_target_writer.cc ('k') | tools/gn/runtime_deps_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/ninja_create_bundle_target_writer_unittest.cc
diff --git a/tools/gn/ninja_create_bundle_target_writer_unittest.cc b/tools/gn/ninja_create_bundle_target_writer_unittest.cc
index 1c6f8e019947919430f852d08e7f865363636345..876aeda6b8c35fe29127113edc570dbb2f4a99c3 100644
--- a/tools/gn/ninja_create_bundle_target_writer_unittest.cc
+++ b/tools/gn/ninja_create_bundle_target_writer_unittest.cc
@@ -14,48 +14,54 @@
namespace {
void SetupBundleDataDir(BundleData* bundle_data, const std::string& root_dir) {
- std::string bundle_root_dir = root_dir + "/bar.bundle";
+ std::string bundle_root_dir = root_dir + "/bar.bundle/Contents";
bundle_data->root_dir() = SourceDir(bundle_root_dir);
bundle_data->resources_dir() = SourceDir(bundle_root_dir + "/Resources");
- bundle_data->executable_dir() = SourceDir(bundle_root_dir + "/Executable");
- bundle_data->plugins_dir() = SourceDir(bundle_root_dir + "/PlugIns");
+ bundle_data->executable_dir() = SourceDir(bundle_root_dir + "/MacOS");
+ bundle_data->plugins_dir() = SourceDir(bundle_root_dir + "/Plug Ins");
}
} // namespace
// Tests multiple files with an output pattern.
TEST(NinjaCreateBundleTargetWriter, Run) {
- TestWithScope setup;
Err err;
+ TestWithScope setup;
setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
- Target target(setup.settings(), Label(SourceDir("//baz/"), "bar"));
- target.set_output_type(Target::CREATE_BUNDLE);
-
- SetupBundleDataDir(&target.bundle_data(), "//out/Debug");
- std::vector<SourceFile> sources;
- sources.push_back(SourceFile("//foo/input1.txt"));
- sources.push_back(SourceFile("//foo/input2.txt"));
- target.bundle_data().file_rules().push_back(BundleFileRule(
- sources, SubstitutionPattern::MakeForTest(
- "{{bundle_resources_dir}}/{{source_file_part}}")));
-
- target.SetToolchain(setup.toolchain());
- ASSERT_TRUE(target.OnResolved(&err));
+ Target bundle_data(setup.settings(), Label(SourceDir("//foo/"), "data"));
+ bundle_data.set_output_type(Target::BUNDLE_DATA);
+ bundle_data.sources().push_back(SourceFile("//foo/input1.txt"));
+ bundle_data.sources().push_back(SourceFile("//foo/input2.txt"));
+ bundle_data.action_values().outputs() = SubstitutionList::MakeForTest(
+ "{{bundle_resources_dir}}/{{source_file_part}}");
+ bundle_data.SetToolchain(setup.toolchain());
+ bundle_data.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data.OnResolved(&err));
+
+ Target create_bundle(
+ setup.settings(),
+ Label(SourceDir("//baz/"), "bar", setup.toolchain()->label().dir(),
+ setup.toolchain()->label().name()));
+ SetupBundleDataDir(&create_bundle.bundle_data(), "//out/Debug");
+ create_bundle.set_output_type(Target::CREATE_BUNDLE);
+ create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data));
+ create_bundle.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(create_bundle.OnResolved(&err));
std::ostringstream out;
- NinjaCreateBundleTargetWriter writer(&target, out);
+ NinjaCreateBundleTargetWriter writer(&create_bundle, out);
writer.Run();
const char expected[] =
- "build bar.bundle/Resources/input1.txt: copy_bundle_data "
+ "build bar.bundle/Contents/Resources/input1.txt: copy_bundle_data "
"../../foo/input1.txt\n"
- "build bar.bundle/Resources/input2.txt: copy_bundle_data "
+ "build bar.bundle/Contents/Resources/input2.txt: copy_bundle_data "
"../../foo/input2.txt\n"
"build obj/baz/bar.stamp: stamp "
- "bar.bundle/Resources/input1.txt "
- "bar.bundle/Resources/input2.txt\n"
+ "bar.bundle/Contents/Resources/input1.txt "
+ "bar.bundle/Contents/Resources/input2.txt\n"
"build bar.bundle: phony obj/baz/bar.stamp\n";
std::string out_str = out.str();
EXPECT_EQ(expected, out_str);
@@ -63,41 +69,48 @@ TEST(NinjaCreateBundleTargetWriter, Run) {
// Tests multiple files from asset catalog.
TEST(NinjaCreateBundleTargetWriter, AssetCatalog) {
- TestWithScope setup;
Err err;
+ TestWithScope setup;
setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
- Target target(setup.settings(), Label(SourceDir("//baz/"), "bar"));
- target.set_output_type(Target::CREATE_BUNDLE);
- SetupBundleDataDir(&target.bundle_data(), "//out/Debug");
-
- std::vector<SourceFile>& asset_catalog_sources =
- target.bundle_data().asset_catalog_sources();
- asset_catalog_sources.push_back(
+ Target bundle_data(setup.settings(), Label(SourceDir("//foo/"), "data"));
+ bundle_data.set_output_type(Target::BUNDLE_DATA);
+ bundle_data.sources().push_back(
+ SourceFile("//foo/Foo.xcassets/Contents.json"));
+ bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/Contents.json"));
- asset_catalog_sources.push_back(
+ bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29.png"));
- asset_catalog_sources.push_back(
+ bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29@2x.png"));
- asset_catalog_sources.push_back(
+ bundle_data.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29@3x.png"));
-
- target.SetToolchain(setup.toolchain());
- ASSERT_TRUE(target.OnResolved(&err));
+ bundle_data.action_values().outputs() = SubstitutionList::MakeForTest(
+ "{{bundle_resources_dir}}/{{source_file_part}}");
+ bundle_data.SetToolchain(setup.toolchain());
+ bundle_data.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data.OnResolved(&err));
+
+ Target create_bundle(
+ setup.settings(),
+ Label(SourceDir("//baz/"), "bar", setup.toolchain()->label().dir(),
+ setup.toolchain()->label().name()));
+ SetupBundleDataDir(&create_bundle.bundle_data(), "//out/Debug");
+ create_bundle.set_output_type(Target::CREATE_BUNDLE);
+ create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data));
+ create_bundle.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(create_bundle.OnResolved(&err));
std::ostringstream out;
- NinjaCreateBundleTargetWriter writer(&target, out);
+ NinjaCreateBundleTargetWriter writer(&create_bundle, out);
writer.Run();
const char expected[] =
- "build bar.bundle/Resources/Assets.car: compile_xcassets "
- "../../foo/Foo.xcassets | "
- "../../foo/Foo.xcassets/foo.imageset/Contents.json "
- "../../foo/Foo.xcassets/foo.imageset/FooIcon-29.png "
- "../../foo/Foo.xcassets/foo.imageset/FooIcon-29@2x.png "
- "../../foo/Foo.xcassets/foo.imageset/FooIcon-29@3x.png\n"
- "build obj/baz/bar.stamp: stamp bar.bundle/Resources/Assets.car\n"
+ "build bar.bundle/Contents/Resources/Assets.car: compile_xcassets "
+ "../../foo/Foo.xcassets | obj/foo/data.stamp\n"
+ "build obj/baz/bar.stamp: stamp "
+ "bar.bundle/Contents/Resources/Assets.car\n"
"build bar.bundle: phony obj/baz/bar.stamp\n";
std::string out_str = out.str();
EXPECT_EQ(expected, out_str);
@@ -105,43 +118,27 @@ TEST(NinjaCreateBundleTargetWriter, AssetCatalog) {
// Tests that the phony target for the top-level bundle directory is generated
// correctly.
-TEST(NinjaCreateBundleTargetWriter, BundleRootDirOutput) {
- TestWithScope setup;
+TEST(NinjaCreateBundleTargetWriter, PhonyTarget) {
Err err;
+ TestWithScope setup;
setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
- Target target(setup.settings(), Label(SourceDir("//baz/"), "bar"));
- target.set_output_type(Target::CREATE_BUNDLE);
-
- const std::string bundle_root_dir("//out/Debug/bar.bundle/Contents");
- target.bundle_data().root_dir() = SourceDir(bundle_root_dir);
- target.bundle_data().resources_dir() =
- SourceDir(bundle_root_dir + "/Resources");
- target.bundle_data().executable_dir() = SourceDir(bundle_root_dir + "/MacOS");
- target.bundle_data().plugins_dir() = SourceDir(bundle_root_dir + "/Plug Ins");
-
- std::vector<SourceFile> sources;
- sources.push_back(SourceFile("//foo/input1.txt"));
- sources.push_back(SourceFile("//foo/input2.txt"));
- target.bundle_data().file_rules().push_back(BundleFileRule(
- sources, SubstitutionPattern::MakeForTest(
- "{{bundle_resources_dir}}/{{source_file_part}}")));
-
- target.SetToolchain(setup.toolchain());
- ASSERT_TRUE(target.OnResolved(&err));
+
+ Target create_bundle(
+ setup.settings(),
+ Label(SourceDir("//baz/"), "bar", setup.toolchain()->label().dir(),
+ setup.toolchain()->label().name()));
+ SetupBundleDataDir(&create_bundle.bundle_data(), "//out/Debug");
+ create_bundle.set_output_type(Target::CREATE_BUNDLE);
+ create_bundle.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(create_bundle.OnResolved(&err));
std::ostringstream out;
- NinjaCreateBundleTargetWriter writer(&target, out);
+ NinjaCreateBundleTargetWriter writer(&create_bundle, out);
writer.Run();
const char expected[] =
- "build bar.bundle/Contents/Resources/input1.txt: copy_bundle_data "
- "../../foo/input1.txt\n"
- "build bar.bundle/Contents/Resources/input2.txt: copy_bundle_data "
- "../../foo/input2.txt\n"
- "build obj/baz/bar.stamp: stamp "
- "bar.bundle/Contents/Resources/input1.txt "
- "bar.bundle/Contents/Resources/input2.txt\n"
+ "build obj/baz/bar.stamp: stamp\n"
"build bar.bundle: phony obj/baz/bar.stamp\n";
std::string out_str = out.str();
EXPECT_EQ(expected, out_str);
@@ -149,148 +146,178 @@ TEST(NinjaCreateBundleTargetWriter, BundleRootDirOutput) {
// Tests complex target with multiple bundle_data sources, including
// some asset catalog.
-TEST(NinjaCreateBundleTargetWriter, ImplicitDeps) {
- TestWithScope setup;
+TEST(NinjaCreateBundleTargetWriter, Complex) {
Err err;
+ TestWithScope setup;
setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
- Target target(setup.settings(), Label(SourceDir("//baz/"), "bar"));
- target.set_output_type(Target::CREATE_BUNDLE);
-
- SetupBundleDataDir(&target.bundle_data(), "//out/Debug");
-
- std::vector<SourceFile> sources1;
- sources1.push_back(SourceFile("//foo/input1.txt"));
- sources1.push_back(SourceFile("//foo/input2.txt"));
- target.bundle_data().file_rules().push_back(BundleFileRule(
- sources1, SubstitutionPattern::MakeForTest(
- "{{bundle_resources_dir}}/{{source_file_part}}")));
-
- std::vector<SourceFile> sources2;
- sources2.push_back(SourceFile("//qux/Info.plist"));
- target.bundle_data().file_rules().push_back(BundleFileRule(
- sources2,
- SubstitutionPattern::MakeForTest("{{bundle_root_dir}}/Info.plist")));
-
- std::vector<SourceFile> empty_source;
- target.bundle_data().file_rules().push_back(BundleFileRule(
- empty_source, SubstitutionPattern::MakeForTest(
- "{{bundle_plugins_dir}}/{{source_file_part}}")));
-
- std::vector<SourceFile>& asset_catalog_sources =
- target.bundle_data().asset_catalog_sources();
- asset_catalog_sources.push_back(
+
+ Target bundle_data0(setup.settings(),
+ Label(SourceDir("//qux/"), "info_plist"));
+ bundle_data0.set_output_type(Target::BUNDLE_DATA);
+ bundle_data0.sources().push_back(SourceFile("//qux/qux-Info.plist"));
+ bundle_data0.action_values().outputs() =
+ SubstitutionList::MakeForTest("{{bundle_root_dir}}/Info.plist");
+ bundle_data0.SetToolchain(setup.toolchain());
+ bundle_data0.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data0.OnResolved(&err));
+
+ Target bundle_data1(setup.settings(), Label(SourceDir("//foo/"), "data"));
+ bundle_data1.set_output_type(Target::BUNDLE_DATA);
+ bundle_data1.sources().push_back(SourceFile("//foo/input1.txt"));
+ bundle_data1.sources().push_back(SourceFile("//foo/input2.txt"));
+ bundle_data1.action_values().outputs() = SubstitutionList::MakeForTest(
+ "{{bundle_resources_dir}}/{{source_file_part}}");
+ bundle_data1.SetToolchain(setup.toolchain());
+ bundle_data1.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data1.OnResolved(&err));
+
+ Target bundle_data2(setup.settings(), Label(SourceDir("//foo/"), "assets"));
+ bundle_data2.set_output_type(Target::BUNDLE_DATA);
+ bundle_data2.sources().push_back(
+ SourceFile("//foo/Foo.xcassets/Contents.json"));
+ bundle_data2.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/Contents.json"));
- asset_catalog_sources.push_back(
+ bundle_data2.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29.png"));
- asset_catalog_sources.push_back(
+ bundle_data2.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29@2x.png"));
- asset_catalog_sources.push_back(
+ bundle_data2.sources().push_back(
SourceFile("//foo/Foo.xcassets/foo.imageset/FooIcon-29@3x.png"));
-
- target.SetToolchain(setup.toolchain());
- ASSERT_TRUE(target.OnResolved(&err));
+ bundle_data2.action_values().outputs() = SubstitutionList::MakeForTest(
+ "{{bundle_resources_dir}}/{{source_file_part}}");
+ bundle_data2.SetToolchain(setup.toolchain());
+ bundle_data2.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data2.OnResolved(&err));
+
+ Target bundle_data3(setup.settings(), Label(SourceDir("//quz/"), "assets"));
+ bundle_data3.set_output_type(Target::BUNDLE_DATA);
+ bundle_data3.sources().push_back(
+ SourceFile("//quz/Quz.xcassets/Contents.json"));
+ bundle_data3.sources().push_back(
+ SourceFile("//quz/Quz.xcassets/quz.imageset/Contents.json"));
+ bundle_data3.sources().push_back(
+ SourceFile("//quz/Quz.xcassets/quz.imageset/QuzIcon-29.png"));
+ bundle_data3.sources().push_back(
+ SourceFile("//quz/Quz.xcassets/quz.imageset/QuzIcon-29@2x.png"));
+ bundle_data3.sources().push_back(
+ SourceFile("//quz/Quz.xcassets/quz.imageset/QuzIcon-29@3x.png"));
+ bundle_data3.action_values().outputs() = SubstitutionList::MakeForTest(
+ "{{bundle_resources_dir}}/{{source_file_part}}");
+ bundle_data3.SetToolchain(setup.toolchain());
+ bundle_data3.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data3.OnResolved(&err));
+
+ Target create_bundle(
+ setup.settings(),
+ Label(SourceDir("//baz/"), "bar", setup.toolchain()->label().dir(),
+ setup.toolchain()->label().name()));
+ SetupBundleDataDir(&create_bundle.bundle_data(), "//out/Debug");
+ create_bundle.set_output_type(Target::CREATE_BUNDLE);
+ create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data0));
+ 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.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(create_bundle.OnResolved(&err));
std::ostringstream out;
- NinjaCreateBundleTargetWriter writer(&target, out);
+ NinjaCreateBundleTargetWriter writer(&create_bundle, out);
writer.Run();
const char expected[] =
- "build bar.bundle/Resources/input1.txt: copy_bundle_data "
+ "build bar.bundle/Contents/Info.plist: copy_bundle_data "
+ "../../qux/qux-Info.plist\n"
+ "build bar.bundle/Contents/Resources/input1.txt: copy_bundle_data "
"../../foo/input1.txt\n"
- "build bar.bundle/Resources/input2.txt: copy_bundle_data "
+ "build bar.bundle/Contents/Resources/input2.txt: copy_bundle_data "
"../../foo/input2.txt\n"
- "build bar.bundle/Info.plist: copy_bundle_data "
- "../../qux/Info.plist\n"
- "build bar.bundle/Resources/Assets.car: compile_xcassets "
- "../../foo/Foo.xcassets | "
- "../../foo/Foo.xcassets/foo.imageset/Contents.json "
- "../../foo/Foo.xcassets/foo.imageset/FooIcon-29.png "
- "../../foo/Foo.xcassets/foo.imageset/FooIcon-29@2x.png "
- "../../foo/Foo.xcassets/foo.imageset/FooIcon-29@3x.png\n"
+ "build obj/baz/bar.xcassets.inputdeps.stamp: stamp "
+ "obj/foo/assets.stamp "
+ "obj/quz/assets.stamp\n"
+ "build bar.bundle/Contents/Resources/Assets.car: compile_xcassets "
+ "../../foo/Foo.xcassets "
+ "../../quz/Quz.xcassets | obj/baz/bar.xcassets.inputdeps.stamp\n"
"build obj/baz/bar.stamp: stamp "
- "bar.bundle/Resources/input1.txt "
- "bar.bundle/Resources/input2.txt "
- "bar.bundle/Info.plist "
- "bar.bundle/Resources/Assets.car\n"
+ "bar.bundle/Contents/Info.plist "
+ "bar.bundle/Contents/Resources/input1.txt "
+ "bar.bundle/Contents/Resources/input2.txt "
+ "bar.bundle/Contents/Resources/Assets.car\n"
"build bar.bundle: phony obj/baz/bar.stamp\n";
std::string out_str = out.str();
EXPECT_EQ(expected, out_str);
}
-// Tests multiple files with an output pattern.
+// Tests code signing steps.
TEST(NinjaCreateBundleTargetWriter, CodeSigning) {
- TestWithScope setup;
Err err;
+ TestWithScope setup;
setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
- // Simulate a binary build by another target. Since no toolchain is defined
- // use an action instead of an executable target for simplicity.
- Target binary(setup.settings(), Label(SourceDir("//baz/"), "quz"));
- binary.set_output_type(Target::EXECUTABLE);
- binary.visibility().SetPublic();
- binary.sources().push_back(SourceFile("//baz/quz.c"));
- binary.set_output_name("obj/baz/quz/bin");
- binary.set_output_prefix_override(true);
- binary.SetToolchain(setup.toolchain());
- ASSERT_TRUE(binary.OnResolved(&err));
-
- Target target(setup.settings(),
- Label(SourceDir("//baz/"), "bar",
- setup.toolchain()->label().dir(),
- setup.toolchain()->label().name()));
- target.set_output_type(Target::CREATE_BUNDLE);
-
- SetupBundleDataDir(&target.bundle_data(), "//out/Debug");
-
- std::vector<SourceFile> sources;
- sources.push_back(SourceFile("//foo/input1.txt"));
- sources.push_back(SourceFile("//foo/input2.txt"));
- target.bundle_data().file_rules().push_back(BundleFileRule(
- sources, SubstitutionPattern::MakeForTest(
- "{{bundle_resources_dir}}/{{source_file_part}}")));
-
- target.bundle_data().set_code_signing_script(
+ Target executable(setup.settings(), Label(SourceDir("//baz/"), "quz"));
+ executable.set_output_type(Target::EXECUTABLE);
+ executable.sources().push_back(SourceFile("//baz/quz.c"));
+ executable.SetToolchain(setup.toolchain());
+ executable.visibility().SetPublic();
+ ASSERT_TRUE(executable.OnResolved(&err));
+
+ Target bundle_data(setup.settings(), Label(SourceDir("//foo/"), "data"));
+ bundle_data.set_output_type(Target::BUNDLE_DATA);
+ bundle_data.sources().push_back(SourceFile("//foo/input1.txt"));
+ bundle_data.sources().push_back(SourceFile("//foo/input2.txt"));
+ bundle_data.action_values().outputs() = SubstitutionList::MakeForTest(
+ "{{bundle_resources_dir}}/{{source_file_part}}");
+ bundle_data.SetToolchain(setup.toolchain());
+ bundle_data.visibility().SetPublic();
+ ASSERT_TRUE(bundle_data.OnResolved(&err));
+
+ Target create_bundle(
+ setup.settings(),
+ Label(SourceDir("//baz/"), "bar", setup.toolchain()->label().dir(),
+ setup.toolchain()->label().name()));
+ SetupBundleDataDir(&create_bundle.bundle_data(), "//out/Debug");
+ create_bundle.set_output_type(Target::CREATE_BUNDLE);
+ create_bundle.bundle_data().set_code_signing_script(
SourceFile("//build/codesign.py"));
- target.bundle_data().code_signing_sources().push_back(
- SourceFile("//out/Debug/obj/baz/quz/bin"));
- target.bundle_data().code_signing_outputs() = SubstitutionList::MakeForTest(
- "//out/Debug/bar.bundle/quz",
- "//out/Debug/bar.bundle/_CodeSignature/CodeResources");
- target.bundle_data().code_signing_args() = SubstitutionList::MakeForTest(
- "-b=obj/baz/quz/bin",
- "bar.bundle");
-
- target.public_deps().push_back(LabelTargetPair(&binary));
-
- target.SetToolchain(setup.toolchain());
- ASSERT_TRUE(target.OnResolved(&err));
+ create_bundle.bundle_data().code_signing_sources().push_back(
+ SourceFile("//out/Debug/quz"));
+ create_bundle.bundle_data().code_signing_outputs() =
+ SubstitutionList::MakeForTest(
+ "//out/Debug/bar.bundle/Contents/quz",
+ "//out/Debug/bar.bundle/_CodeSignature/CodeResources");
+ create_bundle.bundle_data().code_signing_args() =
+ SubstitutionList::MakeForTest("-b=quz", "bar.bundle");
+ create_bundle.public_deps().push_back(LabelTargetPair(&executable));
+ create_bundle.private_deps().push_back(LabelTargetPair(&bundle_data));
+ create_bundle.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(create_bundle.OnResolved(&err));
std::ostringstream out;
- NinjaCreateBundleTargetWriter writer(&target, out);
+ NinjaCreateBundleTargetWriter writer(&create_bundle, out);
writer.Run();
const char expected[] =
"rule __baz_bar___toolchain_default__code_signing_rule\n"
- " command = ../../build/codesign.py -b=obj/baz/quz/bin bar.bundle\n"
+ " command = ../../build/codesign.py -b=quz bar.bundle\n"
" description = CODE SIGNING //baz:bar(//toolchain:default)\n"
" restat = 1\n"
"\n"
- "build bar.bundle/Resources/input1.txt: copy_bundle_data "
+ "build bar.bundle/Contents/Resources/input1.txt: copy_bundle_data "
"../../foo/input1.txt\n"
- "build bar.bundle/Resources/input2.txt: copy_bundle_data "
+ "build bar.bundle/Contents/Resources/input2.txt: copy_bundle_data "
"../../foo/input2.txt\n"
"build obj/baz/bar.codesigning.inputdeps.stamp: stamp "
"../../build/codesign.py "
- "obj/baz/quz/bin "
- "bar.bundle/Resources/input1.txt "
- "bar.bundle/Resources/input2.txt\n"
- "build bar.bundle/quz bar.bundle/_CodeSignature/CodeResources: "
+ "quz "
+ "bar.bundle/Contents/Resources/input1.txt "
+ "bar.bundle/Contents/Resources/input2.txt "
+ "./quz\n"
+ "build bar.bundle/Contents/quz bar.bundle/_CodeSignature/CodeResources: "
"__baz_bar___toolchain_default__code_signing_rule "
"| obj/baz/bar.codesigning.inputdeps.stamp\n"
"build obj/baz/bar.stamp: stamp "
- "bar.bundle/quz "
+ "bar.bundle/Contents/quz "
"bar.bundle/_CodeSignature/CodeResources\n"
"build bar.bundle: phony obj/baz/bar.stamp\n";
std::string out_str = out.str();
« no previous file with comments | « tools/gn/ninja_create_bundle_target_writer.cc ('k') | tools/gn/runtime_deps_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698