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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: msvc_dlls_info.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/16 17:04:48  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef PROJECT_TREE_BULDER__MSVC_DLLS_INDO__HPP
  10. #define PROJECT_TREE_BULDER__MSVC_DLLS_INDO__HPP
  11. /* $Id: msvc_dlls_info.hpp,v 1000.1 2004/06/16 17:04:48 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. #include <app/project_tree_builder/msvc_prj_utils.hpp>
  40. #include <corelib/ncbireg.hpp>
  41. #include <list>
  42. #include <set>
  43. #include <app/project_tree_builder/proj_tree.hpp>
  44. #include <corelib/ncbienv.hpp>
  45. BEGIN_NCBI_SCOPE
  46. class CMsvcDllsInfo
  47. {
  48. public:
  49.     CMsvcDllsInfo(const string& file_path);
  50.     ~CMsvcDllsInfo(void);
  51.     
  52.     void GetDllsList      (list<string>*      dlls_ids) const;
  53.     void GetBuildConfigs  (list<SConfigInfo>* config)   const;
  54.     string GetBuildDefine (void) const;
  55.     struct SDllInfo
  56.     {
  57.         list<string> m_Hosting;
  58.         list<string> m_Depends;
  59.         string       m_DllDefine;
  60.         bool IsEmpty(void) const;
  61.         void Clear  (void);
  62.     };
  63.     void GetDllInfo(const string& dll_id, SDllInfo* dll_info) const;
  64.     bool   IsDllHosted(const string& lib_id) const;
  65.     string GetDllHost (const string& lib_id) const; 
  66. private:
  67.     CNcbiRegistry m_Registry;
  68.     //no value-type semantics
  69.     CMsvcDllsInfo(void);
  70.     CMsvcDllsInfo(const CMsvcDllsInfo&);
  71.     CMsvcDllsInfo& operator= (const CMsvcDllsInfo&);
  72. };
  73. void FilterOutDllHostedProjects(const CProjectItemsTree& tree_src, 
  74.                                 CProjectItemsTree*       tree_dst);
  75. void CreateDllBuildTree(const CProjectItemsTree& tree_src, 
  76.                         CProjectItemsTree*       tree_dst);
  77. void CreateDllsList(const CProjectItemsTree& tree_src,
  78.                     list<string>*            dll_ids);
  79. void CollectDllsDepends(const list<string>& dll_ids,
  80.                         list<string>*       dll_depends_ids);
  81. END_NCBI_SCOPE
  82. /*
  83.  * ===========================================================================
  84.  * $Log: msvc_dlls_info.hpp,v $
  85.  * Revision 1000.1  2004/06/16 17:04:48  gouriano
  86.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.7
  87.  *
  88.  * Revision 1.7  2004/06/10 15:12:55  gorelenk
  89.  * Added newline at the file end to avoid GCC warning.
  90.  *
  91.  * Revision 1.6  2004/06/07 13:45:39  gorelenk
  92.  * Class CMsvcDllsInfo separated from application config.
  93.  *
  94.  * Revision 1.5  2004/03/15 21:22:44  gorelenk
  95.  * Added declaration of function CollectDllsDepends.
  96.  *
  97.  * Revision 1.4  2004/03/10 16:36:03  gorelenk
  98.  * Added definition of functions FilterOutDllHostedProjects,
  99.  * CreateDllBuildTree and CreateDllsList.
  100.  *
  101.  * Revision 1.3  2004/03/08 23:27:40  gorelenk
  102.  * Added declarations of member-functions  IsDllHosted,
  103.  * GetDllHost, GetLibPrefixes to class CMsvcDllsInfo.
  104.  *
  105.  * Revision 1.2  2004/03/03 22:17:33  gorelenk
  106.  * Added declaration of class CMsvcDllsInfo.
  107.  *
  108.  * Revision 1.1  2004/03/03 17:08:32  gorelenk
  109.  * Initial revision.
  110.  *
  111.  * ===========================================================================
  112.  */
  113. #endif //PROJECT_TREE_BULDER__MSVC_DLLS_INDO__HPP