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

MakeSetupGenerator Class Reference

#include <cmt_generators.h>

Inheritance diagram for MakeSetupGenerator:

Inheritance graph
[legend]
Collaboration diagram for MakeSetupGenerator:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MakeSetupGenerator ()
void build (const cmt_string &package)

Private Member Functions

void reset ()

Private Attributes

FragmentHandle make_setup_header_fragment
FragmentHandle make_setup_fragment

Constructor & Destructor Documentation

MakeSetupGenerator::MakeSetupGenerator  ) 
 

Definition at line 2253 of file cmt_generators.cxx.

References make_setup_fragment, make_setup_header_fragment, and FragmentHandle::set().

02254 {
02255   make_setup_header_fragment.set ("make_setup_header");
02256   make_setup_fragment.set ("make_setup");
02257 }


Member Function Documentation

void MakeSetupGenerator::build const cmt_string package  ) 
 

Definition at line 2267 of file cmt_generators.cxx.

References Cmt::build_nmake(), cmt_string::c_str(), cmt_style, CmtGenerator::commit(), Constituent::constituents(), Constituent::ConstituentVector, FragmentHandle::copy(), Use::discarded, Symbol::expand(), CmtSystem::file_separator(), Use::get_full_path(), Use::get_ordered_uses(), make_setup_fragment, make_setup_header_fragment, mgr_style, Use::prefix, Use::real_path, reset(), cmt_vector< T >::size(), Use::style, and Use::UsePtrVector.

Referenced by Generator::build_make_setup().

02268 {
02269   reset ();
02270 
02271   m_PACKAGE = package;
02272 
02273   cmt_string file_name = "setup.";
02274 
02275   if (Cmt::build_nmake ())
02276     {
02277       file_name += "nmake";
02278     }
02279   else
02280     {
02281       file_name += "make";
02282     }
02283   
02284   cmt_string new_file_name = file_name;
02285   new_file_name += "new";
02286 
02287   m_output_file = fopen (new_file_name, "wb");
02288 
02289   if (m_output_file != NULL)
02290     {
02291       int number;
02292 
02293       const Use::UsePtrVector& uses = Use::get_ordered_uses ();
02294 
02295       const Constituent::ConstituentVector& constituents =
02296         Constituent::constituents ();
02297 
02298       cmt_string temp;
02299 
02300       make_setup_header_fragment.copy (m_output_file, 1, &m_PACKAGE);
02301 
02302       for (number = 0; number < uses.size (); number++)
02303         {
02304           const Use* use = uses[number];
02305 
02306           if (use->discarded) continue;
02307 
02308           if (use->real_path != "")
02309             {
02310               temp  = use->prefix;
02311               temp += "ROOT = ";
02312               temp += use->get_full_path ();
02313 
02314               fprintf (m_output_file, "%s\n", temp.c_str());
02315             }
02316         }
02317 
02318       temp  = "use_requirements = ";
02319       temp += "requirements ";
02320 
02321       for (number = 0; number < uses.size (); number++)
02322         {
02323           const Use* use = uses[number];
02324 
02325           if (use->discarded) continue;
02326 
02327           if (use->real_path != "")
02328             {
02329               temp += "$(";
02330               temp += use->prefix;
02331               temp += "ROOT)";
02332               temp += CmtSystem::file_separator ();
02333               switch (use->style)
02334                 {
02335                 case cmt_style:
02336                   temp += "cmt";
02337                   break;
02338                 case mgr_style:
02339                   temp += "mgr";
02340                   break;
02341                 }
02342               temp += CmtSystem::file_separator ();
02343               temp += "requirements ";
02344             }
02345         }
02346 
02347       fprintf (m_output_file, "%s\n", temp.c_str());
02348 
02349       temp  = "constituents = $(constituents)";
02350       Symbol::expand (temp);
02351 
02352       fprintf (m_output_file, "%s\n", temp.c_str());
02353 
02354       make_setup_fragment.copy (m_output_file, 1, &m_PACKAGE);
02355 
02356       fclose (m_output_file);
02357 
02358       //--- Complete the operation --------------
02359 
02360       commit (new_file_name);
02361     }
02362 
02363   /*
02364     for option in $*
02365     do
02366     case ${option} in
02367     args-tag=*)
02368     tag=${option}
02369     tag=`echo "${tag}" | sed -e 's/args.tag=//'`
02370     ;;
02371     -tag=*)
02372     tag=args${option}
02373     tag=`echo "${tag}" | sed -e 's/args.tag=//'`
02374     ;;
02375     esac
02376     done
02377 
02378     if test "${tag}" = "" ; then
02379     tag=${CMTCONFIG}
02380     fi
02381 
02382     build_shell_setup_files ${tag}
02383 
02384     now=`date`
02385 
02386   */
02387 }

void MakeSetupGenerator::reset  )  [private]
 

Reimplemented from CmtGenerator.

Definition at line 2259 of file cmt_generators.cxx.

References make_setup_fragment, make_setup_header_fragment, FragmentHandle::reset(), and CmtGenerator::reset().

Referenced by build().

02260 {
02261   CmtGenerator::reset ();
02262 
02263   make_setup_header_fragment.reset ();
02264   make_setup_fragment.reset ();
02265 }


Member Data Documentation

FragmentHandle MakeSetupGenerator::make_setup_fragment [private]
 

Definition at line 190 of file cmt_generators.h.

Referenced by build(), MakeSetupGenerator(), and reset().

FragmentHandle MakeSetupGenerator::make_setup_header_fragment [private]
 

Definition at line 189 of file cmt_generators.h.

Referenced by build(), MakeSetupGenerator(), and reset().


The documentation for this class was generated from the following files:
Generated on Mon May 2 10:25:53 2005 for CMT by doxygen 1.3.5