本文整理汇总了C++中SourceFile::SetPath方法的典型用法代码示例。如果您正苦于以下问题:C++ SourceFile::SetPath方法的具体用法?C++ SourceFile::SetPath怎么用?C++ SourceFile::SetPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SourceFile
的用法示例。
在下文中一共展示了SourceFile::SetPath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: beide
status_t
BeIDE2Paladin(const char *path, BString &outpath)
{
status_t returnVal = BEntry(path).InitCheck();
if (returnVal != B_OK)
return returnVal;
BeIDEProject beide(path);
if (beide.InitCheck() != B_OK)
return beide.InitCheck();
DPath dpath(path);
Project proj(dpath.GetBaseName(), beide.TargetName());
proj.SetPlatform(PLATFORM_R5);
// NOTE: TARGET_* from Project.h & TARGET_* from BeIDEPRoject.h
// map perfectly, so no explicit conversion required
proj.SetTargetType(beide.TargetType());
BString savepath(dpath.GetFolder());
savepath << "/" << dpath.GetBaseName() << ".pld";
proj.Save(savepath.String());
for (int32 i = 0; i < beide.CountLocalIncludes(); i++)
{
BString include = beide.LocalIncludeAt(i);
if (include.ICompare("{project}") == 0)
continue;
include.RemoveFirst("{project}/");
proj.AddLocalInclude(include.String());
}
for (int32 i = 0; i < beide.CountSystemIncludes(); i++)
{
BString include = beide.SystemIncludeAt(i);
if (include.ICompare("{project}") == 0)
continue;
include.RemoveFirst("{project}/");
proj.AddSystemInclude(include.String());
}
SourceGroup *currentGroup = NULL;
for (int32 i = 0; i < beide.CountFiles(); i++)
{
ProjectFile file = beide.FileAt(i);
if (file.path.FindFirst("/_KERNEL_") > 0)
continue;
SourceFile *srcFile = gFileFactory.CreateSourceFileItem(file.path.String());
if (!srcFile)
continue;
if (dynamic_cast<SourceFileLib*>(srcFile))
{
proj.AddLibrary(srcFile->GetPath().GetFileName());
delete srcFile;
continue;
}
if (!proj.HasGroup(file.group.String()))
currentGroup = proj.AddGroup(file.group.String());
BPath newPath;
if (proj.LocateFile(srcFile->GetPath().GetFullPath(), newPath))
srcFile->SetPath(newPath.Path());
proj.AddFile(srcFile, currentGroup);
}
uint32 codeFlags = beide.CodeGenerationFlags();
if (codeFlags & CODEGEN_DEBUGGING)
proj.SetDebug(true);
if (codeFlags & CODEGEN_OPTIMIZE_SIZE)
proj.SetOpForSize(true);
proj.SetOpLevel(beide.OptimizationMode());
// Because Paladin doesn't currently support the seemingly 50,000 warning
// types, we'll put them in the compiler options for the ones not commonly
// used
BString options;
uint32 warnings = beide.Warnings();
if (warnings & WARN_STRICT_ANSI)
options << "-pedantic ";
if (warnings & WARN_LOCAL_SHADOW)
options << "-Wshadow ";
if (warnings & WARN_INCOMPATIBLE_CAST)
options << "-Wbad-function-cast ";
if (warnings & WARN_CAST_QUALIFIERS)
//.........这里部分代码省略.........