diff options
author | Brad King <brad.king@kitware.com> | 2006-09-28 17:35:24 -0400 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2006-09-28 17:35:24 -0400 |
commit | 1d2fd77ca5f7e77a47e84e3b13556e30fce1e162 (patch) | |
tree | 7b4f772ebf5ea10765011869c5b0156b4d41df9b /Source/cmIncludeExternalMSProjectCommand.cxx | |
parent | bd6aaef0014229049a405ccb0bb96a23ffc6b133 (diff) | |
download | cmake-1d2fd77ca5f7e77a47e84e3b13556e30fce1e162.tar.gz |
BUG: Move hack from old cmMakefile::AddUtilityTarget to this command directly. There really needs to be a better way to represent external project targets.
Diffstat (limited to 'Source/cmIncludeExternalMSProjectCommand.cxx')
-rw-r--r-- | Source/cmIncludeExternalMSProjectCommand.cxx | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/Source/cmIncludeExternalMSProjectCommand.cxx b/Source/cmIncludeExternalMSProjectCommand.cxx index 143773a850..f00d9c362e 100644 --- a/Source/cmIncludeExternalMSProjectCommand.cxx +++ b/Source/cmIncludeExternalMSProjectCommand.cxx @@ -40,18 +40,34 @@ bool cmIncludeExternalMSProjectCommand depends.push_back(args[i]); } } - + + // Hack together a utility target storing enough information + // to reproduce the target inclusion. std::string utility_name("INCLUDE_EXTERNAL_MSPROJECT"); utility_name += "_"; utility_name += args[0]; std::string path = args[1]; cmSystemTools::ConvertToUnixSlashes(path); - const char* no_working_directory = 0; - this->Makefile->AddUtilityCommand(utility_name.c_str(), true, - depends, - no_working_directory, - args[0].c_str(), path.c_str()); - + + // Create a target instance for this utility. + cmTarget target; + target.SetType(cmTarget::UTILITY, utility_name.c_str()); + target.SetInAll(true); + target.SetMakefile(this->Makefile); + std::vector<std::string> no_outputs; + cmCustomCommandLines commandLines; + cmCustomCommandLine commandLine; + commandLine.push_back(args[0]); + commandLine.push_back(path); + commandLines.push_back(commandLine); + cmCustomCommand cc(no_outputs, depends, commandLines, 0, 0); + target.GetPostBuildCommands().push_back(cc); + + // Add the target to the set of targets. + cmTargets::iterator it = + this->Makefile->GetTargets() + .insert(cmTargets::value_type(utility_name.c_str(),target)).first; + this->Makefile->GetLocalGenerator()->GetGlobalGenerator()->AddTarget(*it); } #endif return true; |