Changeset 628 for CMT/HEAD/source


Ignore:
Timestamp:
Jan 11, 2013, 11:23:19 AM (11 years ago)
Author:
rybkin
Message:

See C.L. 499

Location:
CMT/HEAD/source
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • CMT/HEAD/source/cmt_generator.cxx

    r627 r628  
    8686  m_HASTARGETTAG.set ("HASTARGETTAG");
    8787  m_HASDEPENDENCIES.set ("HASDEPENDENCIES");
     88  m_HASPROTOTYPES.set ("HASPROTOTYPES");
    8889  m_ISCHECKGROUP.set ("ISCHECKGROUP");
    8990}
     
    126127  m_HASTARGETTAG = "";
    127128  m_HASDEPENDENCIES = "";
     129  m_HASPROTOTYPES = "";
    128130  m_ISCHECKGROUP = "";
    129131  m_PACKINCLUDES = "";
  • CMT/HEAD/source/cmt_generator.h

    r627 r628  
    133133  Variable m_HASTARGETTAG;
    134134  Variable m_HASDEPENDENCIES;
     135  Variable m_HASPROTOTYPES;
    135136  Variable m_ISCHECKGROUP;
    136137};
  • CMT/HEAD/source/cmt_generators.cxx

    r627 r628  
    468468                              const cmt_string& file_name)
    469469{
    470   static cmt_string lib;
     470  //static cmt_string lib;
    471471  static cmt_string allsources;
    472472  static cmt_string file;
     
    499499  need_prototypes = constituent.need_prototypes;
    500500
     501  if (constituent.need_prototypes)
     502    {
     503      m_HASPROTOTYPES = "has_prototypes";
     504    }
     505  else
     506    {
     507      m_HASPROTOTYPES = "has_no_prototypes";
     508    }
     509
    501510  //  cout << m_TITLE << " " << m_CONSTITUENT << endl;
    502511  CmtMessage::info (m_TITLE + " " + m_CONSTITUENT);
    503512
     513  /*
    504514  lib  = "$(";
    505515  lib += m_CONSTITUENT;
    506516  lib += "lib)";
    507 
     517  */
    508518  //
    509519  // Prepare the include paths
     
    639649      if (is_library)
    640650        {
    641           jar_header_fragment.copy (m_output_file, constituent.variables, 3,
     651          jar_header_fragment.copy (m_output_file, constituent.variables, 5,
    642652                                    &m_CONSTITUENT,
    643653                                    &m_CONSTITUENTSUFFIX,
    644                                     &m_OBJS);
     654                                    &m_OBJS,
     655                                    &m_PROTOTARGET,
     656                                    &m_HASPROTOTYPES);
    645657        }
    646658      else
    647659        {
    648           java_header_fragment.copy (m_output_file, constituent.variables, 3,
     660          java_header_fragment.copy (m_output_file, constituent.variables, 5,
    649661                                     &m_CONSTITUENT,
    650662                                     &m_CONSTITUENTSUFFIX,
    651                                      &m_OBJS);
     663                                     &m_OBJS,
     664                                     &m_PROTOTARGET,
     665                                     &m_HASPROTOTYPES);
    652666        }
    653667    }
     
    656670      if (is_library)
    657671        {
    658           library_header_fragment.copy (m_output_file, constituent.variables, 3,
     672          library_header_fragment.copy (m_output_file, constituent.variables, 5,
    659673                                        &m_CONSTITUENT,
    660674                                        &m_CONSTITUENTSUFFIX,
    661                                         &m_PROTOTARGET);
     675                                        &m_OBJS,
     676                                        &m_PROTOTARGET,
     677                                        &m_HASPROTOTYPES);
    662678        }
    663679      else
    664680        {
    665           application_header_fragment.copy (m_output_file, constituent.variables, 3,
    666                                             &m_CONSTITUENT,
    667                                             &m_CONSTITUENTSUFFIX,
    668                                             &m_PROTOTARGET);
     681          application_header_fragment.copy (m_output_file, constituent.variables, 5,
     682                                            &m_CONSTITUENT,
     683                                            &m_CONSTITUENTSUFFIX,
     684                                            &m_OBJS,
     685                                            &m_PROTOTARGET,
     686                                            &m_HASPROTOTYPES);
    669687        }
    670688    }
     
    806824      if (need_dependencies)
    807825        {
    808       dependencies_fragment.copy (m_output_file,
    809                                   constituent.variables, 3,
    810                                   &m_CONSTITUENT,
    811                                   &m_CONSTITUENTSUFFIX,
    812                                   &m_LINE);
     826          dependencies_fragment.copy (m_output_file,
     827                                      constituent.variables, 3,
     828                                      &m_CONSTITUENT,
     829                                      &m_CONSTITUENTSUFFIX,
     830                                      &m_LINE);
    813831        }
    814832    }
     
    26012619  constituent_fragment.set ("constituent");
    26022620  constituent_lock_fragment.set ("constituent_lock");
     2621  constituent_app_lib_fragment.set ("constituent_app_lib");
    26032622  check_application_header_fragment.set ("check_application_header");
    26042623}
     
    26122631  constituent_fragment.reset ();
    26132632  constituent_lock_fragment.reset ();
     2633  constituent_app_lib_fragment.reset ();
    26142634  check_application_header_fragment.reset ();
    26152635}
     
    27382758            {
    27392759            case Application:
    2740               m_HASDEPENDENCIES = "has_dependencies";
    2741               break;
    27422760            case Library:
    27432761              m_HASDEPENDENCIES = "has_dependencies";
     2762              m_HASPROTOTYPES = constituent.need_prototypes ? "has_prototypes" : "has_no_prototypes" ;
    27442763              break;
    27452764            case Document:
     
    27582777                                              &m_HASDEPENDENCIES,
    27592778                                              &m_HASTARGETTAG);
     2779            }
     2780          else if (constituent.type == Application ||
     2781                   constituent.type == Library)
     2782            {
     2783              constituent_app_lib_fragment.copy (m_output_file, constituent.variables,
     2784                                                 7,
     2785                                                 &m_PACKAGE,
     2786                                                 &m_CONSTITUENT,
     2787                                                 &m_CONSTITUENTSUFFIX,
     2788                                                 &m_LINE,
     2789                                                 &m_HASDEPENDENCIES,
     2790                                                 &m_HASTARGETTAG,
     2791                                                 &m_HASPROTOTYPES);
    27602792            }
    27612793          else
  • CMT/HEAD/source/cmt_generators.h

    r588 r628  
    220220  FragmentHandle constituent_fragment;
    221221  FragmentHandle constituent_lock_fragment;
     222  FragmentHandle constituent_app_lib_fragment;
    222223  FragmentHandle check_application_header_fragment;
    223224};
  • CMT/HEAD/source/cmt_parser.cxx

    r621 r628  
    96209620        SyntaxParser::parse_requirements_line (temp, current_use);
    96219621      }
     9622
     9623    for (int i = 0; i < constituents.size (); i++)
     9624      {
     9625        const Constituent& constituent = constituents[i];
     9626        if (constituent.type == Document) continue;
     9627        const cmt_string macro_name = constituent.name + "compile_dependencies";
     9628        if (!Symbol::is_selected (macro_name))
     9629          {
     9630            temp = "macro_append ";
     9631            temp += macro_name;
     9632            temp += " \"";
     9633
     9634            const Symbol* deps_macro = Symbol::find (constituent.name + "_dependencies");
     9635            if (deps_macro != 0)
     9636              {
     9637                const cmt_string deps_value (deps_macro->resolve_macro_value ());
     9638                CmtSystem::cmt_string_vector words;
     9639                CmtSystem::split (deps_value, " \t", words);
     9640                for (int i = 0; i < words.size (); i++)
     9641                  {
     9642                    const cmt_string& word = words[i];
     9643                    const Constituent* dep = Constituent::find (word);
     9644                    if (dep == 0)
     9645                      {
     9646                        if (CmtMessage::active (Verbose))
     9647                          CmtMessage::warning
     9648                            (CmtError::get_error_name (CmtError::configuration_error)
     9649                             + ": " + word + ": non-constituent name in macro "
     9650                             + constituent.name + "_dependencies value");
     9651                        continue;
     9652                      }
     9653                    switch (dep->type)
     9654                      {
     9655                      case Application:
     9656                      case Library:
     9657                        if (dep->need_prototypes)
     9658                          temp += " " + word + "prototype";
     9659                        break;
     9660                      case Document:
     9661                        temp += " " + word;
     9662                        break;
     9663                      }
     9664                  }
     9665              }
     9666
     9667            temp += "\"";
     9668           
     9669            SyntaxParser::parse_requirements_line (temp, current_use);
     9670          }
     9671        if (constituent.need_prototypes)
     9672          {
     9673            const cmt_string macro_name = constituent.name + "prototype_dependencies";
     9674            if (!Symbol::is_selected (macro_name))
     9675              {
     9676                temp = "macro_append ";
     9677                temp += macro_name;
     9678                temp += " \" $(";
     9679                temp += constituent.name + "compile_dependencies)\"";
     9680           
     9681                SyntaxParser::parse_requirements_line (temp, current_use);
     9682              }
     9683          }
     9684      }
    96229685  }
    96239686
Note: See TracChangeset for help on using the changeset viewer.