Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

LibraryAnalyzer Class Reference

Inheritance diagram for LibraryAnalyzer

Inheritance graph
[legend]
Collaboration diagram for LibraryAnalyzer:

Collaboration graph
[legend]
List of all members.

Public Methods

 LibraryAnalyzer (const cmt_string& package_name, Constituent& constituent_ref)
void end ()

Constructor & Destructor Documentation

LibraryAnalyzer::LibraryAnalyzer ( const cmt_string & package_name,
Constituent & constituent_ref )
 

Definition at line 564 of file cmt_triggers.cxx.

00565                                                                 :
00566     DependencyAnalyzer (package_name, constituent_ref)
00567 {
00568 }


Member Function Documentation

void LibraryAnalyzer::end ( ) [virtual]
 

Reimplemented from DependencyAnalyzer.

Definition at line 570 of file cmt_triggers.cxx.

00571 {
00572   cmt_string macro_name;
00573   cmt_string output;
00574 
00575   int i;
00576 
00577   if (uses.size () > 0)
00578     {
00579       for (i = 0; i < uses.size (); i++)
00580         {
00581           Libmap& libmap = *(uses[i]);
00582 
00583           libmap.set_used ();
00584         }
00585 
00586       Libmap::LibmapVector& table = Libmap::libmaps ();
00587 
00588       macro_name = constituent.name;
00589       macro_name += "_implied_libraries";
00590 
00591       output  = "macro_prepend ";
00592       output += macro_name;
00593       output += " \"";
00594       for (i = 0; i < table.size (); i++)
00595         {
00596           Libmap& libmap = table[i];
00597           
00598           if (libmap.used)
00599             {
00600 #ifdef USE_PACKAGE_SCOPE
00601               output += libmap.package;
00602               output += "::";
00603 #endif
00604               output += libmap.name;
00605               output += " ";
00606             }
00607         }
00608       output += "\"";
00609 
00610       Cmt::parse_requirements_text (output, "", 0);
00611 
00612       Symbol* macro = Symbol::find (macro_name);
00613       output = macro_name;
00614       output += "=";
00615       output += macro->build_macro_value ();
00616 
00617       cout << output << endl;
00618     }
00619 
00620   if (triggers.size () > 0)
00621     {
00622       macro_name = constituent.name;
00623       macro_name += "_triggers";
00624 
00625       output  = "macro_prepend ";
00626       output += macro_name;
00627       output += " \"";
00628       for (i = 0; i < triggers.size (); i++)
00629         {
00630           const cmt_string& trigger = triggers[i];
00631           
00632           output += trigger;
00633           output += " ";
00634         }
00635       output += "\"";
00636 
00637       Cmt::parse_requirements_text (output, "", 0);
00638 
00639       Symbol* macro = Symbol::find (macro_name);
00640       output = macro_name;
00641       output += "=";
00642       output += macro->build_macro_value ();
00643 
00644       cout << output << endl;
00645     }
00646 }


The documentation for this class was generated from the following file:
Generated at Thu May 16 16:27:53 2002 for CMT by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000