| Index: tools/gn/commands.cc
|
| diff --git a/tools/gn/commands.cc b/tools/gn/commands.cc
|
| index d40beab011ae1ef3efeff1f35750c56c60eaba10..66bd70dc7022f4f3c3914274f9562b715bfdd1bd 100644
|
| --- a/tools/gn/commands.cc
|
| +++ b/tools/gn/commands.cc
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include "tools/gn/commands.h"
|
| +#include "tools/gn/filesystem_utils.h"
|
| #include "tools/gn/item.h"
|
| #include "tools/gn/label.h"
|
| #include "tools/gn/setup.h"
|
| @@ -48,24 +49,22 @@ const CommandInfoMap& GetCommands() {
|
| const Target* GetTargetForDesc(const std::vector<std::string>& args) {
|
| // Deliberately leaked to avoid expensive process teardown.
|
| Setup* setup = new Setup;
|
| - if (!setup->DoSetup())
|
| + // TODO(brettw) bug 343726: Use a temporary directory instead of this
|
| + // default one to avoid messing up any build that's in there.
|
| + if (!setup->DoSetup("//out/Default/"))
|
| return NULL;
|
|
|
| - // TODO(brettw): set the output dir to be a sandbox one to avoid polluting
|
| - // the real output dir with files written by the build scripts.
|
| -
|
| // Do the actual load. This will also write out the target ninja files.
|
| if (!setup->Run())
|
| return NULL;
|
|
|
| // Need to resolve the label after we know the default toolchain.
|
| - // TODO(brettw) find the current directory and resolve the input label
|
| - // relative to that.
|
| Label default_toolchain = setup->loader()->default_toolchain_label();
|
| Value arg_value(NULL, args[0]);
|
| Err err;
|
| - Label label =
|
| - Label::Resolve(SourceDir("//"), default_toolchain, arg_value, &err);
|
| + Label label = Label::Resolve(SourceDirForCurrentDirectory(
|
| + setup->build_settings().root_path()),
|
| + default_toolchain, arg_value, &err);
|
| if (err.has_error()) {
|
| err.PrintToStdout();
|
| return NULL;
|
|
|