1 #ifndef PROJECT_TREE_BUILDER__MSVC_PRJ_FILES_COLLECTOR__HPP 2 #define PROJECT_TREE_BUILDER__MSVC_PRJ_FILES_COLLECTOR__HPP 3 4 /* $Id: msvc_prj_files_collector.hpp 389557 2013-02-19 14:41:19Z gouriano $ 5 * =========================================================================== 6 * 7 * PUBLIC DOMAIN NOTICE 8 * National Center for Biotechnology Information 9 * 10 * This software/database is a "United States Government Work" under the 11 * terms of the United States Copyright Act. It was written as part of 12 * the author's official duties as a United States Government employee and 13 * thus cannot be copyrighted. This software/database is freely available 14 * to the public for use. The National Library of Medicine and the U.S. 15 * Government have not placed any restriction on its use or reproduction. 16 * 17 * Although all reasonable efforts have been taken to ensure the accuracy 18 * and reliability of the software and data, the NLM and the U.S. 19 * Government do not and cannot warrant the performance or results that 20 * may be obtained by using this software or data. The NLM and the U.S. 21 * Government disclaim all warranties, express or implied, including 22 * warranties of performance, merchantability or fitness for any particular 23 * purpose. 24 * 25 * Please cite the author in any work or product based on this material. 26 * 27 * =========================================================================== 28 * 29 * Author: Viatcheslav Gorelenkov 30 * 31 */ 32 #include <list> 33 #include <string> 34 35 #include "msvc_project_context.hpp" 36 #include "proj_item.hpp" 37 38 #include <corelib/ncbienv.hpp> 39 BEGIN_NCBI_SCOPE 40 41 class CMsvcPrjFilesCollector 42 { 43 public: 44 CMsvcPrjFilesCollector(const CMsvcPrjProjectContext& project_context, 45 const list<SConfigInfo>& project_configs, 46 const CProjItem& project); 47 48 ~CMsvcPrjFilesCollector(void); 49 50 //All path are relative from ProjectDir 51 const list<string>& SourceFiles (void) const; 52 const list<string>& HeaderFiles (void) const; 53 const list<string>& InlineFiles (void) const; 54 const list<string>& ResourceFiles (void) const; 55 const map<string, list<string> > GetExtraFiles(void) const; 56 57 private: 58 // Prohibited to: 59 CMsvcPrjFilesCollector(void); 60 CMsvcPrjFilesCollector(const CMsvcPrjFilesCollector&); 61 CMsvcPrjFilesCollector& operator= (const CMsvcPrjFilesCollector&); 62 63 void CollectSources(void); 64 void CollectHeaders(void); 65 void CollectInlines(void); 66 void CollectResources(void); 67 void CollectExtra(void); 68 69 private: 70 const CMsvcPrjProjectContext* m_Context; 71 const list<SConfigInfo>* m_Configs; 72 const CProjItem* m_Project; 73 74 list<string> m_SourceFiles; 75 list<string> m_HeaderFiles; 76 list<string> m_InlineFiles; 77 list<string> m_ResourceFiles; 78 map<string, list<string> > m_ExtraFiles; 79 }; 80 81 82 END_NCBI_SCOPE 83 84 #endif //PROJECT_TREE_BUILDER__MSVC_PRJ_FILES_COLLECTOR__HPP 85