source: CMT/v1r21/source/cmt_language.h

Last change on this file was 486, checked in by rybkin, 15 years ago

See C.L. 381

  • Property svn:eol-style set to native
File size: 1.7 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_language_h__
8#define __cmt_language_h__
9
10#include "cmt_parser.h"
11#include "cmt_fragment.h"
12
13class Language
14{
15public:
16  typedef cmt_vector<Language> LanguageVector;
17  static void action (const CmtSystem::cmt_string_vector& words);
18  static Language& find (const cmt_string& name);
19  static Language& find_with_suffix (const cmt_string& suffix);
20  static Language& add (const cmt_string& name);
21  static void show (const cmt_string& name);
22  static void show_all ();
23  static void show_names ();
24  static void setup_all_fragments ();
25  static void clear_all ();
26  static LanguageVector& languages ();
27  static Language& null ();
28
29public:
30  Language ();
31  ~Language ();
32  void clear ();
33  void show ();
34  void setup_fragments ();
35  bool operator == (const cmt_string& name) const;
36  bool operator == (const Language& other) const;
37  bool operator != (const Language& other) const;
38  bool native_dependencies ();
39  const cmt_string& dependencies_options () const;
40
41  cmt_string m_name;
42  cmt_string fragment_name;
43  cmt_string linker;
44  cmt_string output_suffix;
45  bool prototypes;
46  cmt_string preprocessor_command;
47  CmtSystem::cmt_string_vector suffixes;
48  CmtSystem::cmt_string_vector extra_output_suffixes;
49
50  FragmentHandle application;
51  FragmentHandle library;
52
53private:
54  void setup_native_dependencies ();
55
56  bool m_native_dependencies;
57  cmt_string m_dependencies_options;
58  bool m_native_dependencies_set;
59};
60
61#endif
Note: See TracBrowser for help on using the repository browser.