00001 #ifndef __cmt_generator_h__ 00002 #define __cmt_generator_h__ 00003 00004 #include "cmt_parser.h" 00005 #include "cmt_constituent.h" 00006 00007 class Generator 00008 { 00009 public: 00010 // Build the MSDEV workspace file 00011 static int build_msdev_workspace (const Constituent::ConstituentVector& constituents); 00012 00013 // Build the MSDEV project file (one per constituent) 00014 static int build_msdev (const Constituent& constituent); 00015 00016 // Build the Make setup file 00017 static void build_make_setup (const cmt_string& package); 00018 00019 // Build the constituents.make file 00020 static void build_constituents_makefile (const cmt_string& package); 00021 00022 // Build the makefile fragment for one constituent 00023 static int build_constituent_makefile (const Constituent& constituent); 00024 static void build_constituent_makefile (const cmt_string& name); 00025 00026 static void build_default_makefile (); 00027 00028 // Build the dependencies for one module 00029 static cmt_string build_dependencies (const cmt_string& file_name); 00030 static void build_dependencies (const cmt_string& name, 00031 int argc, char* argv[]); 00032 00033 // Build prototype file for one module 00034 static void build_prototype (const cmt_string& file_name); 00035 00036 // Build README.html file 00037 static void build_readme (const CmtSystem::cmt_string_vector& arguments); 00038 00039 // Build def files for Windows shared libraries 00040 static void build_windefs (const cmt_string& library_name); 00041 00042 // Commit changes made to a temporary output file. 00043 static void commit (const cmt_string& name); 00044 // Commit changes made to a temporary output file only if the 00045 // differences are non null. 00046 static void check (const cmt_string& name); 00047 }; 00048 00049 #endif