/** get project includes * \param root : the root node of the XML project file (<Project > **/ bool MSVC10Loader::GetProjectIncludes(const TiXmlElement* root) { if (!root) return false; LogManager* pMsg = Manager::Get()->GetLogManager(); if (!pMsg) return false; bool bResult = false; // parse all global parameters const TiXmlElement* prop = root->FirstChildElement("PropertyGroup"); while (prop) { const char* attr = prop->Attribute("Condition"); if (!attr) { prop = prop->NextSiblingElement(); continue; } wxString conf = cbC2U(attr); for (size_t i=0; i<m_pcNames.Count(); ++i) { wxString sName = m_pcNames.Item(i); wxString sConf = SubstituteConfigMacros(conf); if (sConf.IsSameAs(sName)) { const TiXmlElement* cinc = prop->FirstChildElement("IncludePath"); wxArrayString cdirs = GetDirectories(cinc); for (size_t j=0; j<cdirs.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt) bt->AddIncludeDir(cdirs.Item(j)); } const TiXmlElement* linc = prop->FirstChildElement("LibraryPath"); wxArrayString ldirs = GetDirectories(linc); for (size_t j=0; j<ldirs.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt) bt->AddLibDir(ldirs.Item(j)); } bResult = true; // got something } } prop = prop->NextSiblingElement(); } if (!bResult) pMsg->DebugLog(_("Failed to find any includes in the project...?!")); return bResult; }
std::vector<std::string> FileSystem::GetFilesWithRecursion(const std::string & directory) { std::vector<std::string> list = GetFiles(directory); for (std::string subdir : GetDirectories(directory)) { auto files = GetFilesWithRecursion(subdir); list.insert(list.end(), files.begin(), files.end()); } return list; }
StringVector CDirectoryManagerBase::GetFilesList(const std::string& fileExt)const { StringVector fileArray; StringVector directories = GetDirectoriesFromString(GetDirectories()); for (size_t i = 0; i < directories.size(); i++) { AppendFileArray(directories[i], fileExt, fileArray); } return fileArray; }
//void CDirectoryManagerBase::UpdateDirectoryArray() //{ // m_directoryArray = GetDirectoryListFromString(m_directoryListString); //} // bool CDirectoryManagerBase::IsInDirectoryList(const std::string& pathIn)const { bool bIn = true; string path = GetCleanPath(pathIn); if (!path.empty()) { StringVector directories = GetDirectoriesFromString(GetDirectories()); bIn = directories.Find(path, false) < directories.size(); } return bIn; }
std::string CDirectoryManagerBase::GetFilePath(const std::string& fileName, const std::string& fileExt)const { std::string filePath; StringVector directories = GetDirectoriesFromString(GetDirectories()); for (size_t i = 0; i < directories.size() && filePath.empty(); i++) { std::string tmp = _GetFilePath(directories[i], fileName, m_nameType == FILE_TITLE ? fileExt : ""); if (FileExists(tmp)) filePath = tmp; } return filePath; }
ERMsg CDirectoryManagerBase::GetFilePath(const std::string& fileName, const std::string& fileExt, std::string& filePath)const { ERMsg msg; filePath = GetFilePath(fileName, fileExt); if (filePath.empty()) { string directoryList = "\t" + GetDirectories(); ReplaceString(directoryList, "|", "\r\n\t"); string error = FormatMsg(IDS_WG_FILE_NOT_FOUND, _GetFileName(fileName, fileExt), directoryList.c_str()); msg.ajoute(error); } return msg; }
static Status wutil_Init() { InitLocks(); ForciblyLoadUser32Dll(); EnableLowFragmentationHeap(); ReadCommandLine(); GetDirectories(); ImportWow64Functions(); DetectWow64(); return INFO::OK; }
/** get target specific stuff * \param root : the root node of the XML project file (<Project > **/ bool MSVC10Loader::GetTargetSpecific(const TiXmlElement* root) { if (!root) return false; LogManager* pMsg = Manager::Get()->GetLogManager(); if (!pMsg) return false; bool bResult = false; // parse all global parameters const TiXmlElement* idef = root->FirstChildElement("ItemDefinitionGroup"); while (idef) { const char* attr = idef->Attribute("Condition"); if (!attr) { idef = idef->NextSiblingElement(); continue; } wxString conf = cbC2U(attr); for (size_t i=0; i<m_pcNames.Count(); ++i) { wxString sName = m_pcNames.Item(i); wxString sConf = SubstituteConfigMacros(conf); if (sConf.IsSameAs(sName)) { const TiXmlElement* comp = idef->FirstChildElement("ClCompile"); if (comp) { const TiXmlElement* pp = comp->FirstChildElement("PreprocessorDefinitions"); wxArrayString pps = GetPreprocessors(pp); for (size_t j=0; j<pps.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt) bt->AddCompilerOption((m_ConvertSwitches ? _T("-D") : _T("/D")) + pps.Item(j)); } const TiXmlElement* cinc = comp->FirstChildElement("AdditionalIncludeDirectories"); wxArrayString cdirs = GetDirectories(cinc); for (size_t j=0; j<cdirs.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt) bt->AddIncludeDir(cdirs.Item(j)); } const TiXmlElement* copt = comp->FirstChildElement("AdditionalOptions"); wxArrayString copts = GetOptions(copt); for (size_t j=0; j<copts.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt && !m_ConvertSwitches) bt->AddCompilerOption(copts.Item(j)); } } const TiXmlElement* link = idef->FirstChildElement("Link"); if (link) { const TiXmlElement* llib = link->FirstChildElement("AdditionalDependencies"); wxArrayString libs = GetLibs(llib); for (size_t j=0; j<libs.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt) bt->AddLinkLib(libs.Item(j)); } const TiXmlElement* linc = link->FirstChildElement("AdditionalLibraryDirectories"); wxArrayString ldirs = GetDirectories(linc); for (size_t j=0; j<ldirs.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt) bt->AddLibDir(ldirs.Item(j)); } const TiXmlElement* lopt = comp->FirstChildElement("AdditionalOptions"); wxArrayString lopts = GetOptions(lopt); for (size_t j=0; j<lopts.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt && !m_ConvertSwitches) bt->AddLinkerOption(lopts.Item(j)); } const TiXmlElement* debug = link->FirstChildElement("GenerateDebugInformation"); wxString sDebug = GetText(debug); if (sDebug.MakeUpper().IsSameAs(_T("TRUE"))) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt && !m_ConvertSwitches) bt->AddLinkerOption(_T("/debug")); } } const TiXmlElement* res = idef->FirstChildElement("ResourceCompile"); if (res) { const TiXmlElement* pp = res->FirstChildElement("PreprocessorDefinitions"); wxArrayString pps = GetPreprocessors(pp); for (size_t j=0; j<pps.Count(); ++j) { ProjectBuildTarget* bt = m_pc[sName].bt; if (bt) bt->AddCompilerOption((m_ConvertSwitches ? _T("-D") : _T("/D")) + pps.Item(j)); } } bResult = true; // got something } } idef = idef->NextSiblingElement(); } if (!bResult) pMsg->DebugLog(_("Failed to find any includes in the project...?!")); return bResult; }
vector<string> DirectoryHelper::GetDirectories() { return GetDirectories( "." ); }