Changeset 78
- Timestamp:
- Aug 19, 2005, 5:04:48 PM (19 years ago)
- Location:
- CMT/HEAD
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
CMT/HEAD/ChangeLog
r50 r78 1 2005-08-19 Christian Arnault <arnault@lal.in2p3.fr> 274 2 3 * source/cmt_use.cxx (fill_includes_macro): skip include_dirs entries with empty name 4 5 * source/cmt_project.cxx (show_all): Use the top project when current is not defined 6 (start_visit): idem 7 (class VisitorForFillCMTPATH): Initialize CMTPATH to empty when filling in CMTPATH for all projects 8 9 * source/cmt_cvs.cxx (class CvsImplementation): Add the get_module function to compute the CVS module 10 from the requested package/offset 11 (class CvsImplementation): Add a check_structure to verify various structures before doing the checkout 12 (class CvsImplementation): Ask for the checkout when the directory structure is in place but 13 when the CMT structure is NOT in place. Useful for mounting disks before the checkout. 14 15 * source/cmt_parser.cxx (class StandardMacroBuilder): Apply the post-processing of include_dirs statements. 16 (get_strategy): Get the top project to compute a strategy when the current project is not defined 17 in order to avoid losing all strategies for standalone packages. 18 19 * source/cmt_include.h (class Include): Suppress print_all and print_filters obsolete functions 20 * source/cmt_include.cxx: Suppress print_all and print_filters obsolete functions 21 (parse): Add a post-processing step to expand include_dirs statements at set_standard_macros stage 22 23 * source/cmt_deps_builder.cxx (build_deps_text): Fix and Change the way source files are parsed 24 for computing dependencies. Fill a cmt_string at once and traverse the string without any additional 25 copy. 26 27 2005-07-21 Christian Arnault <arnault@lal.in2p3.fr> 274 28 29 * source/cmt_symbol.cxx (build): Clean up unneeded path separators 30 31 2005-07-19 Christian Arnault <arnault@lal.in2p3.fr> 274 32 33 * source/cmt_symbol.cxx (build): Suppress old test in CommandPathRemoveRegexp 34 1 35 2005-05-09 Christian Arnault <arnault@lal.in2p3.fr> 273 2 36 -
CMT/HEAD/mgr/VisualC.nmake
r44 r78 1 1 CMT_tag=$(tag) 2 2 CMTVERSION=HEAD 3 CMT_project=macro4 3 cmt_hardware_query_command=uname -m 5 4 cmt_hardware=WIN32 -
CMT/HEAD/mgr/cmt_dependencies.make
r45 r78 1 cmt_cxx_dependencies = ../source/cmt.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_parser.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h2 cmt_awk_cxx_dependencies = ../source/cmt_awk.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_awk.h ../source/cmt_vector.h ../source/cmt_system.h3 cmt_branch_cxx_dependencies = ../source/cmt_branch.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h4 cmt_constituent_cxx_dependencies = ../source/cmt_constituent.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_branch.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h5 cmt_deps_builder_cxx_dependencies = ../source/cmt_deps_builder.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_parser.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_deps_builder.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_log.h6 cmt_fragment_cxx_dependencies = ../source/cmt_fragment.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_fragment.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_branch.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h7 cmt_generator_cxx_dependencies = ../source/cmt_generator.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_generators.h8 cmt_include_cxx_dependencies = ../source/cmt_include.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_include.h ../source/cmt_map.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h9 cmt_parser_cxx_dependencies = ../source/cmt_parser.cxx ../source/cmt_ std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_version.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_error.h ../source/cmt_cvs.h ../source/cmt_lock.h ../source/cmt_triggers.h ../source/cmt_model.h ../source/cmt_syntax.h ../source/cmt_install_area.h ../source/cmt_sequence.h ../source/cmt_log.h ../source/cmt_commands.h10 cmt_script_cxx_dependencies = ../source/cmt_script.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_script.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h11 cmt_string_cxx_dependencies = ../source/cmt_string.cxx ../source/cmt_st d.h ../source/cmt_string.h12 cmt_system_cxx_dependencies = ../source/cmt_system.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_error.h13 cmt_tag_cxx_dependencies = ../source/cmt_tag.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_log.h14 cmt_use_cxx_dependencies = ../source/cmt_use.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_map.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_error.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_syntax.h15 cmt_symbol_cxx_dependencies = ../source/cmt_symbol.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_map.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h16 cmt_error_cxx_dependencies = ../source/cmt_error.cxx ../source/cmt_ std.h ../source/cmt_string.h ../source/cmt_error.h ../source/cmt_vector.h17 cmt_pattern_cxx_dependencies = ../source/cmt_pattern.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_ parser.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_error.h ../source/cmt_syntax.h18 cmt_language_cxx_dependencies = ../source/cmt_language.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_fragment.h ../source/cmt_language.h ../source/cmt_branch.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h19 cmt_cvs_cxx_dependencies = ../source/cmt_cvs.cxx ../source/cmt_ std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_parser.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_cvs.h ../source/cmt_awk.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_project.h20 cmt_group_cxx_dependencies = ../source/cmt_group.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_group.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h21 cmt_database_cxx_dependencies = ../source/cmt_database.cxx ../source/cmt_vector.h ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h22 cmt_lock_cxx_dependencies = ../source/cmt_lock.cxx ../source/cmt_ std.h ../source/cmt_lock.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_error.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h23 cmt_triggers_cxx_dependencies = ../source/cmt_triggers.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_triggers.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_awk.h ../source/cmt_map.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_project.h ../source/cmt_syntax.h24 cmt_regexp_cxx_dependencies = ../source/cmt_regexp.cxx ../source/cmt_ std.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_vector.h ../source/cmt_system.h25 cmt_model_cxx_dependencies = ../source/cmt_model.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_model.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_fragment.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h26 cmt_project_cxx_dependencies = ../source/cmt_project.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_syntax.h ../source/cmt_error.h27 cmt_syntax_cxx_dependencies = ../source/cmt_syntax.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_map.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_syntax.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_error.h ../source/cmt_branch.h ../source/cmt_language.h ../source/cmt_cmtpath_pattern.h28 cmt_install_area_cxx_dependencies = ../source/cmt_install_area.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_parser.h ../source/cmt.h ../source/cmt_install_area.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_syntax.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_cmtpath_pattern.h29 cmt_cmtpath_pattern_cxx_dependencies = ../source/cmt_cmtpath_pattern.cxx ../source/cmt_ vector.h ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_syntax.h30 cmt_sequence_cxx_dependencies = ../source/cmt_sequence.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_awk.h ../source/cmt_sequence.h ../source/cmt_vector.h ../source/cmt_system.h31 cmt_generators_cxx_dependencies = ../source/cmt_generators.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_generators.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_log.h32 cmt_scope_section_cxx_dependencies = ../source/cmt_scope_section.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_scope_section.h33 cmt_log_cxx_dependencies = ../source/cmt_log.cxx ../source/cmt_ std.h ../source/cmt_string.h ../source/cmt_log.h ../source/cmt_vector.h ../source/cmt_parser.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h34 cmt_commands_cxx_dependencies = ../source/cmt_commands.cxx ../source/cmt_st d.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_map.h ../source/cmt_parser.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_commands.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h1 cmt_cxx_dependencies = ../source/cmt.cxx 2 cmt_awk_cxx_dependencies = ../source/cmt_awk.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h 3 cmt_branch_cxx_dependencies = ../source/cmt_branch.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h 4 cmt_constituent_cxx_dependencies = ../source/cmt_constituent.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_branch.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h 5 cmt_deps_builder_cxx_dependencies = ../source/cmt_deps_builder.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_log.h 6 cmt_fragment_cxx_dependencies = ../source/cmt_fragment.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h 7 cmt_generator_cxx_dependencies = ../source/cmt_generator.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_generators.h 8 cmt_include_cxx_dependencies = ../source/cmt_include.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h 9 cmt_parser_cxx_dependencies = ../source/cmt_parser.cxx ../source/cmt_version.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_error.h ../source/cmt_cvs.h ../source/cmt_lock.h ../source/cmt_triggers.h ../source/cmt_model.h ../source/cmt_syntax.h ../source/cmt_install_area.h ../source/cmt_sequence.h ../source/cmt_log.h ../source/cmt_commands.h 10 cmt_script_cxx_dependencies = ../source/cmt_script.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h 11 cmt_string_cxx_dependencies = ../source/cmt_string.cxx ../source/cmt_string.h 12 cmt_system_cxx_dependencies = ../source/cmt_system.cxx ../source/cmt_string.h ../source/cmt_error.h 13 cmt_tag_cxx_dependencies = ../source/cmt_tag.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_log.h 14 cmt_use_cxx_dependencies = ../source/cmt_use.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_error.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_syntax.h 15 cmt_symbol_cxx_dependencies = ../source/cmt_symbol.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h 16 cmt_error_cxx_dependencies = ../source/cmt_error.cxx ../source/cmt_vector.h 17 cmt_pattern_cxx_dependencies = ../source/cmt_pattern.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_error.h ../source/cmt_syntax.h 18 cmt_language_cxx_dependencies = ../source/cmt_language.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h 19 cmt_cvs_cxx_dependencies = ../source/cmt_cvs.cxx ../source/cmt_cvs.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_awk.h ../source/cmt_vector.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_project.h 20 cmt_group_cxx_dependencies = ../source/cmt_group.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h 21 cmt_database_cxx_dependencies = ../source/cmt_database.cxx ../source/cmt_vector.h 22 cmt_lock_cxx_dependencies = ../source/cmt_lock.cxx ../source/cmt_lock.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_error.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h 23 cmt_triggers_cxx_dependencies = ../source/cmt_triggers.cxx ../source/cmt_string.h ../source/cmt_triggers.h ../source/cmt_std.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_awk.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_project.h ../source/cmt_syntax.h 24 cmt_regexp_cxx_dependencies = ../source/cmt_regexp.cxx ../source/cmt_regexp.h ../source/cmt_vector.h ../source/cmt_string.h ../source/cmt_system.h 25 cmt_model_cxx_dependencies = ../source/cmt_model.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_fragment.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h 26 cmt_project_cxx_dependencies = ../source/cmt_project.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_syntax.h ../source/cmt_tag.h ../source/cmt_error.h 27 cmt_syntax_cxx_dependencies = ../source/cmt_syntax.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_error.h ../source/cmt_branch.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h 28 cmt_install_area_cxx_dependencies = ../source/cmt_install_area.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_install_area.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_syntax.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_cmtpath_pattern.h 29 cmt_cmtpath_pattern_cxx_dependencies = ../source/cmt_cmtpath_pattern.cxx ../source/cmt_cmtpath_pattern.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_syntax.h 30 cmt_sequence_cxx_dependencies = ../source/cmt_sequence.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h 31 cmt_generators_cxx_dependencies = ../source/cmt_generators.cxx ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_awk.h ../source/cmt_vector.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_symbol.h ../source/cmt_log.h 32 cmt_scope_section_cxx_dependencies = ../source/cmt_scope_section.cxx 33 cmt_log_cxx_dependencies = ../source/cmt_log.cxx ../source/cmt_log.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h 34 cmt_commands_cxx_dependencies = ../source/cmt_commands.cxx ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_std.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_map.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h -
CMT/HEAD/source/cmt_cvs.cxx
r45 r78 773 773 } 774 774 775 void get_module (const cmt_string& offset, 776 const cmt_string& product, 777 cmt_string& module) 778 { 779 module = ""; 780 781 if (offset != "") 782 { 783 module = offset; 784 module += "/"; // This is for CVS only thus we don't use the real separator. 785 while (module.find ("//") != cmt_string::npos) 786 { 787 module.replace_all ("//", "/"); 788 } 789 } 790 791 module += product; 792 } 793 775 794 bool get_version (const cmt_string& offset, 776 795 const cmt_string& product, 777 796 const cmt_string& version_request, 778 c mt_string& module,797 const cmt_string& module, 779 798 cmt_string& version, 780 799 bool& at_head) … … 787 806 at_head = false; 788 807 789 module = "";790 791 if (offset != "")792 {793 module = offset;794 module += "/"; // This is for CVS only thus we don't use the real separator.795 while (module.find ("//") != cmt_string::npos)796 {797 module.replace_all ("//", "/");798 }799 }800 801 module += product;802 803 808 /** 804 809 * Try to figure out what is the effective version tag available … … 1344 1349 } 1345 1350 1351 /** 1352 Find the most appropriate effective version directory corresponding to the 1353 specified version expression. 1354 The specified expression may contain wildcards (in the file manager sense). This 1355 FME is first converted into a RE then a directory search is performed. 1356 An empty string is returned if no match is found. 1357 */ 1346 1358 cmt_string find_matching_version (const cmt_string& expression) 1347 1359 { … … 1462 1474 CmtSystem::cd (here); 1463 1475 me = saved; 1476 } 1477 1478 /** 1479 Check whether a given directory structure matches an expected product structure 1480 given by the structure info obtained from the most recent request to the CVS pluggin 1481 */ 1482 bool check_structure (const cmt_string& dir) 1483 { 1484 bool result = false; 1485 1486 if (!CmtSystem::test_directory (dir)) 1487 { 1488 return (false); 1489 } 1490 1491 if (structure_info == "package") 1492 { 1493 // Check if it is a true CMT package. 1494 1495 cmt_string file_name; 1496 1497 file_name = dir; 1498 file_name += CmtSystem::file_separator (); 1499 file_name += "cmt"; 1500 file_name += CmtSystem::file_separator (); 1501 file_name += "requirements"; 1502 1503 if (CmtSystem::test_file (file_name)) 1504 { 1505 result = true; 1506 } 1507 else 1508 { 1509 file_name = dir; 1510 file_name += CmtSystem::file_separator (); 1511 file_name += "mgr"; 1512 file_name += CmtSystem::file_separator (); 1513 file_name += "requirements"; 1514 1515 if (CmtSystem::test_file (file_name)) 1516 { 1517 result = true; 1518 } 1519 } 1520 } 1521 else if (structure_info == "project") 1522 { 1523 cmt_string file_name; 1524 1525 file_name = dir; 1526 file_name += CmtSystem::file_separator (); 1527 file_name += "cmt"; 1528 file_name += CmtSystem::file_separator (); 1529 file_name += "project.cmt"; 1530 1531 if (CmtSystem::test_file (file_name)) 1532 { 1533 result = true; 1534 } 1535 } 1536 1537 return (result); 1464 1538 } 1465 1539 … … 1527 1601 cmt_string effective_version = find_matching_version (dir); 1528 1602 1603 cmt_string module; 1604 get_module (full_offset, product, module); 1605 1606 cmt_string cvs_tag = (tag != "") ? tag : version; 1607 bool at_head = false; 1608 1529 1609 if (effective_version != "") 1530 1610 { 1531 1611 version = effective_version; 1532 1533 dir = build_version_directory (offset, product, version);1534 1535 cout << "# ================= " << structure_info << " " << product1536 << " version " << version << echo_ppath1537 << " already installed in " << dir << endl;1538 1539 recursive = false;1540 1612 } 1541 1613 else 1542 1614 { 1543 bool at_head = false;1544 cmt_string module;1545 cmt_string cvs_tag = (tag != "") ? tag : version;1546 1547 1615 // 1548 1616 // get_version attempts to find the most appropriate version … … 1561 1629 } 1562 1630 1563 if (!get_version (full_offset, product, cvs_tag, 1564 module,cvs_tag, at_head))1631 if (!get_version (full_offset, product, cvs_tag, module, 1632 cvs_tag, at_head)) 1565 1633 { 1566 1634 return; … … 1591 1659 dir = build_version_directory (offset, product, version); 1592 1660 } 1593 1594 if (CmtSystem::test_directory (dir)) 1595 { 1596 cout << "# ================= " << structure_info << " " << product 1597 << " version " << version << echo_ppath 1598 << " already installed." << endl; 1599 1600 recursive = false; 1601 } 1602 else 1603 { 1604 // 1605 // Now we can say that we have to perform the real checkout. 1606 // 1607 1608 if (!really_checkout (offset, product, version, cvs_tag, module, dir, at_head)) 1609 { 1610 cout << "# bad return from really_checkout_product" << endl; 1611 return; 1612 } 1613 } 1614 } 1615 1661 } 1662 1663 1664 if (check_structure (dir)) 1665 { 1666 cout << "# ================= " << structure_info << " " << product 1667 << " version " << version << echo_ppath 1668 << " already installed." << endl; 1669 1670 recursive = false; 1671 } 1672 else 1673 { 1674 // 1675 // Now we can say that we have to perform the real checkout. 1676 // 1677 1678 if (!really_checkout (offset, product, version, cvs_tag, module, dir, at_head)) 1679 { 1680 cout << "# bad return from really_checkout_product" << endl; 1681 return; 1682 } 1683 } 1684 1616 1685 // 1617 1686 // Now reach the newly checked out product. … … 1751 1820 cmt_string tag; 1752 1821 1822 { 1823 cmt_string m; 1824 m = m_cvs_offset; 1825 m += module; 1826 1827 get_cvs_infos_with_offset (m); 1828 1829 if (error_info != "") 1830 { 1831 cout << error_info << endl; 1832 return; 1833 } 1834 } 1835 1753 1836 if (version_tag == "") 1754 1837 { 1755 1838 Cut cut (0); 1756 1839 1757 cmt_string m;1758 m = m_cvs_offset;1759 m += module;1760 1761 get_cvs_infos_with_offset (m);1762 1763 if (error_info != "")1764 {1765 cout << error_info << endl;1766 return;1767 }1768 1769 1840 if (tags_top_info != "") tag = tags_top_info; 1770 1841 else tag = tags_info; -
CMT/HEAD/source/cmt_deps_builder.cxx
r11 r78 48 48 CmtSystem::cmt_string_vector& deps) 49 49 { 50 Log; 51 50 52 bool found = false; 51 53 52 54 for (int i = 0; i < all_deps.size (); i++) 53 55 { 54 if (all_deps[i] == header_file) 56 const cmt_string& n = all_deps[i]; 57 58 log << "CMT> check old header file name=" << n << " against " << header_file << log_endl; 59 60 if (n == header_file) 55 61 { 56 62 found = true; … … 61 67 if (!found) 62 68 { 69 log << "CMT> parsing new header file name=" << header_file << log_endl; 70 63 71 all_deps.push_back (header_file); 64 72 … … 115 123 { 116 124 ptr++; 125 126 // skip spaces 117 127 while ((*ptr == ' ') || (*ptr == '\t')) ptr++; 128 118 129 if (!strncmp (ptr, "include", 7)) 119 130 { 131 // We have a #include statement 132 120 133 ptr += 7; 121 134 … … 133 146 else 134 147 { 148 // empty #include statement?? 135 149 state = in_line; 136 150 ptr += strlen (ptr); … … 140 154 else 141 155 { 156 // ignore other pre-processor statements 157 142 158 state = in_line; 143 159 ptr += strlen (ptr); … … 147 163 else if (!strncmp (ptr, " include", 13)) 148 164 { 165 // fortran include statement 166 149 167 ptr += 13; 150 168 151 169 while ((*ptr == ' ') || (*ptr == '\t')) ptr++; 170 152 171 if (*ptr == '\'') 153 172 { … … 163 182 else if (!strncmp (ptr, "\tinclude", 8)) 164 183 { 184 // fortran include statement 185 165 186 ptr += 8; 166 187 167 188 while ((*ptr == ' ') || (*ptr == '\t')) ptr++; 189 168 190 if (*ptr == '\'') 169 191 { … … 182 204 return (ptr); 183 205 } 206 207 // At this point we do have to include a header file. 184 208 185 209 char* end; … … 212 236 } 213 237 214 //-------------------------------------------------- 238 /** 239 Any line with no header inclusion 240 step through comments and strings 241 */ 215 242 static char* in_line_action (char* ptr, state_def& state) 216 243 { 217 char* pattern = &ptr[strlen (ptr)]; 244 char* pattern = ptr + strlen (ptr); 245 int length = 0; 246 247 /* 248 search for the first occurrence of 249 {single-quote double-quote open-comment open-line-comment} 250 251 Must exclude escaped quotes \' and \" 252 */ 218 253 219 254 char* pos = strchr (ptr, '"'); 220 if (pos != 0) 221 { 222 if (pos < pattern) 223 { 224 state = in_string; 225 pattern = pos; 226 } 255 if ((pos != 0) && (pos < pattern) && (pos > ptr) && (*(pos-1) != '\\')) 256 { 257 state = in_string; 258 pattern = pos; 259 length = 1; 227 260 } 228 261 229 262 pos = strchr (ptr, '\''); 230 if (pos != 0) 231 { 232 if (pos < pattern) 233 { 234 state = in_char; 235 pattern = pos; 236 } 263 if ((pos != 0) && (pos < pattern) && (pos > ptr) && (*(pos-1) != '\\')) 264 { 265 state = in_char; 266 pattern = pos; 267 length = 1; 237 268 } 238 269 239 270 pos = strstr (ptr, "/*"); //*/ 240 if (pos != 0) 241 { 242 if (pos < pattern) 243 { 244 state = in_comment; 245 pattern = pos + 1; 246 } 271 if ((pos != 0) && (pos < pattern)) 272 { 273 state = in_comment; 274 pattern = pos; 275 length = 2; 247 276 } 248 277 249 278 pos = strstr (ptr, "//"); 250 if (pos != 0) 251 { 252 if (pos < pattern) 253 { 254 state = in_line_comment; 255 pattern = pos + 1; 256 } 257 } 258 259 if (state != in_line) 260 { 261 ptr = pattern + 1; 279 if ((pos != 0) && (pos < pattern)) 280 { 281 state = in_line_comment; 282 pattern = pos; 283 length = 2; 284 } 285 286 ptr = pattern + length; 287 288 return (ptr); 289 } 290 291 //-------------------------------------------------- 292 static char* in_string_action (char* ptr, state_def& state) 293 { 294 // we exclusively look for a double quote 295 296 char* pos = strchr (ptr, '"'); 297 if (pos == 0) 298 { 299 // This string is not finished till the end of the line.. 300 // we expect it to continue to the next line... 301 // thus we leave the state as it is 302 ptr += strlen (ptr); 262 303 } 263 304 else 264 305 { 306 if ((pos > ptr) && (*(pos - 1) == '\\')) 307 { 308 ptr = pos + 1; 309 } 310 else 311 { 312 ptr = pos + 1; 313 state = in_line; 314 } 315 } 316 317 return (ptr); 318 } 319 320 //-------------------------------------------------- 321 static char* in_char_action (char* ptr, state_def& state) 322 { 323 // we exclusively look for a single quote 324 325 char* pos = strchr (ptr, '\''); 326 if (pos == 0) 327 { 328 // This string is not finished till the end of the line.. 329 // we expect it continues to the nex line... 330 // thus we leave the state as it is 265 331 ptr += strlen (ptr); 266 332 } 333 else 334 { 335 if ((pos > ptr) && (*(pos - 1) == '\\')) 336 { 337 ptr = pos + 1; 338 } 339 else 340 { 341 ptr = pos + 1; 342 state = in_line; 343 } 344 } 267 345 268 346 return (ptr); … … 270 348 271 349 //-------------------------------------------------- 272 static char* in_string_action (char* ptr, state_def& state) 350 static char* in_comment_action (char* ptr, state_def& state) 351 { 352 char* pattern = ptr + strlen (ptr); 353 int length = 0; 354 355 /* 356 Even if we are inside a comment, we must detect strings since comment markers may 357 be written inside them. 358 */ 359 360 char* pos = strchr (ptr, '"'); 361 if ((pos != 0) && (pos < pattern) && (pos > ptr) && (*(pos-1) != '\\')) 362 { 363 state = in_string_comment; 364 pattern = pos; 365 length = 1; 366 } 367 368 pos = strchr (ptr, '\''); 369 if ((pos != 0) && (pos < pattern) && (pos > ptr) && (*(pos-1) != '\\')) 370 { 371 state = in_char_comment; 372 pattern = pos; 373 length = 1; 374 } 375 376 pos = strstr (ptr, "*/"); 377 if ((pos != 0) && (pos < pattern)) 378 { 379 state = in_line; 380 pattern = pos; 381 length = 2; 382 } 383 384 ptr = pattern + length; 385 386 return (ptr); 387 } 388 389 //-------------------------------------------------- 390 static char* in_string_comment_action (char* ptr, state_def& state) 273 391 { 274 392 char* pos = strchr (ptr, '"'); … … 281 399 else 282 400 { 283 pos--; 284 if (*pos == '\\') 285 { 286 ptr = pos + 2; 401 if ((pos > ptr) && (*(pos - 1) == '\\')) 402 { 403 ptr = pos + 1; 287 404 } 288 405 else 289 406 { 290 ptr = pos + 2;291 state = in_ line;407 ptr = pos + 1; 408 state = in_comment; 292 409 } 293 410 } … … 297 414 298 415 //-------------------------------------------------- 299 static char* in_char_ action (char* ptr, state_def& state)416 static char* in_char_comment_action (char* ptr, state_def& state) 300 417 { 301 418 char* pos = strchr (ptr, '\''); … … 308 425 else 309 426 { 427 if ((pos > ptr) && (*(pos - 1) == '\\')) 428 { 429 ptr = pos + 1; 430 } 431 else 432 { 433 ptr = pos + 1; 434 state = in_comment; 435 } 310 436 pos--; 311 if (*pos == '\\') 312 { 313 ptr = pos + 2; 437 } 438 439 return (ptr); 440 } 441 442 //-------------------------------------------------- 443 static char* in_line_comment_action (char* ptr, state_def& state) 444 { 445 ptr += strlen (ptr); 446 state = in_line; 447 448 return (ptr); 449 } 450 451 //-------------------------------------------------- 452 static void build_deps_text (char* text, 453 const cmt_string& dir_name, 454 int current_path_index, 455 const CmtSystem::cmt_string_vector& include_paths, 456 const CmtSystem::cmt_string_vector& substitutions, 457 CmtSystem::cmt_string_vector& all_deps, 458 CmtSystem::cmt_string_vector& deps) 459 { 460 Log; 461 462 int pos; 463 int max_pos; 464 int line_number = 1; 465 466 log << "CMT> build_deps_text dir_name=" 467 << dir_name << log_endl; 468 469 pos = 0; 470 max_pos = strlen (text); 471 472 char* current = text; 473 char* last = text + max_pos; 474 475 state_def state = at_start; 476 477 while (current < last) 478 { 479 char marker; 480 char* marker_pos = 0; 481 482 char* crnl = strstr (current, "\r\n"); 483 char* nl = strchr (current, '\n'); 484 485 char* first = nl; 486 int length = 1; 487 488 char* ptr = 0; 489 490 if (crnl != 0) 491 { 492 // cr+nl has been found 493 494 if (nl == 0) 495 { 496 // cr but no nl ?? 497 first = crnl; 498 length = 2; 499 } 500 else 501 { 502 // both cr+nl and nl found 503 first = (nl < crnl) ? nl : crnl; 504 length = (nl < crnl) ? 1 : 2; 505 } 314 506 } 315 507 else 316 { 317 ptr = pos + 2; 318 state = in_line; 319 } 320 } 321 322 return (ptr); 323 } 324 325 //-------------------------------------------------- 326 static char* in_comment_action (char* ptr, state_def& state) 327 { 328 char* pattern = &ptr[strlen (ptr)]; 329 char* pos = strchr (ptr, '"'); 330 if (pos != 0) 331 { 332 if (pos < pattern) 333 { 334 state = in_string_comment; 335 pattern = pos; 336 } 337 } 338 pos = strchr (ptr, '\''); 339 if (pos != 0) 340 { 341 if (pos < pattern) 342 { 343 state = in_char_comment; 344 pattern = pos; 345 } 346 } 347 pos = strstr (ptr, "*/"); 348 if (pos != 0) 349 { 350 if (pos < pattern) 351 { 352 state = in_line; 353 pattern = pos + 1; 354 } 355 } 356 357 if (state == in_comment) 358 { 359 ptr += strlen (ptr); 360 } 361 else 362 { 363 ptr = pattern + 1; 364 } 365 366 return (ptr); 367 } 368 369 //-------------------------------------------------- 370 static char* in_string_comment_action (char* ptr, state_def& state) 371 { 372 char* pos = strchr (ptr, '"'); 373 if (pos == 0) 374 { 375 // This string is not finished till the end of the line.. 376 // we expect it continues to the nex line... 377 ptr += strlen (ptr); 378 } 379 else 380 { 381 pos--; 382 if (*pos == '\\') 383 { 384 ptr = pos + 2; 508 { 509 // no cr+nl but nl alone found 510 first = nl; 511 length = 1; 512 } 513 514 ptr = current; 515 516 if (first == 0) 517 { 518 // neither nl nor cr+nl found => this is the last line 519 520 marker_pos = 0; 385 521 } 386 522 else 387 523 { 388 ptr = pos + 2; 389 state = in_comment; 390 } 391 } 392 393 return (ptr); 394 } 395 396 //-------------------------------------------------- 397 static char* in_char_comment_action (char* ptr, state_def& state) 398 { 399 char* pos = strchr (ptr, '\''); 400 if (pos == 0) 401 { 402 // This string is not finished till the end of the line.. 403 // we expect it continues to the nex line... 404 ptr += strlen (ptr); 405 } 406 else 407 { 408 pos--; 409 if (*pos == '\\') 410 { 411 ptr = pos + 2; 412 } 524 marker_pos = first; 525 marker = *marker_pos; 526 *marker_pos = 0; 527 } 528 529 log << "CMT> build_deps_text2 line=[" 530 << current << "]" << log_endl; 531 532 while (strlen (ptr) > 0) 533 { 534 switch (state) 535 { 536 case at_start: 537 ptr = at_start_action (ptr, 538 state, 539 dir_name, 540 current_path_index, 541 include_paths, 542 substitutions, 543 all_deps, 544 deps); 545 break; 546 case in_line: 547 ptr = in_line_action (ptr, state); 548 break; 549 case in_string: 550 ptr = in_string_action (ptr, state); 551 break; 552 case in_char: 553 ptr = in_char_action (ptr, state); 554 break; 555 case in_comment: 556 ptr = in_comment_action (ptr, state); 557 break; 558 case in_string_comment: 559 ptr = in_string_comment_action (ptr, state); 560 break; 561 case in_char_comment: 562 ptr = in_char_comment_action (ptr, state); 563 break; 564 case in_line_comment: 565 ptr = in_line_action (ptr, state); 566 break; 567 } 568 } 569 570 if (state == in_line) state = at_start; 571 line_number++; 572 573 if (marker_pos != 0) 574 { 575 *marker_pos = marker; 576 current = marker_pos + length; 577 } 413 578 else 414 { 415 ptr = pos + 2; 416 state = in_comment; 417 } 418 } 419 420 return (ptr); 421 } 422 423 //-------------------------------------------------- 424 static char* in_line_comment_action (char* ptr, state_def& state) 425 { 426 ptr += strlen (ptr); 427 428 return (ptr); 429 } 430 431 //-------------------------------------------------- 432 static void build_deps_stream (istream& input, 433 const cmt_string& dir_name, 434 int current_path_index, 435 const CmtSystem::cmt_string_vector& include_paths, 436 const CmtSystem::cmt_string_vector& substitutions, 437 CmtSystem::cmt_string_vector& all_deps, 438 CmtSystem::cmt_string_vector& deps) 439 { 440 Log; 441 442 if (input) 443 { 444 log << "CMT> build_deps_stream dir_name=" 445 << dir_name << log_endl; 446 447 while (!input.eof ()) 448 { 449 char line[16384]; 450 451 input.getline (line, sizeof (line)); 452 char* ptr = &line[0]; 453 state_def state = at_start; 454 455 log << "CMT> build_deps_stream2 line=[" 456 << line << "]" << log_endl; 457 458 while (strlen (ptr) > 0) 459 { 460 switch (state) 461 { 462 case at_start: 463 ptr = at_start_action (ptr, 464 state, 465 dir_name, 466 current_path_index, 467 include_paths, 468 substitutions, 469 all_deps, 470 deps); 471 break; 472 case in_line: 473 ptr = in_line_action (ptr, state); 474 break; 475 case in_string: 476 ptr = in_string_action (ptr, state); 477 break; 478 case in_char: 479 ptr = in_char_action (ptr, state); 480 break; 481 case in_comment: 482 ptr = in_comment_action (ptr, state); 483 break; 484 case in_string_comment: 485 ptr = in_string_comment_action (ptr, state); 486 break; 487 case in_char_comment: 488 ptr = in_char_comment_action (ptr, state); 489 break; 490 case in_line_comment: 491 ptr = in_line_action (ptr, state); 492 break; 493 } 494 } 495 } 579 { 580 break; 581 } 496 582 } 497 583 } … … 519 605 if (CmtSystem::test_file (name)) 520 606 { 521 ifstream input (name.c_str ()); 522 if (input) 523 { 524 CmtSystem::dirname (name, new_dir); 525 build_deps_stream (input, new_dir, current_path_index, 526 include_paths, substitutions, 527 all_deps, deps); 528 return (0); 529 } 607 cmt_string text; 608 609 text.read (name); 610 611 char* ptr = &text[0]; 612 CmtSystem::dirname (name, new_dir); 613 614 build_deps_text (ptr, new_dir, current_path_index, 615 include_paths, substitutions, 616 all_deps, deps); 617 return (0); 530 618 } 531 619 … … 542 630 if (CmtSystem::test_file (full_name)) 543 631 { 544 ifstream input (full_name.c_str ()); 545 if (input) 546 { 547 CmtSystem::dirname (full_name, new_dir); 548 build_deps_stream (input, new_dir, current_path_index, 549 include_paths, substitutions, 550 all_deps, deps); 551 return (1); 552 } 632 cmt_string text; 633 634 text.read (full_name); 635 636 char* ptr = &text[0]; 637 CmtSystem::dirname (full_name, new_dir); 638 639 build_deps_text (ptr, new_dir, current_path_index, 640 include_paths, substitutions, 641 all_deps, deps); 642 return (1); 553 643 } 554 644 … … 569 659 if (CmtSystem::test_file (full_name)) 570 660 { 571 ifstream in (full_name.c_str ()); 572 if (in) 573 { 574 CmtSystem::dirname (full_name, new_dir); 575 576 log << "CMT> build_deps3 new_dir=" << new_dir << log_endl; 577 578 build_deps_stream (in, 579 new_dir, 580 path_index + 2, 581 include_paths, 582 substitutions, 583 all_deps, 584 deps); 585 586 return (path_index + 2); 587 } 661 cmt_string text; 662 663 text.read (full_name); 664 665 char* ptr = &text[0]; 666 CmtSystem::dirname (full_name, new_dir); 667 668 log << "CMT> build_deps3 new_dir=" << new_dir << log_endl; 669 670 build_deps_text (ptr, 671 new_dir, 672 path_index + 2, 673 include_paths, 674 substitutions, 675 all_deps, 676 deps); 677 678 return (path_index + 2); 588 679 } 589 680 } … … 696 787 CmtSystem::cmt_string_vector& DepsBuilder::run (const cmt_string& file_name) 697 788 { 789 Log; 790 791 log << "Starting deps builder on " << file_name << log_endl; 792 793 698 794 m_deps.clear (); 699 795 m_all_deps.clear (); -
CMT/HEAD/source/cmt_include.cxx
r11 r78 12 12 #include "cmt_include.h" 13 13 #include "cmt_use.h" 14 #include "cmt_symbol.h" 14 15 15 16 /*----------------------------------------------------------*/ … … 19 20 /*----------------------------------------------------------*/ 20 21 21 /*----------------------------------------------------------*/ 22 /** 23 Executed to parse an include_dirs statement 24 It postpones the macro expansion to the post-processing stage 25 (during set_standard_macros) 26 */ 22 27 void Include::action (const CmtSystem::cmt_string_vector& words, Use* use) 23 28 { … … 28 33 for (int i = 1; i < words.size (); i++) 29 34 { 35 /* 36 statement words may contain macro references at that level 37 they are stored as they are. 38 They will be expanded later on using the parse_all method 39 40 (called from set_standard_macros) 41 42 */ 30 43 name = words[i]; 31 44 if (name == "") return; 45 32 46 add (name, use); 33 47 } 34 48 } 35 49 36 /*----------------------------------------------------------*/ 50 /** 51 Search a database entry for this include_dirs matching the 52 duet {name, use} 53 */ 37 54 Include* Include::find (const cmt_string& name, Use* use) 38 55 { … … 60 77 } 61 78 62 /*----------------------------------------------------------*/ 79 /** 80 Add a unique entry for this include_dirs specification given by the duet {name, use} 81 */ 63 82 Include* Include::add (const cmt_string& name, Use* use) 64 83 { … … 83 102 84 103 /*----------------------------------------------------------*/ 85 void Include:: print_all (PrintMode mode)104 void Include::clear_all () 86 105 { 87 int number; 88 int include_number; 89 Use::UsePtrVector& uses = Use::get_ordered_uses (); 90 91 if (uses.size () > 0) 92 { 93 for (number = 0; number < uses.size (); number++) 94 { 95 const Use* use = uses[number]; 96 97 Package* p = use->get_package (); 98 if (p->is_cmt ()) continue; 99 100 cout << "-I${" << use->prefix << "ROOT}/src "; 101 102 for (include_number = 0; 103 include_number < use->includes.size (); 104 include_number++) 105 { 106 const Include& incl = use->includes[include_number]; 107 108 cout << "-I" << incl.name << " "; 109 } 110 } 111 } 112 113 for (include_number = 0; 106 for (int include_number = 0; 114 107 include_number < (Use::current()).includes.size (); 115 108 include_number++) 116 109 { 117 constInclude& incl = (Use::current()).includes[include_number];110 Include& incl = (Use::current()).includes[include_number]; 118 111 119 cout << "-I" << incl.name << " "; 112 incl.clear (); 113 } 114 } 115 116 /** 117 Post processing of the include_dirs statements. 118 This is meant to expand all macro references used in the 119 include_dirs statements 120 121 Note that this may create new Include objects. Thus the loop is 122 only performed onto the existing objects before the post-processing step 123 */ 124 void Include::parse_all () 125 { 126 int size = (Use::current()).includes.size (); 127 128 for (int include_number = 0; 129 include_number < size; 130 include_number++) 131 { 132 Include& incl = (Use::current()).includes[include_number]; 133 134 incl.parse (); 120 135 } 121 136 } 122 137 123 138 /*----------------------------------------------------------*/ 124 void Include:: print_filters (PrintMode mode)139 void Include::clear () 125 140 { 126 int number; 127 int include_number; 128 Use::UsePtrVector& uses = Use::get_ordered_uses (); 129 130 if (uses.size () > 0) 131 { 132 for (number = 0; number < uses.size (); number++) 133 { 134 Use* use = uses[number]; 135 136 cout << "s#" << 137 ".*" << SLASH << 138 use->get_package_name () << SLASH << 139 use->version << SLASH << 140 "#$(" << use->prefix << "ROOT)" << SLASH << 141 "#g" << endl; 142 143 for (include_number = 0; 144 include_number < use->includes.size (); 145 include_number++) 146 { 147 Include& incl = use->includes[include_number]; 148 149 const cmt_string& d = Cmt::filter_dir (incl.name); 150 151 if (d.size () > 0) 152 { 153 cout << "s#" << d << "#" << 154 incl.name << "#g" << endl; 155 } 156 } 157 } 158 } 159 160 { 161 const Use* use = &(Use::current()); 162 163 cout << "s#" << ".*" << SLASH << 164 use->get_package_name () << SLASH << 165 use->version << SLASH << 166 "#$(" << use->prefix << "ROOT)" << SLASH << 167 "#g" << endl; 168 169 for (include_number = 0; 170 include_number < use->includes.size (); 171 include_number++) 172 { 173 const Include& incl = use->includes[include_number]; 174 175 const cmt_string& d = Cmt::filter_dir (incl.name); 176 177 if (d.size () > 0) 178 { 179 cout << "s#" << d << "#" << 180 incl.name << "#g" << endl; 181 } 182 } 183 } 141 use = 0; 184 142 } 185 143 186 /*----------------------------------------------------------*/ 187 void Include::clear_all () 144 /** 145 Post processing of an include_dirs statement. 146 147 The name field is expanded for its macro references 148 and split into individual words. 149 Each word in turn generates a new Include object 150 The old Include object is inactivated by setting an empty name 151 */ 152 void Include::parse () 188 153 { 154 Symbol::expand (name); 155 156 CmtSystem::cmt_string_vector ws; 157 158 ws.clear (); 159 160 CmtSystem::split (name, " ", ws); 161 162 name = ""; 163 use = 0; 164 165 for (int j = 0; j < ws.size (); j++) 166 { 167 const cmt_string& w = ws[j]; 168 169 add (w, use); 170 } 189 171 } 190 172 … … 192 174 Include::Include () 193 175 { 194 use = 0;176 clear (); 195 177 } 196 178 -
CMT/HEAD/source/cmt_include.h
r11 r78 19 19 static Include* find (const cmt_string& name, Use* use); 20 20 static Include* add (const cmt_string& name, Use* use); 21 static void print_all (PrintMode mode); 22 static void print_filters (PrintMode mode); 21 static void parse_all (); 23 22 static void clear_all (); 24 23 … … 26 25 Include (); 27 26 ~Include (); 27 void parse (); 28 void clear (); 28 29 29 30 cmt_string name; -
CMT/HEAD/source/cmt_parser.cxx
r42 r78 164 164 bool strategy; 165 165 166 if (p == 0) strategy = StrategyMgr::get_default_strategy (name); 167 else strategy = p->get_strategy (name); 166 if (p == 0) 167 { 168 static const Project::ProjectVector& projects = Project::projects (); 169 170 if (projects.size () == 0) strategy = StrategyMgr::get_default_strategy (name); 171 else 172 { 173 p = &(projects[0]); 174 strategy = p->get_strategy (name); 175 } 176 } 177 else 178 { 179 strategy = p->get_strategy (name); 180 } 168 181 169 182 return (strategy); … … 6479 6492 void fill_for_use_includes () 6480 6493 { 6494 Include::parse_all (); 6481 6495 Use::UsePtrVector& Uses = Use::get_ordered_uses (); 6482 6496 -
CMT/HEAD/source/cmt_project.cxx
r41 r78 792 792 } 793 793 794 Project* current = get_current (); 795 796 if (current != 0) current->show (); 794 Project* p = get_current (); 795 796 if (p == 0) 797 { 798 if (Projects.size () == 0) return; 799 800 p = &(Projects[0]); 801 } 802 803 p->show (); 797 804 } 798 805 … … 1029 1036 Project* p = get_current (); 1030 1037 1031 if (p == 0) return; 1038 if (p == 0) 1039 { 1040 if (Projects.size () == 0) return; 1041 1042 p = &(Projects[0]); 1043 } 1032 1044 1033 1045 visitor.pre (p); … … 1042 1054 VisitorForFillCMTPATH (cmt_string& buffer) : m_buffer (buffer) 1043 1055 { 1056 buffer = "path CMTPATH \"\" \n"; 1044 1057 } 1045 1058 … … 1055 1068 m_buffer += "path_append CMTPATH \""; 1056 1069 m_buffer += w; 1057 m_buffer += " \" \n";1070 m_buffer += ":\" \n"; 1058 1071 } 1059 1072 } … … 1070 1083 m_buffer += "path_append CMTPATH \""; 1071 1084 m_buffer += w; 1072 m_buffer += " \" \n";1085 m_buffer += ":\" \n"; 1073 1086 } 1074 1087 } -
CMT/HEAD/source/cmt_symbol.cxx
r40 r78 2123 2123 2124 2124 Cmt::vector_to_string (paths, path_separator, temp); 2125 temp.replace_all ("::", ":");2126 temp.replace_all (";;", ";");2127 2125 } 2128 2126 … … 2171 2169 2172 2170 Cmt::vector_to_string (paths, path_separator, temp); 2173 temp.replace_all ("::", ":");2174 temp.replace_all (";;", ";");2175 2171 } 2176 2172 … … 2181 2177 2182 2178 level--; 2179 2180 for (;;) 2181 { 2182 int sz = temp.size (); 2183 2184 if (sz == 0) break; 2185 2186 if ((temp[0] == ';') || (temp[0] == ':')) 2187 { 2188 temp.erase (0, 1); 2189 } 2190 else if ((temp[sz-1] == ';') || (temp[sz-1] == ':')) 2191 { 2192 temp.erase (sz-1, 1); 2193 } 2194 else 2195 { 2196 break; 2197 } 2198 } 2199 2200 temp.replace_all ("::", ":"); 2201 temp.replace_all (";;", ";"); 2183 2202 2184 2203 return (temp); -
CMT/HEAD/source/cmt_use.cxx
r50 r78 2897 2897 { 2898 2898 Include& incl = includes[i]; 2899 2900 if (incl.name == "") continue; 2899 2901 2900 2902 buffer += "$(ppcmd)\""; -
CMT/HEAD/source/cmt_version.h
r46 r78 8 8 #define __cmt_version_h__ 9 9 10 #define CMTVERSION "v1r18p20050501" 10 //#define CMTVERSION "v1r18p20050501" 11 #define CMTVERSION "HEAD" 11 12 12 13 #endif
Note: See TracChangeset
for help on using the changeset viewer.