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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: msvc_masterproject_generator.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/06/16 17:04:54  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.11
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef PROJECT_TREE_BULDER__MSVC_MASTERPROJECT_GENERATOR_HPP
  10. #define PROJECT_TREE_BULDER__MSVC_MASTERPROJECT_GENERATOR_HPP
  11. /* $Id: msvc_masterproject_generator.hpp,v 1000.1 2004/06/16 17:04:54 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/proj_item.hpp>
  40. #include <app/project_tree_builder/proj_tree.hpp>
  41. #include <app/project_tree_builder/msvc_prj_utils.hpp>
  42. #include <corelib/ncbienv.hpp>
  43. BEGIN_NCBI_SCOPE
  44. USING_SCOPE(objects);
  45. /////////////////////////////////////////////////////////////////////////////
  46. ///
  47. /// CMsvcMasterProjectGenerator --
  48. ///
  49. /// Generator of _MasterProject for MSVC 7.10 solution.
  50. ///
  51. /// Generates utility project from the project tree. Projects hierarchy in the
  52. /// project tree will be represented as folders hierarchy in _MasterProject.
  53. /// Every project will be represented as a file <projectname>.bulid with 
  54. /// attached custom build command that allows to build this project.
  55. class CMsvcMasterProjectGenerator
  56. {
  57. public:
  58.     CMsvcMasterProjectGenerator(const CProjectItemsTree& tree,
  59.                                 const list<SConfigInfo>& configs,
  60.                                 const string&            project_dir);
  61.     ~CMsvcMasterProjectGenerator(void);
  62.     void SaveProject();
  63.     string GetPath() const;
  64. private:
  65.     const CProjectItemsTree& m_Tree;
  66.     list<SConfigInfo> m_Configs;
  67.    const string m_Name;
  68.     const string m_ProjectDir;
  69.     const string m_ProjectItemExt;
  70.     string m_CustomBuildCommand;
  71.     const string m_FilesSubdir;
  72.     
  73.    
  74.     void AddProjectToFilter(CRef<CFilter>& filter, const CProjKey& project_id);
  75.     void CreateProjectFileItem(const CProjKey& project_id);
  76.     void ProcessTreeFolder(const SProjectTreeFolder&  folder, 
  77.                            CSerialObject*             parent);
  78.     /// Prohibited to:
  79.     CMsvcMasterProjectGenerator(void);
  80.     CMsvcMasterProjectGenerator(const CMsvcMasterProjectGenerator&);
  81.     CMsvcMasterProjectGenerator& operator= 
  82.         (const CMsvcMasterProjectGenerator&);
  83. };
  84. END_NCBI_SCOPE
  85. /*
  86.  * ===========================================================================
  87.  * $Log: msvc_masterproject_generator.hpp,v $
  88.  * Revision 1000.1  2004/06/16 17:04:54  gouriano
  89.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.11
  90.  *
  91.  * Revision 1.11  2004/06/10 15:12:55  gorelenk
  92.  * Added newline at the file end to avoid GCC warning.
  93.  *
  94.  * Revision 1.10  2004/03/02 16:34:12  gorelenk
  95.  * Added include to proj_tree.hpp.
  96.  *
  97.  * Revision 1.9  2004/02/20 22:54:45  gorelenk
  98.  * Added analysis of ASN projects depends.
  99.  *
  100.  * Revision 1.8  2004/02/12 17:48:12  gorelenk
  101.  * Re-designed of projects saving. Added member-function GetPath().
  102.  *
  103.  * Revision 1.7  2004/02/12 16:22:39  gorelenk
  104.  * Changed generation of command line for custom build info.
  105.  *
  106.  * Revision 1.6  2004/02/10 18:14:31  gorelenk
  107.  * Implemented overwriting of the _MasterProject only in case when it was
  108.  * realy changed.
  109.  *
  110.  * Revision 1.5  2004/01/30 20:40:41  gorelenk
  111.  * changed procedure of folders creation
  112.  *
  113.  * Revision 1.4  2004/01/28 17:55:05  gorelenk
  114.  * += For msvc makefile support of :
  115.  *                 Requires tag, ExcludeProject tag,
  116.  *                 AddToProject section (SourceFiles and IncludeDirs),
  117.  *                 CustomBuild section.
  118.  * += For support of user local site.
  119.  *
  120.  * Revision 1.3  2004/01/26 19:25:41  gorelenk
  121.  * += MSVC meta makefile support
  122.  * += MSVC project makefile support
  123.  *
  124.  * Revision 1.2  2004/01/22 17:57:08  gorelenk
  125.  * first version
  126.  *
  127.  * ===========================================================================
  128.  */
  129. #endif  //PROJECT_TREE_BULDER__MSVC_MASTERPROJECT_GENERATOR_HPP