source: CMT/HEAD/source/cmt_generators.h @ 429

Last change on this file since 429 was 429, checked in by rybkin, 17 years ago

See C.L. 335

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