Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

cmt.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------
00002 // Copyright Christian Arnault LAL-Orsay CNRS
00003 // arnault@lal.in2p3.fr
00004 // See the complete license in cmt_license.txt "http://www.cecill.info". 
00005 //-----------------------------------------------------------
00006 
00007 #ifndef __cmt_h__
00008 #define __cmt_h__
00009 
00010 #include "cmt_parser.h"
00011 #include "cmt_system.h"
00012 
00013 class ArgParser;
00014 class Symbol;
00015 class Tag;
00016 
00017 class CmtContext
00018 {
00019 public:
00020 
00021   CmtContext ();
00022   ~CmtContext ();
00023 
00024   void clear ();
00025 
00026   ActionType m_action;
00027   bool m_build_nmake;
00028   cmt_string m_cmt_config;
00029   cmt_string m_cmt_root;
00030   cmt_string m_cmt_home;
00031   cmt_string m_cmt_user_context;
00032   cmt_string m_cmt_site;
00033   cmt_string m_cmt_version;
00034   
00035   cmt_string m_current_dir;
00036   cmt_string m_current_package;
00037   cmt_string m_current_config;
00038   cmt_string m_current_path;
00039   cmt_string m_current_prefix;
00040   cmt_string m_current_cmtpath;
00041   cmt_string m_current_offset;
00042   
00043   AccessMode m_current_access;
00044   CmtDirStyle m_current_style;
00045   CmtStructuringStyle m_current_structuring_style;
00046   
00047   cmt_string m_current_tag;
00048   cmt_string m_current_target;
00049   cmt_string m_current_version;
00050   
00051   cmt_string m_extra_tags;
00052   cmt_string m_configure_error;
00053   
00054   bool m_debug;
00055   
00056   cmt_string m_default_path;
00057   bool m_quiet;
00058   bool m_recursive;
00059   CmtScopeFilteringMode m_scope_filtering_mode;
00060   bool m_simulation;
00061   bool m_standard_macros_done;
00062   bool m_all_sets_done;
00063 
00064   bool m_autoconfigure_cmtpath;
00065 };
00066 
00067 class Cmt
00068 {
00069 public:
00070   static void build_config (const cmt_string& prefix, cmt_string& config);
00071   static void build_makefile (const cmt_string& target);
00072   static void build_msdev_file (const cmt_string& target);
00073   // Visual Studio.Net Support                            
00074   static void build_vsnet_file (const cmt_string& target);
00075 
00076   static bool build_nmake ();
00077   static void build_OS9_makefile (const cmt_string& target);
00078   static void build_prefix (const cmt_string& package, cmt_string& prefix);
00079   static void clear ();
00080 
00081   static void configure ();
00082   static void configure_cmt_path (Use* use);
00083   static void configure_config_tag ();
00084   static void configure_current_cmtpath ();
00085   static void configure_current_dir ();
00086   static void configure_current_package ();
00087   static void configure_current_structuring_style ();
00088   static void configure_default_path ();
00089   static void configure_home (Use* use);
00090   static void configure_user_context (Use* use);
00091   static void configure_hosttype_tag ();
00092   static void configure_site_tag (Use* use);
00093   static void configure_tags (Use* use);
00094   static void configure_uname_tag ();
00095   static void configure_version_tag ();
00096 
00097   static void do_awk (const ArgParser& ap);
00098   static void do_broadcast (const ArgParser& ap);
00099   static void do_build_constituent_makefile (const ArgParser& ap);
00100   static void do_build_constituents_makefile (const ArgParser& ap);
00101   static void do_build_dependencies (const ArgParser& ap,
00102                                      int argc,
00103                                      char* argv[]);
00104   static void do_build_library_links (const ArgParser& ap);
00105   static void do_build_make_setup (const ArgParser& ap);
00106   static void do_build_msdev (const ArgParser& ap);
00107   static void do_build_CMT_pacman (const ArgParser& ap);
00108   // Visual Studio.Net Support                                               
00109   static void do_build_vsnet (const ArgParser& ap);
00110 
00111   static void do_build_os9_makefile (const ArgParser& ap);
00112   static void do_build_prototype (const ArgParser& ap);
00113   static void do_build_readme (const ArgParser& ap);
00114   static void do_build_tag_makefile (const ArgParser& ap);
00115   static void do_build_temporary_name (const ArgParser& ap);
00116   static void do_build_triggers (const ArgParser& ap);
00117   static void do_build_windefs (const ArgParser& ap);
00118   static void do_check_configuration (const ArgParser& ap);
00119   static void do_check_files (const ArgParser& ap);
00120   static void do_check_version (const ArgParser& ap);
00121   static void do_checkout (const ArgParser& ap);
00122   static void do_cleanup (const ArgParser& ap);
00123   static void do_config (const ArgParser& ap);
00124   static void do_create (const ArgParser& ap);
00125   static void do_create_project (const ArgParser& ap);
00126   static void do_cvsbranches (const ArgParser& ap);
00127   static void do_cvssubpackages (const ArgParser& ap);
00128   static void do_cvssubprojects (const ArgParser& ap);
00129   static void do_cvstags (const ArgParser& ap);
00130   static void do_do (const ArgParser& ap);
00131   static void do_expand_model (const ArgParser& ap);
00132   static void do_filter (const ArgParser& ap);
00133   static void do_help (const ArgParser& ap);
00134   static void do_lock (const ArgParser& ap);
00135   static void do_remove (const ArgParser& ap);
00136   static void do_remove_library_links (const ArgParser& ap);
00137   static void do_run (const ArgParser& ap);
00138   static void do_run_sequence (const ArgParser& ap);
00139 
00140   static void do_set_version (const ArgParser& ap);
00141   static void do_set_versions (const ArgParser& ap);
00142 
00143   static void do_setup (const ArgParser& ap);
00144   static void do_show_action (const ArgParser& ap);
00145   static void do_show_action_names (const ArgParser& ap);
00146   static void do_show_action_value (const ArgParser& ap);
00147   static void do_show_actions (const ArgParser& ap);
00148   static void do_show_all_tags (const ArgParser& ap);
00149   static void do_show_applied_patterns (const ArgParser& ap);
00150   static void do_show_author (const ArgParser& ap);
00151   static void do_show_branches (const ArgParser& ap);
00152   static void do_show_clients (const ArgParser& ap);
00153   static void do_show_cmtpath_patterns (const ArgParser& ap);
00154   static void do_show_constituent (const ArgParser& ap);
00155   static void do_show_constituent_names (const ArgParser& ap);
00156   static void do_show_constituents (const ArgParser& ap);
00157   static void do_show_cycles (const ArgParser& ap);
00158   static void do_show_fragment (const ArgParser& ap);
00159   static void do_show_fragments (const ArgParser& ap);
00160   static void do_show_groups (const ArgParser& ap);
00161   static void do_show_include_dirs (const ArgParser& ap);
00162   static void do_show_language (const ArgParser& ap);
00163   static void do_show_languages (const ArgParser& ap);
00164   static void do_show_macro (const ArgParser& ap);
00165   static void do_show_macro_names (const ArgParser& ap);
00166   static void do_show_macro_value (const ArgParser& ap);
00167   static void do_show_macros (const ArgParser& ap);
00168   static void do_show_manager (const ArgParser& ap);
00169   static void do_show_packages (const ArgParser& ap);
00170   static void do_show_path (const ArgParser& ap);
00171   static void do_show_pattern (const ArgParser& ap);
00172   static void do_show_pattern_names (const ArgParser& ap);
00173   static void do_show_patterns (const ArgParser& ap);
00174   static void do_show_projects (const ArgParser& ap);
00175   static void do_show_pwd (const ArgParser& ap);
00176   static void do_show_setup (const ArgParser& ap);
00177   static void do_show_set (const ArgParser& ap);
00178   static void do_show_set_names (const ArgParser& ap);
00179   static void do_show_set_value (const ArgParser& ap);
00180   static void do_show_sets (const ArgParser& ap);
00181   static void do_show_strategies (const ArgParser& ap);
00182   static void do_show_tags (const ArgParser& ap);
00183   static void do_show_use_paths (const ArgParser& ap);
00184   static void do_show_uses (const ArgParser& ap);
00185   static void do_show_version (const ArgParser& ap);
00186   static void do_show_versions (const ArgParser& ap);
00187   static void do_show_system (const ArgParser& ap);
00188   static void do_unlock (const ArgParser& ap);
00189   static void do_version (const ArgParser& ap);
00190 
00191 
00192   static const cmt_string& filter_dir (const cmt_string& dir);
00193 
00194   static ActionType get_action ();
00195 
00196   static const cmt_string& get_cmt_home ();
00197   static const cmt_string& get_cmt_user_context ();
00198   static const cmt_string& get_cmt_version ();
00199   static const cmt_string& get_current_dir ();
00200   static const cmt_string& get_current_package ();
00201   static const cmt_string& get_current_cmtpath ();
00202   static const cmt_string& get_current_offset ();
00203   static AccessMode get_current_access ();
00204   static CmtStructuringStyle get_current_structuring_style ();
00205   static CmtDirStyle get_current_style ();
00206   static const cmt_string& get_current_version ();
00207   static const cmt_string& get_current_target ();
00208   static bool get_debug ();
00209   static bool get_quiet ();
00210   static bool get_recursive ();
00211   static CmtScopeFilteringMode get_scope_filtering_mode ();
00212   static bool get_all_sets_done ();
00213 
00215   static void guess_current_project ();
00216 
00217   static void install_cleanup_scripts ();
00218   static void install_setup_scripts ();
00219   static void install_test_cleanup_scripts ();
00220   static void install_test_setup_scripts ();
00221   static bool load (const cmt_string& path,
00222                     const cmt_string& package,
00223                     const cmt_string& version,
00224                     const cmt_string& tag_name = "");
00225   static bool need_prototypes ();
00226   static void parse_arguments (ArgParser& ap);
00227   static int parser (const cmt_string& command_line);
00228   static int parser (int argc, char* argv[]);
00229   static void print (PrintMode mode);
00230   static void print_clean (PrintMode mode);
00231   static void print_context (Use& use, PrintMode mode, const cmt_string& tag);
00232   static void print_macros (PrintMode mode, const cmt_string& pattern = "");
00233   static void print_symbol_names (PrintMode mode, const cmt_string& pattern = "");
00234   static void print_tabs (int tabs);
00235   static int reach_current_package ();
00236   static void restore_all_tags (Use* use);
00237   static void set_current_access (AccessMode mode);
00238   static void set_scope_filtering_mode (CmtScopeFilteringMode mode);
00239   static void set_standard_macros ();
00240   static void set_all_sets_done ();
00241   static void reset_all_sets_done ();
00242   static void use_cmt ();
00243   static void use_home_requirements ();
00244   static void use_user_context_requirements ();
00245   static void use_special_requirements (const cmt_string& path, 
00246                                         const cmt_string& name, 
00247                                         const cmt_string& file_name);
00248   static cmt_string vector_to_string (const CmtSystem::cmt_string_vector& v);
00249   static void vector_to_string (const CmtSystem::cmt_string_vector& v,
00250                                 const cmt_string& separator,
00251                                 cmt_string& result);
00252 };
00253 
00254 #endif

Generated on Mon May 2 10:25:04 2005 for CMT by doxygen 1.3.5