proj_utils.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: proj_utils.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/16 17:05:28  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.13
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef PROJECT_TREE_BUILDER__PROJ_UTILS__HPP
  10. #define PROJECT_TREE_BUILDER__PROJ_UTILS__HPP
  11. /* $Id: proj_utils.hpp,v 1000.1 2004/06/16 17:05:28 gouriano Exp $
  12.  * ===========================================================================
  13.  *
  14.  *                            PUBLIC DOMAIN NOTICE
  15.  *               National Center for Biotechnology Information
  16.  *
  17.  *  This software/database is a "United States Government Work" under the
  18.  *  terms of the United States Copyright Act.  It was written as part of
  19.  *  the author's official duties as a United States Government employee and
  20.  *  thus cannot be copyrighted.  This software/database is freely available
  21.  *  to the public for use. The National Library of Medicine and the U.S.
  22.  *  Government have not placed any restriction on its use or reproduction.
  23.  *
  24.  *  Although all reasonable efforts have been taken to ensure the accuracy
  25.  *  and reliability of the software and data, the NLM and the U.S.
  26.  *  Government do not and cannot warrant the performance or results that
  27.  *  may be obtained by using this software or data. The NLM and the U.S.
  28.  *  Government disclaim all warranties, express or implied, including
  29.  *  warranties of performance, merchantability or fitness for any particular
  30.  *  purpose.
  31.  *
  32.  *  Please cite the author in any work or product based on this material.
  33.  *
  34.  * ===========================================================================
  35.  *
  36.  * Author:  Viatcheslav Gorelenkov
  37.  *
  38.  */
  39. /// Utilits for Project Tree Builder:
  40. #include <corelib/ncbienv.hpp>
  41. BEGIN_NCBI_SCOPE
  42. /// Key Value struct
  43. struct SKeyValue
  44. {
  45.     string m_Key;
  46.     string m_Value;
  47. };
  48. /// Filter for projects in project tree
  49. class IProjectFilter
  50. {
  51. public:
  52.     virtual ~IProjectFilter(void)
  53.     {
  54.     }
  55.     virtual bool CheckProject(const string& project_base_dir) const = 0;
  56.     virtual bool PassAll     (void)                           const = 0;
  57. };
  58. /// Abstraction of project tree general information
  59. struct SProjectTreeInfo
  60. {
  61.     /// Root of the project tree
  62.     string m_Root;
  63.     /// Subtree to buil (default is m_Src).
  64.     /// More enhanced version of "subtree to build"
  65.     auto_ptr<IProjectFilter> m_IProjectFilter;
  66.     /// Branch of tree to be implicit exclude from build
  67.     list<string> m_ImplicitExcludedAbsDirs;
  68.     /// <include> branch of tree
  69.     string m_Include;
  70.     /// <src> branch of tree
  71.     string m_Src;
  72.     /// <compilers> branch of tree
  73.     string m_Compilers;
  74.     /// <projects> branch of tree (scriptsprojects)
  75.     string m_Projects;
  76.     /// <impl> sub-branch of include/* project path
  77.     string m_Impl;
  78.     /// Makefile in the tree node 
  79.     string m_TreeNode;
  80. };
  81. // Get parent directory
  82. string ParentDir (const string& dir_abs);
  83. END_NCBI_SCOPE
  84. /*
  85.  * ===========================================================================
  86.  * $Log: proj_utils.hpp,v $
  87.  * Revision 1000.1  2004/06/16 17:05:28  gouriano
  88.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.13
  89.  *
  90.  * Revision 1.13  2004/06/14 14:14:58  gorelenk
  91.  * Added m_TreeNode to struct SProjectTreeInfo .
  92.  *
  93.  * Revision 1.12  2004/06/10 15:10:17  gorelenk
  94.  * Changed function template EraseIf to be comply with standard STL map .
  95.  *
  96.  * Revision 1.11  2004/06/07 19:13:02  gorelenk
  97.  * + m_Impl in struct SProjectTreeInfo .
  98.  *
  99.  * Revision 1.10  2004/02/26 21:20:58  gorelenk
  100.  * Added declaration of IProjectFilter interface. auto_ptr<IProjectFilter>
  101.  * member used instead of m_Subtree in struct SProjectTreeInfo.
  102.  *
  103.  * Revision 1.9  2004/02/18 23:33:35  gorelenk
  104.  * Added m_Projects member to struct SProjectTreeInfo.
  105.  *
  106.  * Revision 1.8  2004/02/11 15:39:53  gorelenk
  107.  * Added support for multiple implicit excludes from source tree.
  108.  *
  109.  * Revision 1.7  2004/02/06 23:15:40  gorelenk
  110.  * Implemented support of ASN projects, semi-auto configure,
  111.  * CPPFLAGS support. Second working version.
  112.  *
  113.  * Revision 1.6  2004/02/04 23:13:24  gorelenk
  114.  * struct SProjectTreeInfo redesigned.
  115.  *
  116.  * Revision 1.5  2004/02/03 17:03:39  gorelenk
  117.  * Added members to struct SProjectTreeInfo
  118.  *
  119.  * Revision 1.4  2004/01/28 17:55:07  gorelenk
  120.  * += For msvc makefile support of :
  121.  *                 Requires tag, ExcludeProject tag,
  122.  *                 AddToProject section (SourceFiles and IncludeDirs),
  123.  *                 CustomBuild section.
  124.  * += For support of user local site.
  125.  *
  126.  * Revision 1.3  2004/01/22 17:57:09  gorelenk
  127.  * first version
  128.  *
  129.  * ===========================================================================
  130.  */
  131. #endif //PROJECT_TREE_BUILDER__PROJ_UTILS__HPP