📄 proj_builder_app.cpp
字号:
CDirEntry::AddTrailingPathSeparator(m_ProjectTreeInfo->m_Include); /// <src> branch of tree string src = GetConfig().GetString("ProjectTree", "src", ""); m_ProjectTreeInfo->m_Src = CDirEntry::ConcatPath(m_ProjectTreeInfo->m_Root, src); m_ProjectTreeInfo->m_Src = CDirEntry::AddTrailingPathSeparator(m_ProjectTreeInfo->m_Src); // Subtree to build - projects filter string subtree = args["subtree"].AsString(); subtree = CDirEntry::ConcatPath(m_ProjectTreeInfo->m_Root, subtree); string ext; CDirEntry::SplitPath(subtree, NULL, NULL, &ext); if (NStr::CompareNocase(ext, ".lst") == 0) { //If this is *.lst file m_ProjectTreeInfo->m_IProjectFilter.reset (new CProjectsLstFileFilter(m_ProjectTreeInfo->m_Src, subtree)); } else { //Simple subtree subtree = CDirEntry::AddTrailingPathSeparator(subtree); m_ProjectTreeInfo->m_IProjectFilter.reset (new CProjectOneNodeFilter(m_ProjectTreeInfo->m_Src, subtree)); } /// <compilers> branch of tree string compilers = GetConfig().GetString("ProjectTree", "compilers", ""); m_ProjectTreeInfo->m_Compilers = CDirEntry::ConcatPath(m_ProjectTreeInfo->m_Root, compilers); m_ProjectTreeInfo->m_Compilers = CDirEntry::AddTrailingPathSeparator (m_ProjectTreeInfo->m_Compilers); /// ImplicitExcludedBranches - all subdirs will be excluded by default string implicit_exclude_str = GetConfig().GetString("ProjectTree", "ImplicitExclude", ""); list<string> implicit_exclude_list; NStr::Split(implicit_exclude_str, LIST_SEPARATOR, implicit_exclude_list); ITERATE(list<string>, p, implicit_exclude_list) { const string& subdir = *p; string dir = CDirEntry::ConcatPath(m_ProjectTreeInfo->m_Src, subdir); dir = CDirEntry::AddTrailingPathSeparator(dir); m_ProjectTreeInfo->m_ImplicitExcludedAbsDirs.push_back(dir); } /// <projects> branch of tree (scripts\projects) string projects = GetConfig().GetString("ProjectTree", "projects", ""); m_ProjectTreeInfo->m_Projects = CDirEntry::ConcatPath(m_ProjectTreeInfo->m_Root, projects); m_ProjectTreeInfo->m_Projects = CDirEntry::AddTrailingPathSeparator (m_ProjectTreeInfo->m_Compilers); /// impl part if include project node m_ProjectTreeInfo->m_Impl = GetConfig().GetString("ProjectTree", "impl", ""); /// Makefile in tree node m_ProjectTreeInfo->m_TreeNode = GetConfig().GetString("ProjectTree", "TreeNode", ""); return *m_ProjectTreeInfo;}const CBuildType& CProjBulderApp::GetBuildType(void){ if ( !m_BuildType.get() ) { CArgs args = GetArgs(); bool dll_build = args["dll"]; m_BuildType.reset(new CBuildType(dll_build)); } return *m_BuildType;}const CMsvcDllsInfo& CProjBulderApp::GetDllsInfo(void){ if ( !m_DllsInfo.get() ) { string site_ini_dir = GetProjectTreeInfo().m_Compilers; site_ini_dir = CDirEntry::ConcatPath(site_ini_dir, GetRegSettings().m_CompilersSubdir); site_ini_dir = CDirEntry::ConcatPath(site_ini_dir, GetBuildType().GetTypeStr()); string dll_info_file_name = GetRegSettings().m_DllInfo; dll_info_file_name = CDirEntry::ConcatPath(site_ini_dir, dll_info_file_name); m_DllsInfo.reset(new CMsvcDllsInfo(dll_info_file_name)); } return *m_DllsInfo;}const CProjectItemsTree& CProjBulderApp::GetWholeTree(void){ if ( !m_WholeTree.get() ) { m_WholeTree.reset(new CProjectItemsTree); CProjectDummyFilter pass_all_filter; CProjectTreeBuilder::BuildProjectTree(&pass_all_filter, GetProjectTreeInfo().m_Src, m_WholeTree.get()); } return *m_WholeTree;}CDllSrcFilesDistr& CProjBulderApp::GetDllFilesDistr(void){ if (m_DllSrcFilesDistr.get()) return *m_DllSrcFilesDistr; m_DllSrcFilesDistr.reset ( new CDllSrcFilesDistr() ); return *m_DllSrcFilesDistr;}string CProjBulderApp::GetDatatoolId(void) const{ return GetConfig().GetString("Datatool", "datatool", "datatool");}string CProjBulderApp::GetDatatoolPathForApp(void) const{ return GetConfig().GetString("Datatool", "Location.App", "datatool.exe");}string CProjBulderApp::GetDatatoolPathForLib(void) const{ return GetConfig().GetString("Datatool", "Location.Lib", "datatool.exe");}string CProjBulderApp::GetDatatoolCommandLine(void) const{ return GetConfig().GetString("Datatool", "CommandLine", "");}CProjBulderApp& GetApp(void){ static CProjBulderApp theApp; return theApp;}END_NCBI_SCOPEUSING_NCBI_SCOPE;int main(int argc, const char* argv[]){ // Execute main application function return GetApp().AppMain(argc, argv, 0, eDS_Default);}/* * =========================================================================== * $Log: proj_builder_app.cpp,v $ * Revision 1000.4 2004/06/16 17:02:36 gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.43 * * Revision 1.43 2004/06/15 19:01:40 gorelenk * Fixed compilation errors on GCC 2.95 . * * Revision 1.42 2004/06/14 14:16:58 gorelenk * Changed implementation of CProjBulderApp::GetProjectTreeInfo - added * m_TreeNode . * * Revision 1.41 2004/06/07 19:14:54 gorelenk * Changed CProjBulderApp::GetProjectTreeInfo . * * Revision 1.40 2004/06/07 13:57:43 gorelenk * Changed implementation of CProjBulderApp::GetRegSettings and * CProjBulderApp::GetDllsInfo. * * Revision 1.39 2004/05/21 21:41:41 gorelenk * Added PCH ncbi_pch.hpp * * Revision 1.38 2004/05/19 14:23:40 gorelenk * Implemented CProjBulderApp::GetDllFilesDistr . * * Revision 1.37 2004/05/17 16:21:38 gorelenk * Implemeted CProjBulderApp::GetDllFilesDistr . * * Revision 1.36 2004/04/13 17:09:39 gorelenk * Changed implementation of CProjBulderApp::Run . * * Revision 1.35 2004/04/08 18:45:56 gorelenk * Conditionaly enabled exclude projects by msvc makefiles . * * Revision 1.34 2004/03/23 14:35:51 gorelenk * Added implementation of CProjBulderApp::GetWholeTree. * * Revision 1.33 2004/03/10 21:29:27 gorelenk * Changed implementation of CProjBulderApp::Run. * * Revision 1.32 2004/03/10 16:50:13 gorelenk * Separated static build and dll build processing inside CProjBulderApp::Run. * * Revision 1.31 2004/03/08 23:37:01 gorelenk * Implemented CProjBulderApp::GetDllsInfo. * * Revision 1.30 2004/03/05 18:08:26 gorelenk * Excluded filtering of projects by .msvc makefiles. * * Revision 1.29 2004/03/03 22:20:02 gorelenk * Added predicate PIsExcludedMakefileIn, class template CCombine, redesigned * projects exclusion inside CProjBulderApp::Run - to support local * Makefile.in.msvc . * * Revision 1.28 2004/03/03 00:06:25 gorelenk * Changed implementation of CProjBulderApp::Run. * * Revision 1.27 2004/03/02 23:35:41 gorelenk * Changed implementation of CProjBulderApp::Init (added flag "dll"). * Added implementation of CProjBulderApp::GetBuildType. * * Revision 1.26 2004/03/02 16:25:41 gorelenk * Added include for proj_tree_builder.hpp. * * Revision 1.25 2004/03/01 18:01:19 gorelenk * Added processing times reporting to log. Added project tree checking * for projects inter-dependencies. * * Revision 1.24 2004/02/26 21:31:51 gorelenk * Re-designed CProjBulderApp::GetProjectTreeInfo - use creation of * IProjectFilter-derived classes instead of string. * Changed signature of call BuildProjectTree inside CProjBulderApp::Run. * * Revision 1.23 2004/02/25 19:44:04 gorelenk * Added creation of BuildAll utility project to CProjBulderApp::Run. * * Revision 1.22 2004/02/20 22:53:58 gorelenk * Added analysis of ASN projects depends. * * Revision 1.21 2004/02/18 23:37:06 gorelenk * Changed definition of member-function GetProjectTreeInfo. * * Revision 1.20 2004/02/13 20:39:52 gorelenk * Minor cosmetic changes. * * Revision 1.19 2004/02/13 17:52:42 gorelenk * Added command line parametrs path normalization. * * Revision 1.18 2004/02/12 23:15:29 gorelenk * Implemented utility projects creation and configure re-build of the app. * * Revision 1.17 2004/02/12 18:46:20 ivanov * Removed extra argument from AppMain() call to autoload .ini file * * Revision 1.16 2004/02/12 17:41:52 gorelenk * Implemented creation of MasterProject and ConfigureProject in different * folder. * * Revision 1.15 2004/02/12 16:27:10 gorelenk * Added _CONFIGURE_ project generation. * * Revision 1.14 2004/02/11 15:40:44 gorelenk * Implemented support for multiple implicit excludes from source tree. * * Revision 1.13 2004/02/10 18:18:43 gorelenk * Changed LOG_POST massages. * * Revision 1.12 2004/02/06 23:14:59 gorelenk * Implemented support of ASN projects, semi-auto configure, * CPPFLAGS support. Second working version. * * Revision 1.11 2004/02/04 23:59:52 gorelenk * Changed log messages generation. * * Revision 1.10 2004/02/03 17:14:24 gorelenk * Changed implementation of class CProjBulderApp member functions. * * Revision 1.9 2004/01/30 20:44:22 gorelenk * Initial revision. * * Revision 1.8 2004/01/29 15:45:13 gorelenk * Added support of project tree filtering * * Revision 1.7 2004/01/28 17:55:50 gorelenk * += For msvc makefile support of : * Requires tag, ExcludeProject tag, * AddToProject section (SourceFiles and IncludeDirs), * CustomBuild section. * += For support of user local site. * * Revision 1.6 2004/01/26 19:27:30 gorelenk * += MSVC meta makefile support * += MSVC project makefile support * * Revision 1.5 2004/01/22 17:57:55 gorelenk * first version * * =========================================================================== */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -