msvc_prj_utils.hpp
来自「ncbi源码」· HPP 代码 · 共 558 行 · 第 1/2 页
HPP
558 行
CSrcToFilterInserterWithPch(void); CSrcToFilterInserterWithPch(const CSrcToFilterInserterWithPch&); CSrcToFilterInserterWithPch& operator=(const CSrcToFilterInserterWithPch&);};class CBasicProjectsFilesInserter : public IFilesToProjectInserter{public: CBasicProjectsFilesInserter(CVisualStudioProject* vcproj, const string& project_id, const list<SConfigInfo>& configs, const string& project_dir); virtual ~CBasicProjectsFilesInserter(void); // IFilesToProjectInserter implementation virtual void AddSourceFile (const string& rel_file_path); virtual void AddHeaderFile (const string& rel_file_path); virtual void AddInlineFile (const string& rel_file_path); virtual void Finalize (void); struct SFiltersItem { SFiltersItem(void); SFiltersItem(const string& project_dir); CRef<CFilter> m_SourceFiles; CRef<CFilter> m_HeaderFiles; CRef<CFilter> m_HeaderFilesPrivate; CRef<CFilter> m_HeaderFilesImpl; CRef<CFilter> m_InlineFiles; string m_ProjectDir; void Initilize(void); void AddSourceFile (CSrcToFilterInserterWithPch& inserter_w_pch, const string& rel_file_path); void AddHeaderFile (const string& rel_file_path); void AddInlineFile (const string& rel_file_path); };private: CVisualStudioProject* m_Vcproj; CSrcToFilterInserterWithPch m_SrcInserter; SFiltersItem m_Filters; // Prohibited to: CBasicProjectsFilesInserter(void); CBasicProjectsFilesInserter(const CBasicProjectsFilesInserter&); CBasicProjectsFilesInserter& operator=(const CBasicProjectsFilesInserter&);};class CDllProjectFilesInserter : public IFilesToProjectInserter{public: CDllProjectFilesInserter(CVisualStudioProject* vcproj, const CProjKey dll_project_key, const list<SConfigInfo>& configs, const string& project_dir); virtual ~CDllProjectFilesInserter(void); // IFilesToProjectInserter implementation virtual void AddSourceFile (const string& rel_file_path); virtual void AddHeaderFile (const string& rel_file_path); virtual void AddInlineFile (const string& rel_file_path); virtual void Finalize (void);private: CVisualStudioProject* m_Vcproj; CProjKey m_DllProjectKey; CSrcToFilterInserterWithPch m_SrcInserter; string m_ProjectDir; typedef CBasicProjectsFilesInserter::SFiltersItem TFiltersItem; TFiltersItem m_PrivateFilters; CRef<CFilter> m_HostedLibrariesRootFilter; typedef map<CProjKey, TFiltersItem> THostedLibs; THostedLibs m_HostedLibs; // Prohibited to: CDllProjectFilesInserter(void); CDllProjectFilesInserter(const CDllProjectFilesInserter&); CDllProjectFilesInserter& operator=(const CDllProjectFilesInserter&);};/// Common function shared by /// CMsvcMasterProjectGenerator and CMsvcProjectGeneratorvoid AddCustomBuildFileToFilter(CRef<CFilter>& filter, const list<SConfigInfo> configs, const string& project_dir, const SCustomBuildInfo& build_info);/// Checks if 2 dirs has the same rootbool SameRootDirs(const string& dir1, const string& dir2);/// Fill-In MSVC 7.10 Utility projectvoid CreateUtilityProject(const string& name, const list<SConfigInfo>& configs, CVisualStudioProject* project);/// Project naming schemastring CreateProjectName(const CProjKey& project_id);/// Utility class for distinguish between static and dll buildsclass CBuildType{public: CBuildType(bool dll_flag); enum EBuildType { eStatic, eDll }; EBuildType GetType (void) const; string GetTypeStr(void) const;private: EBuildType m_Type; //prohibited to: CBuildType(void); CBuildType(const CBuildType&); CBuildType& operator= (const CBuildType&);};/// Distribution if source files by lib projects/// Uses in dll project to separate source files to groups by libsclass CDllSrcFilesDistr{public: CDllSrcFilesDistr(void); // Register .cpp .c files during DLL creation void RegisterSource (const string& src_file_path, const CProjKey& dll_project_id, const CProjKey& lib_project_id); // Register .hpp .h files during DLL creation void RegisterHeader (const string& hrd_file_path, const CProjKey& dll_project_id, const CProjKey& lib_project_id); // Register .inl files during DLL creation void RegisterInline (const string& inl_file_path, const CProjKey& dll_project_id, const CProjKey& lib_project_id); // Retrive original lib_id for .cpp .c file CProjKey GetSourceLib(const string& src_file_path, const CProjKey& dll_project_id) const; // Retrive original lib_id for .cpp .c file CProjKey GetHeaderLib(const string& hdr_file_path, const CProjKey& dll_project_id) const; // Retrive original lib_id for .inl file CProjKey GetInlineLib(const string& inl_file_path, const CProjKey& dll_project_id) const;private: typedef pair<string, CProjKey> TDllSrcKey; typedef map<TDllSrcKey, CProjKey> TDistrMap; TDistrMap m_SourcesMap; TDistrMap m_HeadersMap; TDistrMap m_InlinesMap; //prohibited to CDllSrcFilesDistr(const CDllSrcFilesDistr&); CDllSrcFilesDistr& operator= (const CDllSrcFilesDistr&);};END_NCBI_SCOPE/* * =========================================================================== * $Log: msvc_prj_utils.hpp,v $ * Revision 1000.3 2004/06/16 17:05:02 gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.24 * * Revision 1.24 2004/06/14 19:18:43 gorelenk * Changed definition of enum in CBuildType . * * Revision 1.23 2004/06/10 15:12:55 gorelenk * Added newline at the file end to avoid GCC warning. * * Revision 1.22 2004/06/08 16:28:27 gorelenk * Added members m_HeaderFilesPrivate and m_HeaderFilesImpl * to struct SFiltersItem. * * Revision 1.21 2004/06/07 13:51:38 gorelenk * Added m_DllInfo to class CMsvc7RegSettings. * * Revision 1.20 2004/05/26 17:56:59 gorelenk * Refactored source files inserter: * old inserter moved to class CSrcToFilterInserterWithPch, * declared interface IFilesToProjectInserter and 2 implementations: * CBasicProjectsFilesInserter for app/lib projects and * CDllProjectFilesInserter for dlls. * * Revision 1.19 2004/05/17 16:13:44 gorelenk * Added declaration of class CDllSrcFilesDistr . * * Revision 1.18 2004/05/10 14:25:47 gorelenk * + CSourceFileToProjectInserter . * * Revision 1.17 2004/04/13 17:06:02 gorelenk * Added member m_CompilersSubdir to class CMsvc7RegSettings. * * Revision 1.16 2004/03/18 17:41:03 gorelenk * Aligned classes member-functions parameters inside declarations. * * Revision 1.15 2004/03/10 16:42:12 gorelenk * Changed declaration of class CMsvc7RegSettings. * * Revision 1.14 2004/03/02 23:28:17 gorelenk * Added declaration of class CBuildType. * * Revision 1.13 2004/02/20 22:54:45 gorelenk * Added analysis of ASN projects depends. * * Revision 1.12 2004/02/12 23:13:49 gorelenk * Declared function for MSVC utility project creation. * * Revision 1.11 2004/02/12 16:22:40 gorelenk * Changed generation of command line for custom build info. * * Revision 1.10 2004/02/10 18:08:16 gorelenk * Added declaration of functions SaveIfNewer and PromoteIfDifferent * - support for file overwriting only if it was changed. * * Revision 1.9 2004/02/06 23:15:40 gorelenk * Implemented support of ASN projects, semi-auto configure, * CPPFLAGS support. Second working version. * * Revision 1.8 2004/02/05 16:26:43 gorelenk * Function GetComponents moved to class CMsvcSite member. * * Revision 1.7 2004/02/04 23:17:58 gorelenk * Added declarations of functions GetComponents and SameRootDirs. * * Revision 1.6 2004/02/03 17:09:46 gorelenk * Changed declaration of class CMsvc7RegSettings. * Added declaration of function GetComponents. * * Revision 1.5 2004/01/28 17:55:05 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.4 2004/01/26 19:25:41 gorelenk * += MSVC meta makefile support * += MSVC project makefile support * * Revision 1.3 2004/01/22 17:57:08 gorelenk * first version * * =========================================================================== */#endif //PROJECT_TREE_BUILDER__MSVC_PRJ_UTILS__HPP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?