| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <sstream> | 6 #include <sstream> |
| 7 | 7 |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "tools/gn/ninja_action_target_writer.h" | 9 #include "tools/gn/ninja_action_target_writer.h" |
| 10 #include "tools/gn/substitution_list.h" | 10 #include "tools/gn/substitution_list.h" |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 Err err; | 155 Err err; |
| 156 | 156 |
| 157 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); | 157 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); |
| 158 | 158 |
| 159 // Some dependencies that the action can depend on. Use actions for these | 159 // Some dependencies that the action can depend on. Use actions for these |
| 160 // so they have a nice platform-independent stamp file that can appear in the | 160 // so they have a nice platform-independent stamp file that can appear in the |
| 161 // output (rather than having to worry about how the current platform names | 161 // output (rather than having to worry about how the current platform names |
| 162 // binaries). | 162 // binaries). |
| 163 Target dep(setup.settings(), Label(SourceDir("//foo/"), "dep")); | 163 Target dep(setup.settings(), Label(SourceDir("//foo/"), "dep")); |
| 164 dep.set_output_type(Target::ACTION); | 164 dep.set_output_type(Target::ACTION); |
| 165 dep.visibility().SetPublic(); |
| 165 dep.SetToolchain(setup.toolchain()); | 166 dep.SetToolchain(setup.toolchain()); |
| 166 ASSERT_TRUE(dep.OnResolved(&err)); | 167 ASSERT_TRUE(dep.OnResolved(&err)); |
| 167 | 168 |
| 168 Target datadep(setup.settings(), Label(SourceDir("//foo/"), "datadep")); | 169 Target datadep(setup.settings(), Label(SourceDir("//foo/"), "datadep")); |
| 169 datadep.set_output_type(Target::ACTION); | 170 datadep.set_output_type(Target::ACTION); |
| 171 datadep.visibility().SetPublic(); |
| 170 datadep.SetToolchain(setup.toolchain()); | 172 datadep.SetToolchain(setup.toolchain()); |
| 171 ASSERT_TRUE(datadep.OnResolved(&err)); | 173 ASSERT_TRUE(datadep.OnResolved(&err)); |
| 172 | 174 |
| 173 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); | 175 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); |
| 174 target.set_output_type(Target::ACTION_FOREACH); | 176 target.set_output_type(Target::ACTION_FOREACH); |
| 175 target.deps().push_back(LabelTargetPair(&dep)); | 177 target.private_deps().push_back(LabelTargetPair(&dep)); |
| 176 target.datadeps().push_back(LabelTargetPair(&datadep)); | 178 target.data_deps().push_back(LabelTargetPair(&datadep)); |
| 177 | 179 |
| 178 target.sources().push_back(SourceFile("//foo/input1.txt")); | 180 target.sources().push_back(SourceFile("//foo/input1.txt")); |
| 179 target.sources().push_back(SourceFile("//foo/input2.txt")); | 181 target.sources().push_back(SourceFile("//foo/input2.txt")); |
| 180 | 182 |
| 181 target.action_values().set_script(SourceFile("//foo/script.py")); | 183 target.action_values().set_script(SourceFile("//foo/script.py")); |
| 182 | 184 |
| 183 target.action_values().args() = SubstitutionList::MakeForTest( | 185 target.action_values().args() = SubstitutionList::MakeForTest( |
| 184 "-i", | 186 "-i", |
| 185 "{{source}}", | 187 "{{source}}", |
| 186 "--out=foo bar{{source_name_part}}.o"); | 188 "--out=foo bar{{source_name_part}}.o"); |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 "build input2.out: __foo_bar___rule ../../foo/input2.txt" | 376 "build input2.out: __foo_bar___rule ../../foo/input2.txt" |
| 375 " | obj/foo/bar.inputdeps.stamp\n" | 377 " | obj/foo/bar.inputdeps.stamp\n" |
| 376 " unique_name = 1\n" | 378 " unique_name = 1\n" |
| 377 " source_name_part = input2\n" | 379 " source_name_part = input2\n" |
| 378 " depfile = gen/input2.d\n" | 380 " depfile = gen/input2.d\n" |
| 379 "\n" | 381 "\n" |
| 380 "build obj/foo/bar.stamp: stamp input1.out input2.out\n"; | 382 "build obj/foo/bar.stamp: stamp input1.out input2.out\n"; |
| 381 EXPECT_EQ(expected_win, out.str()); | 383 EXPECT_EQ(expected_win, out.str()); |
| 382 } | 384 } |
| 383 } | 385 } |
| OLD | NEW |