本文整理汇总了C++中ProjectSettingsPtr::GetProjectType方法的典型用法代码示例。如果您正苦于以下问题:C++ ProjectSettingsPtr::GetProjectType方法的具体用法?C++ ProjectSettingsPtr::GetProjectType怎么用?C++ ProjectSettingsPtr::GetProjectType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProjectSettingsPtr
的用法示例。
在下文中一共展示了ProjectSettingsPtr::GetProjectType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddConfiguration
void VcImporter::AddConfiguration(ProjectSettingsPtr settings, wxXmlNode* config)
{
// configuration name
wxString name = XmlUtils::ReadString(config, wxT("Name"));
name = name.BeforeFirst(wxT('|'));
name.Replace(wxT(" "), wxT("_"));
BuildConfigPtr le_conf(new BuildConfig(NULL));
le_conf->SetName(name);
le_conf->SetIntermediateDirectory(XmlUtils::ReadString(config, wxT("IntermediateDirectory")));
// get the compiler settings
wxXmlNode* cmpNode = XmlUtils::FindNodeByName(config, wxT("Tool"), wxT("VCCLCompilerTool"));
// get the include directories
le_conf->SetIncludePath(SplitString(XmlUtils::ReadString(cmpNode, wxT("AdditionalIncludeDirectories"))));
le_conf->SetPreprocessor(XmlUtils::ReadString(cmpNode, wxT("PreprocessorDefinitions")));
// Select the best compiler for the import process (we select g++ by default)
le_conf->SetCompilerType(m_compiler);
// Get the configuration type
long type = XmlUtils::ReadLong(config, wxT("ConfigurationType"), 1);
wxString projectType;
wxString errMsg;
switch(type) {
case 2: // dll
projectType = Project::DYNAMIC_LIBRARY;
break;
case 4: // static library
projectType = Project::STATIC_LIBRARY;
break;
case 1: // exe
default:
projectType = Project::EXECUTABLE;
break;
}
le_conf->SetProjectType(projectType);
// if project type is DLL or Executable, copy linker settings as well
if(settings->GetProjectType(le_conf->GetName()) == Project::EXECUTABLE ||
settings->GetProjectType(le_conf->GetName()) == Project::DYNAMIC_LIBRARY) {
wxXmlNode* linkNode = XmlUtils::FindNodeByName(config, wxT("Tool"), wxT("VCLinkerTool"));
if(linkNode) {
wxString outputFileName(XmlUtils::ReadString(linkNode, wxT("OutputFile")));
#ifndef __WXMSW__
outputFileName.Replace(wxT(".dll"), wxT(".so"));
outputFileName.Replace(wxT(".exe"), wxT(""));
#endif
le_conf->SetOutputFileName(outputFileName);
// read in the additional libraries & libpath
wxString libs = XmlUtils::ReadString(linkNode, wxT("AdditionalDependencies"));
// libs is a space delimited string
wxStringTokenizer tk(libs, wxT(" "));
libs.Empty();
while(tk.HasMoreTokens()) {
libs << tk.NextToken() << wxT(";");
}
le_conf->SetLibraries(libs);
le_conf->SetLibPath(XmlUtils::ReadString(linkNode, wxT("AdditionalLibraryDirectories")));
}
} else {
// static library
wxXmlNode* libNode = XmlUtils::FindNodeByName(config, wxT("Tool"), wxT("VCLibrarianTool"));
if(libNode) {
wxString outputFileName(XmlUtils::ReadString(libNode, wxT("OutputFile")));
outputFileName.Replace(wxT("\\"), wxT("/"));
wxString outputFileNameOnly = outputFileName.AfterLast(wxT('/'));
wxString outputFilePath = outputFileName.BeforeLast(wxT('/'));
if(m_compilerLowercase.Contains(wxT("gnu"))) {
if(outputFileNameOnly.StartsWith(wxT("lib")) == false) {
outputFileNameOnly.Prepend(wxT("lib"));
}
outputFileName.Clear();
outputFileName << outputFilePath << wxT("/") << outputFileNameOnly;
outputFileName.Replace(wxT(".lib"), wxT(".a"));
}
le_conf->SetOutputFileName(outputFileName);
}
}
// add the configuration
settings->SetBuildConfiguration(le_conf);
}