proj_item.hpp
来自「ncbi源码」· HPP 代码 · 共 234 行
HPP
234 行
/* * =========================================================================== * PRODUCTION $Log: proj_item.hpp,v $ * PRODUCTION Revision 1000.2 2004/06/16 17:05:18 gouriano * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.18 * PRODUCTION * =========================================================================== */#ifndef PROJECT_TREE_BUILDER__PROJ_ITEM__HPP#define PROJECT_TREE_BUILDER__PROJ_ITEM__HPP/* $Id: proj_item.hpp,v 1000.2 2004/06/16 17:05:18 gouriano Exp $ * =========================================================================== * * PUBLIC DOMAIN NOTICE * National Center for Biotechnology Information * * This software/database is a "United States Government Work" under the * terms of the United States Copyright Act. It was written as part of * the author's official duties as a United States Government employee and * thus cannot be copyrighted. This software/database is freely available * to the public for use. The National Library of Medicine and the U.S. * Government have not placed any restriction on its use or reproduction. * * Although all reasonable efforts have been taken to ensure the accuracy * and reliability of the software and data, the NLM and the U.S. * Government do not and cannot warrant the performance or results that * may be obtained by using this software or data. The NLM and the U.S. * Government disclaim all warranties, express or implied, including * warranties of performance, merchantability or fitness for any particular * purpose. * * Please cite the author in any work or product based on this material. * * =========================================================================== * * Author: Viatcheslav Gorelenkov * */#include <app/project_tree_builder/proj_datatool_generated_src.hpp>#include <corelib/ncbienv.hpp>BEGIN_NCBI_SCOPE/////////////////////////////////////////////////////////////////////////////////// CProjKey --////// Project key abstraction.////// Project key (type + project_id).class CProjKey{public: typedef enum { eNoProj, eLib, eApp, eDll, eMsvc, eLast } TProjType; CProjKey(void); CProjKey(TProjType type, const string& project_id); CProjKey(const CProjKey& key); CProjKey& operator= (const CProjKey& key); ~CProjKey(void); bool operator< (const CProjKey& key) const; bool operator== (const CProjKey& key) const; bool operator!= (const CProjKey& key) const; TProjType Type(void) const; const string& Id (void) const;private: TProjType m_Type; string m_Id;};/////////////////////////////////////////////////////////////////////////////////// CProjItem --////// Project abstraction.////// Representation of one project from the build tree.class CProjItem{public: typedef CProjKey::TProjType TProjType; CProjItem(void); CProjItem(const CProjItem& item); CProjItem& operator= (const CProjItem& item); CProjItem(TProjType type, const string& name, const string& id, const string& sources_base, const list<string>& sources, const list<CProjKey>& depends, const list<string>& requires, const list<string>& libs_3_party, const list<string>& include_dirs, const list<string>& defines); ~CProjItem(void); /// Name of atomic project. string m_Name; /// ID of atomic project. string m_ID; /// Type of the project. TProjType m_ProjType; /// Base directory of source files (....c++/src/a/ ) string m_SourcesBaseDir; /// List of source files without extension ( *.cpp or *.c ) - /// with relative pathes from m_SourcesBaseDir. list<string> m_Sources; /// What projects this project is depend upon (IDs). list<CProjKey> m_Depends; /// What this project requires to have (in user site). list<string> m_Requires; /// Resolved contents of LIBS flag (Third-party libs) list<string> m_Libs3Party; /// Resolved contents of CPPFLAG ( -I$(include)<m_IncludeDir> -I$(srcdir)/..) /// Absolute pathes list<string> m_IncludeDirs; /// Source files *.asn , *.dtd to be processed by datatool app list<CDataToolGeneratedSrc> m_DatatoolSources; /// Defines like USE_MS_DBLIB list<string> m_Defines; /// Libraries from NCBI C Toolkit to link with list<string> m_NcbiCLibs;private: void Clear(void); void SetFrom(const CProjItem& item);};END_NCBI_SCOPE/* * =========================================================================== * $Log: proj_item.hpp,v $ * Revision 1000.2 2004/06/16 17:05:18 gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.18 * * Revision 1.18 2004/06/10 15:12:55 gorelenk * Added newline at the file end to avoid GCC warning. * * Revision 1.17 2004/05/10 19:46:22 gorelenk * + eMsvc in CProjKey. * * Revision 1.16 2004/03/18 17:41:03 gorelenk * Aligned classes member-functions parameters inside declarations. * * Revision 1.15 2004/03/10 16:45:39 gorelenk * Added eDll to enum TProjType. * * Revision 1.14 2004/03/02 16:33:12 gorelenk * Declarations of classes CProjectItemsTree CCyclicDepends * SProjectTreeFolder CProjectTreeFolders moved to proj_tree.hpp * Declarations of classes SMakeProjectT SAppProjectT SLibProjectT * SAsnProjectT SAsnProjectSingleT SAsnProjectMultipleT and * CProjectTreeBuilder moved to proj_tree_builder.hpp. * * Revision 1.13 2004/03/01 17:58:32 gorelenk * Added declaration of CCyclicDepends class. * * Revision 1.12 2004/02/26 21:24:03 gorelenk * Declaration member-functions of class CProjectTreeBuilder: * BuildProjectTree, BuildOneProjectTree and ProcessDir changed to use * IProjectFilter* filter instead of const string& subtree_to_build. * * Revision 1.11 2004/02/24 17:15:25 gorelenk * Added member m_NcbiCLibs to class CProjItem. * Added declaration of member function CreateNcbiCToolkitLibs * to struct SAppProjectT. * * Revision 1.10 2004/02/20 22:55:12 gorelenk * Added analysis of ASN projects depends. * * 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/04 23:15:27 gorelenk * To class CProjItem added members m_Libs3Party and m_IncludeDirs. * Redesigned constructors of class CProjItem. * * Revision 1.7 2004/02/03 17:05:08 gorelenk * Added members to class CProjItem * * Revision 1.6 2004/01/30 20:42:21 gorelenk * Added support of ASN projects * * Revision 1.5 2004/01/26 19:25:42 gorelenk * += MSVC meta makefile support * += MSVC project makefile support * * Revision 1.4 2004/01/22 17:57:09 gorelenk * first version * * =========================================================================== */#endif //PROJECT_TREE_BUILDER__PROJ_ITEM__HPP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?