本文整理汇总了C++中ToolEnvironment::GetAtomicNETNuGetBinary方法的典型用法代码示例。如果您正苦于以下问题:C++ ToolEnvironment::GetAtomicNETNuGetBinary方法的具体用法?C++ ToolEnvironment::GetAtomicNETNuGetBinary怎么用?C++ ToolEnvironment::GetAtomicNETNuGetBinary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ToolEnvironment
的用法示例。
在下文中一共展示了ToolEnvironment::GetAtomicNETNuGetBinary方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleToolUpdate
void NETBuildSystem::HandleToolUpdate(StringHash eventType, VariantMap& eventData)
{
if (curBuild_.Null() && !builds_.Size())
return;
if (curBuild_.Null())
{
// kick off a new build
curBuild_ = builds_.Front();
builds_.PopFront();
FileSystem* fileSystem = GetSubsystem<FileSystem>();
// Ensure solution still exists
if (!fileSystem->FileExists(curBuild_->solutionPath_))
{
CurrentBuildError(ToString("Solution does not exist(%s)", curBuild_->solutionPath_.CString()));
return;
}
String solutionPath = curBuild_->solutionPath_;
String ext = GetExtension(solutionPath);
bool requiresNuGet = true;
if (ext == ".sln")
{
// TODO: handle projects that require nuget
requiresNuGet = false;
if (!fileSystem->FileExists(solutionPath))
{
CurrentBuildError(ToString("Generated solution does not exist (%s : %s)", curBuild_->solutionPath_.CString(), solutionPath.CString()));
return;
}
}
else if (ext == ".json")
{
SharedPtr<NETProjectGen> gen(new NETProjectGen(context_));
gen->SetSupportedPlatforms(curBuild_->platforms_);
gen->SetRewriteSolution(true);
if (!gen->LoadJSONProject(solutionPath))
{
CurrentBuildError(ToString("Error loading project (%s)", solutionPath.CString()));
return;
}
if (!gen->Generate())
{
CurrentBuildError(ToString("Error generating project (%s)", solutionPath.CString()));
return;
}
solutionPath = gen->GetSolution()->GetOutputFilename();
requiresNuGet = gen->GetRequiresNuGet();
if (!fileSystem->FileExists(solutionPath))
{
CurrentBuildError(ToString("Generated solution does not exist (%s : %s)", curBuild_->solutionPath_.CString(), solutionPath.CString()));
return;
}
}
ToolEnvironment* tenv = GetSubsystem<ToolEnvironment>();
const String& nugetBinary = tenv->GetAtomicNETNuGetBinary();
if (requiresNuGet && !fileSystem->FileExists(nugetBinary))
{
CurrentBuildError(ToString("NuGet binary is missing (%s)", nugetBinary.CString()));
return;
}
StringVector stringVector;
String platforms;
StringVector processedPlatforms;
String configs;
for (unsigned i = 0; i < curBuild_->configurations_.Size(); i++)
{
stringVector.Push(ToString("/p:Configuration=%s", curBuild_->configurations_[i].CString()));
}
configs = String::Joined(stringVector, " ");
stringVector.Clear();
for (unsigned i = 0; i < curBuild_->platforms_.Size(); i++)
{
// map platform
String platform = curBuild_->platforms_[i];
if (platform == "windows" || platform == "macosx" || platform == "linux")
{
ATOMIC_LOGINFOF("Platform \"%s\" mapped to \"desktop\"", platform.CString());
//.........这里部分代码省略.........