source: CMT/v1r14p20031120/src/cmt_generators.h @ 1

Last change on this file since 1 was 1, checked in by arnault, 19 years ago

Import all tags

File size: 5.7 KB
Line 
1#ifndef __cmt_generators_h__
2#define __cmt_generators_h__
3
4#include "cmt_constituent.h"
5#include "cmt_fragment.h"
6#include "cmt_generator.h"
7
8class AnyDocumentGenerator : public CmtGenerator
9{
10public:
11  AnyDocumentGenerator ();
12
13protected:
14  void reset ();
15
16  Variable m_TITLE;
17
18  FragmentHandle make_header_fragment;
19  FragmentHandle cleanup_header_fragment;
20  FragmentHandle cleanup_fragment;
21  FragmentHandle dependencies_fragment;
22  FragmentHandle dependencies_and_triggers_fragment;
23};
24
25class DocumentGenerator : public AnyDocumentGenerator
26{
27public:
28  DocumentGenerator ();
29  void build (const cmt_string& package,
30              const Constituent& constituent);
31
32private:
33  void reset ();
34  void analyze_document_file (const cmt_string& file,
35                              const cmt_string& constituent_name,
36                              const cmt_string& output_suffix);
37
38  FragmentHandle document_header_fragment;
39};
40
41class LibraryGenerator : public AnyDocumentGenerator
42{
43public:
44  LibraryGenerator ();
45  void build (const cmt_string& package,
46              const Constituent& constituent);
47
48protected:
49  void reset ();
50  void analyze_file (const Constituent& constituent,
51                     const cmt_string& file);
52  void java_file_action (SourceFile& file, const Constituent& constituent);
53  void proto_file_action (const cmt_string& file, const Constituent& constituent);
54  void prepare_proto_file (const cmt_string& file);
55  void module_file_action (SourceFile& file, const Constituent& constituent);
56
57  FragmentHandle library_header_fragment;
58  FragmentHandle application_header_fragment;
59  FragmentHandle java_header_fragment;
60  FragmentHandle jar_header_fragment;
61  FragmentHandle library_fragment;
62  FragmentHandle library_no_share_fragment;
63  FragmentHandle application_fragment;
64  FragmentHandle jar_fragment;
65  FragmentHandle java_fragment;
66  FragmentHandle java_copy_fragment;
67  FragmentHandle cleanup_library_fragment;
68  FragmentHandle cleanup_application_fragment;
69  FragmentHandle cleanup_java_fragment;
70  FragmentHandle cleanup_objects_fragment;
71  FragmentHandle buildproto_fragment;
72  FragmentHandle check_application_fragment;
73  FragmentHandle check_java_fragment;
74  FragmentHandle protos_header_fragment;
75};
76
77class ApplicationGenerator : public LibraryGenerator
78{
79public:
80};
81
82class ReadmeGenerator : public CmtGenerator
83{
84public:
85  ReadmeGenerator ();
86  void build (const CmtSystem::cmt_string_vector& arguments);
87
88private:
89  void reset ();
90
91  FragmentHandle readme_header_fragment;
92  FragmentHandle readme_fragment;
93  FragmentHandle readme_doc_fragment;
94  FragmentHandle readme_use_fragment;
95  FragmentHandle readme_trailer_fragment;
96};
97
98class PrototypeGenerator : public CmtGenerator
99{
100public:
101  void build (const cmt_string& file_name);
102};
103
104class DefaultMakefileGenerator : public CmtGenerator
105{
106public:
107  void build ();
108};
109
110class MSDEVGenerator : public CmtGenerator
111{
112public:
113  MSDEVGenerator ();
114  int build_workspace (const Constituent::ConstituentVector& constituents);
115  int build_project (const Constituent& constituent);
116
117private:
118  void reset ();
119
120  cmt_string msdevdir;
121
122  FragmentHandle dsw_header_fragment;
123  FragmentHandle dsw_project_fragment;
124  FragmentHandle dsw_all_project_header_fragment;
125  FragmentHandle dsw_all_project_dependency_fragment;
126  FragmentHandle dsw_all_project_trailer_fragment;
127  FragmentHandle dsw_trailer_fragment;
128
129  FragmentHandle dsp_all_fragment;
130  FragmentHandle dsp_library_header_fragment;
131  FragmentHandle dsp_application_header_fragment;
132  FragmentHandle dsp_windows_header_fragment;
133  FragmentHandle dsp_contents_fragment;
134  FragmentHandle dsp_trailer_fragment;
135
136};
137
138class VSNETGenerator : public CmtGenerator
139{
140public:
141  VSNETGenerator ();
142  int build_workspace (const Constituent::ConstituentVector& constituents);
143  int build_project (const Constituent& constituent);
144
145private:
146  void reset ();
147
148  void pseudoGUID (const cmt_string& a, 
149                   const cmt_string& b, 
150                   const cmt_string& c, 
151                   cmt_string& d);
152
153  cmt_string vsnetdir;
154
155    //Visual Studio.net Support
156  FragmentHandle sln_header_fragment;
157  FragmentHandle sln_project_fragment;
158  FragmentHandle sln_dependency_header_fragment;
159  FragmentHandle sln_dependency_project_fragment;
160  FragmentHandle sln_dependency_trailer_fragment;
161  FragmentHandle sln_project_config_fragment;
162  FragmentHandle sln_trailer_fragment;
163
164  FragmentHandle vcproj_all_fragment;
165  FragmentHandle vcproj_library_header_fragment;
166  FragmentHandle vcproj_application_header_fragment;
167  FragmentHandle vcproj_windows_header_fragment;
168  FragmentHandle vcproj_contents_fragment;
169  FragmentHandle vcproj_directory_header_fragment;
170  FragmentHandle vcproj_directory_trailer_fragment;
171  FragmentHandle vcproj_trailer_fragment;
172};
173
174class MakeSetupGenerator : public CmtGenerator
175{
176public:
177  MakeSetupGenerator ();
178  void build (const cmt_string& package);
179
180private:
181  void reset ();
182
183  FragmentHandle make_setup_header_fragment;
184  FragmentHandle make_setup_fragment;
185};
186
187class ConstituentsMakefileGenerator : public CmtGenerator
188{
189public:
190  ConstituentsMakefileGenerator ();
191  void build (const cmt_string& package);
192
193private:
194  void reset ();
195
196  FragmentHandle constituents_header_fragment;
197  FragmentHandle constituents_trailer_fragment;
198  FragmentHandle group_fragment;
199  FragmentHandle constituent_fragment;
200  FragmentHandle check_application_header_fragment;
201};
202
203class DependencyGenerator : public CmtGenerator
204{
205public:
206  void build (const cmt_string& name, int argc, char* argv[]);
207
208private:
209  void add_line_to_text (const cmt_string& line, cmt_string& text);
210  cmt_string build (const cmt_string& file_name);
211};
212
213#endif
Note: See TracBrowser for help on using the repository browser.