source: CMT/v1r20p20070524/ChangeLog

Last change on this file was 412, checked in by arnault, 17 years ago

Fix: Forgot to consider the minimal case where only one tag exists for the package, the tag related with the original import. CL 330

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-trac-wiki
File size: 208.0 KB

2007-04-27 <arnault@…> 330

  • source\cmt_cvs.cxx (class CvsImplementation): Forgot to consider the minimal case where only one tag exists for the package, the tag related with the original import.

2007-04-24 <arnault@…> 329

  • source/cmt_cvs.cxx (class CvsImplementation): Don't consider CVS branches when tag is not specified
  • source/cmt_project.cxx: Protect warning messages with -quiet
  • source/cmt_system.cxx: idem
  • source/cmt_system.h: Improvement of the FilePath class definition
  • source/cmt_parser.cxx: Prepare using FilePath objet for current dir Better management of the -quiet option

  • source/cmt.h: Prepare using FilePath objet for current dir

2007-04-23 <arnault@…> 328

  • mgr/fragments/java_header: Make use of the $(jar) macro

2007-04-23 <arnault@…> 327

  • source/cmt_system.cxx: activate the support to PWD env. var. Start the definition of the new generic class FilePath to store physical and logical file specifications

2007-04-20 <arnault@…> 327

  • source/cmt_use.cxx: idem
  • source/cmt_triggers.cxx: idem
  • source/cmt_tag.cxx: idem
  • source/cmt_system.cxx: idem
  • source/cmt_syntax.cxx: idem
  • source/cmt_symbol.cxx: idem
  • source/cmt_sequence.cxx: idem
  • source/cmt_script.cxx: idem
  • source/cmt_regexp.cxx: idem
  • source/cmt_project.cxx: idem
  • source/cmt_pattern.cxx: idem
  • source/cmt_parser.cxx: idem
  • source/cmt_model.cxx: idem
  • source/cmt_log.cxx: idem
  • source/cmt_lock.cxx: idem
  • source/cmt_language.cxx: idem
  • source/cmt_install_area.cxx: idem
  • source/cmt_group.cxx: idem
  • source/cmt_generators.cxx: idem
  • source/cmt_generator.cxx: idem
  • source/cmt_fragment.cxx: idem
  • source/cmt_cvs.cxx: idem Send error & warning messages to stderr instead of stdout
  • source/cmt_constituent.cxx: idem
  • source/cmt_cmtpath_pattern.cxx : idem
  • source/cmt_branch.cxx : idem
  • source/cmt_awk.cxx : idem
  • source/cmt.cxx: formatting text

2007-03-28 Vincent Garonne <garonne@…> 326

source/cmt_deps_builder.cxx, cmt_syntax.cxx: Change or by
, not by ! which create problem on windows

2007-03-22 Vincent Garonne <garonne@…> 325

  • source/cmt.cxx: Extract the pure status code when executing an action

2007-03-07 Vincent Garonne <garonne@…> 324

  • source/cmt_commands.cxx: Remove a extra debugging print remained...

2007-02-08 Vincent Garonne <garonne@…> 323

  • source/cmt_parser.cxx: Disable the creation of ROOT/CONFIG variable for the PACKAGE_POLICY_<project> virtual package

2007-01-02 Vincent Garonne <garonne@…> 322

  • source/cmt_parser.cxx: update to deal with the action return status code and the -no_auto_imports differents cases.
  • source/cmt_constituents.cxx: Add support for the -import=PkgA,PkgB
  • source/cmt_error.*: update to deal with the action return status code
  • source/cmt.cxx: return status code

2007-31-01 Vincent Garonne <garonne@…> 321

  • cmt_deps_builder.cxx: Add support for space, line continuing character, etc.

2006-15-11 Vincent Garonne <garonne@…> 320

  • mgr/fragments/group, mgr/fragments/nmake/group: Add macros $(${GROUP}_pre_constituents), $(${GROUP}_post_constituents) for having target executed by default.

2006-14-11 Vincent Garonne <garonne@…> 319

  • cmt.h, cmt_parser.cxx: Generate a native_version.cmt file if the <package>_native_version macro exists at the config step.

2006-14-11 Vincent Garonne <garonne@…> 318

  • cmt_tag.cxx: Correct the fact that "apply_tag" protected by a private section is exported in all the clients packages.

2006-10-24 <arnault@…> 317

  • source
    cmt_cmtpath_pattern.cxx (apply): Implement the two different traversal modes for the project graph
  • source
    cmt_cmtpath_pattern.h (class CmtPathPattern): Add extra arguments to action and add AND a new attribute to hold the possible revert mode in the project traversal
  • source
    cmt_syntax.cxx (class KwdCmtPathPatternRevert): Implement the parsing of the new keyword simply by adding an extra optional arg to the CmtPathPattern::action (SyntaxParser): Add a new keyword cmtpath_pattern_revert to handle project traversal in reverse order (wrt the current order of cmtpath_pattern)

2006-18-10 Vincent Garonne <garonne@…> 317

  • cmt_commands.*, cmt_parser.cxx, cmt.h: Add the -disable_warnings option to not print certains warnings, e.g. the CMTSITE value etc.

2006-12-10 Vincent Garonne <garonne@…> 316

  • source/cmt_parser.cxx, source/cmt_syntax.cxx, source/cmt_use.*: Enable and propagate the -native_version syntax at the use level. IMPORTANT NOTES: STILL NOT FINISHED.

2006-12-10 Vincent Garonne <garonne@…> 315

  • source/cmt_std.h: add APPLE for removing compilation warnings

2006-11-10 Vincent Garonne <garonne@…> 314

  • source/cmt_project.*: Add two functions - get_project_releases, select_release
  • source/cmt_project.*: Add support for wildcarded project dependencies

2006-10-10 Vincent Garonne <garonne@…> 313

  • source/cmt_symbol.*, source/cmt_parser.*, source/cmt_commands.*, source/cmt_syntax.*, source/cmt.h: Add support for the show project author command
  • src/setup.*: Add auto-expand for project_author

2006-09-28 Vincent Garonne <garonne@…> 312

  • source/cmt_symbol.cxx: Bug fixed on the windows platform.

2006-08-17 Vincent Garonne <garonne@…> 311

  • source/cmt_syntax.cxx: Add support for author syntax to project

2006-06-15 Vincent Garonne <garonne@…> 310

  • source/cmt_system.cxx: Correct touch function to conserve permission

2006-06-15 Vincent Garonne <garonne@…> 309

  • mgr/fragments/application, mgr/fragments/c_library, mgr/fragments/cleanup_librarymgr/fragments/cpp, mgr/fragments/cpp_library, mgr/fragments/dependencies, mgr/fragments/fortran_library, mgr/fragments/library: Add the support for the PRINT_PREREQISITES mode during the make operation
  • mgr/fragments/library: Fixed a bug

2006-05-31 Vincent Garonne <garonne@…> 308

  • source/cmt_cvs: Add modification to deal with non working checkout by creating the cvs files manually ,e.g. cvs entries.
  • source/cmt_cvs: Add the "-f" option which supposes to force cvs to ignore the .cvsrc file during cvs command execution.

2006-05-20 Christian Arnault <arnault@…> 307

  • source/cmt_pattern.cxx (expand): Make use of use->get_cmtpath_and_offset to compute the project of the package when expanding the <project> template to fix packages with offset

2006-04-25 Vincent Garonne <garonne@…> 306

  • cmt_generator.cxx: Add the fixe recommend by markus to deal with extern c data on visual

2006-04-25 Vincent Garonne <garonne@…> 305

  • mgr/fragments/cleanup_header, mgr/fragments/constituent: Add a PEDANTIC option for building which stop directly after detecting a missing file or target

  • mgr/fragments/constituent, mgr/fragments/constituents_header, mgr/fragments/cleanup_header, mgr/fragments/make_header : correct some bad behaviours and change the internal file name convention *setup* -> *_setup*

2006-04-25 Vincent Garonne <garonne@…> 304

  • source/cmt_parser.cxx: Remove only the specific makefiles depending on the platform, e.g. remove *.make on linux and *.nmake on windows

2006-04-25 Vincent Garonne <garonne@…> 303

  • source/cmt_commands.cxx, source/cmt_commands.h, source/cmt_parser.cxx, source/cmt_parser.h: Add a new cmt command "relocate" to generate only setup script whithout makefile
  • src/setup.tcsh : Enable the auto-expand mechanism for the relocate command

2006-04-25 Vincent Garonne <garonne@…> 302

  • source/cmt_cvs.cxx: Do the exact mathing for tag during recursive checkout operation

2006-04-24 Christian Arnault <arnault@…> 301

  • source/cmt_pattern.cxx(expand): Add support for a <project> template in patterns

2006-14-03 Christian Arnault <arnault@…> 300

  • source/cmt_cvs.cxx: Switch checkout sequence from multi-co to multi update

2006-03-01 Vincent Garonne <garonne@…> 299

  • mgr/requirements: Enable tag v1r18 for the HEAD version

2006-02-24 Christian Arnault <arnault@…> 298

  • mgr/requirements: Suppress automatic installation of share/bin & share/lib in CLASSPATH for with_installarea
  • source/cmt_project.cxx (create_project): Suppress a warning message
  • source/cmt_commands.cxx (do_check): Suppress automatic warnings for do_check_configuration (do_setup): idem for cmt setup

2006-02-10 Vincent Garonne <garonne@…> 297

  • mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts

2006-02-09 Christian Arnault <arnault@…> 296

  • mgr/requirements: Fill <project>_installarea_linkopts in addition to cmt_installarea_linkopts

2006-02-07 Christian Arnault <arnault@…> 295

  • mgr/requirements: Protect cmtpath_patterns with strategies use $(CMTCONFIG) instead of $(tag) in cmtpath_patterns
  • source/cmt_parser.cxx (configure_cmt_path): Suppress warnings for bad paths at this stage (do_check_configuration): Add set_standard_macros for do_check_configuration
  • source/cmt_commands.cxx (do_check): Activate warnings for check configuration and for setup
  • source/cmt_symbol.cxx (filter_path_value): Don't kill path item when they don't exist. (action): Reset all_sets_done at each symbol definition. (all_set): Protect against internal recursivity (all_print): Print path settings here. (check_all_paths): Add a new function to check all paths. (SetBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show) (PathBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show) (MacroBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show) (ActionBuilder::build): suppress detetion of overridings from here (move to SymbolValueList::show) (SymbolValueList::show): Keep reset to null actions Print overridings
  • source/cmt_system.cxx: Add include cmt_map.h for putenv management (class CMTPathManager): Suppress generation of an error when the CMTPATH item does not exist

2006-02-06 Christian Arnault <arnault@…> 294

  • source/cmt_cvs.cxx (class CvsImplementation): Uses the new CmtSystem::putenv API
  • source/cmt_symbol.cxx (all_set): Uses the new CmtSystem::putenv API to fix setup problems
  • source/cmt_system.h (class CmtSystem): Modifying the API of the internal putenv function
  • source/cmt_system.cxx (putenv): Replacing the old putenv implementation with a new one using a static map of all used environment variables so as to ensure a stable string

2006-01-31 <arnault@…> 293

  • source/cmt_parser.cxx (configure_cmt_path): Force a warning when CMTPATH contains a non existing item.
  • source/cmt_awk.cxx (scan_path): Restore commented debug printouts after fix.
  • source/cmt_parser.cxx (run): Fix the parsing of requirements file for do_show_clients for use statements without version.
  • source/cmt_awk.cxx (scan_path): Detect the non-version-directory mode and launches the run with appropriate flag.
  • source/cmt_awk.h (class PathScanner): Add an argument to mark that the scanned package uses no version directory.
  • mgr/requirements: Removed obsolete pp_cflags for Linux (ticket #15)

2006-01-27 <garonne@…>

  • source/cmt_parser.cxx: Allow with_version_directory option for users.

2006-01-09 <arnault@…> 292

  • source/cmt_project.cxx (create_project): Access CMTPROJECTPATH through symbol or getenv
  • source/cmt_symbol.cxx (get_env_value): Make use of the global display inhibitor to ensure that temporary value builder will not show unexpected output.
  • source/cmt_symbol.h (class Symbol): Define a special accessor function for retrieving the value a symbols associated with an env. var. (typically for CMTPATH like variables)
  • source/cmt_symbol.cxx (action): Trigger the Cmt::configure_cmt_path from CMTPROJECTPATH like CMTPATH

2005-10-31 Christian Arnault <arnault@…> 291

  • source/cmt_system.cxx (is_version_directory): Permit version directories not starting by a letter (eg 1.0)

2005-10-30 <arnault@…> 290

  • source/cmt_symbol.cxx (all_set): Must expand PATH values before filtering and setting them

2005-10-28 <arnault@…> 289

  • cmt/fragments/cleanup_header: Temporary hack to deal with missing files and to avoid infinite loops in make. However, this must be seen as a ugly hack since it considers an Atlas use case with config.h.in. This hack is harmless to any user of this special file though.
  • source/cmt.h
  • source/cmt_parser.cxx
  • source/cmt_commands.h
  • source/cmt_commands.cxx
  • doc/CMTDoc.xml: Add a -warnings option to display various warning messages

2005-10-18 <arnault@…> 288

  • mgr/Makefile (bintar): Prepare and cleanup binary directories before creating tar balls.
  • mgr/Makefile (Export): Move the docs target from bintar to Export
  • source/cmt_symbol.cxx (print): Filter path values before setting them externally
  • source/cmt_symbol.cxx (all_set): Filter path values before setting them internally
  • source/cmt_parser.cxx (configure_cmt_path): Filter out CMTPATH before creating or updating projects from the CMTPATH value
  • source/cmt_symbol.h (class Symbol): Add a static function to filter out faulty items in a PATH symbol

2005-10-17 <arnault@…> 287

  • mgr/Makefile (cmtexe): Use -quiet option whenever using cmt within the Makefile of CMT
  • source/cmt_cvs.cxx (class CvsImplementation): Protect against empty protocol level (for backward compatibility)

2005-10-15 <arnault@…> 286

  • source/cmt_project.cxx (use_action): Consider empty release for Windows (test_directory on Windows does not work with a trailing backslash)

2005-10-11 Christian Arnault <arnault@…> 285

  • source/cmt_project.cxx (create_project): Protection against single level directories in CMTPATH (/xxx)

2005-10-11 <arnault@…> 284

  • mgr/fragments/nmake/constituent (clean): Protect against unexisting makefile fragment when running the clean target
  • source/cmt_parser.cxx (class StandardMacroBuilder): Enclose items in the use_requirements macro into double quotes using the q macro. This to cope with spaces in directories on Windows. (dos_script_prefix): Add quotes for the -path argument
  • mgr/requirements: Add a macro definition to hold a double-quote

2005-09-13 <arnault@…> 283

  • mgr/CMT.pacman: Add constraint on version of pacman Use ./INSTALL instead of just INSTALL

2005-09-29 Christian Arnault <arnault@…> 283

  • mgr/fragments/nmake/constituents_trailer (makefilesclean): Remove references to checkuses
  • mgr/fragments/constituents_header (config): Remove references to checkuses
  • mgr/fragments/constituents_trailer (makefilesclean): Remove references to checkuses
  • mgr/fragments/make_header (dirs): Remove references to checkuses
  • mgr/fragments/make_setup (config): Remove references to checkuses
  • source/cmt_parser.cxx (do_broadcast): bug fix: the set_standard_macro was not called prior to set all EVs before the broadcast loop

2005-09-09 <arnault@…> 282

  • mgr/Makefile: Adapt (fix) to changes in the doc directory.

2005-09-07 <arnault@…> 281

  • source/cmt_version.h: fix tag v1r18p20050901
  • source/cmt_cvs.h: Fix bug when generating version.cmt file after checkout

2005-09-05 <arnault@…> 280

  • source/cmt_std.h: Fix std context for CYGWIN

2005-09-05 Christian Arnault <arnault@…> 279

  • source/cmt_cvs.cxx (class CvsImplementation): Fix do_need_version
  • source/cmt_project.cxx (StrategyMgr): Initialize VersionStrategy using default

2005-09-05 <arnault@…> 278

  • source
    cmt_parser.cxx (do_create): Make use of the structure strategy for creating package directory structure.
  • source
    cmt_cvs.cxx (class CvsImplementation): Make use of the structure strategy for creating package directory structure.
  • source
    cmt_parser.cxx (do_show_strategies): Display the structure strategy
  • source
    cmt_syntax.cxx (class KwdStructureStrategy): Create the parsing function for Structure strategies
  • source
    cmt_parser.h (enum CmtStructuringStyle): By default the structuring style is initialized with default_structuring_style instead of with_version_directory in order to remember whether the default has been overridden using EV or command option.
  • source
    cmt_project.cxx (configure): Initialize the VersionDirectory strategy (StrategyMgr): Create the VersionDirectory strategy entry.
  • source
    cmt_parser.h (enum): Add a StructureStrategy to define with/out version directory.

2005-09-05 Christian Arnault <arnault@…> 277

  • mgr/cmt_buildcvsinfos2.sh (module): Adapt to the new syntax by adding the protocol level.
  • source/cmt_include.cxx (action): Submit include_dirs statement to private scoping

2005-09-01 Christian Arnault <arnault@…> 276

  • source/cmt_use.cxx (get_strategy): Implement the get_strategy function
  • source/cmt_use.h (class Use): Install the get_strategy function as a member function.
  • source/cmt_symbol.cxx (all_set): Generate all XXXROOT and XXXCONFIG evs according to the strategies.
  • source/cmt_parser.cxx (get_strategy): Make the use argument of the function a required argument ie suppress the default arg to Use::current () Prepare to migrate this function as a member function of Use

2005-08-31 Christian Arnault <arnault@…> 275

  • source/cmt.h (class Cmt): Making the get_strategy function a member function rather than a private local one
  • mgr/fragments/constituent (uninstall): Protect against missing un/install targets
  • mgr/fragments/nmake/constituent (uninstall): Protect against missing un/install targets
  • mgr/fragments/cmt_action_runner_header: Add install and uninstall dummy target
  • mgr/fragments/nmake/cmt_action_runner_header: Add install and uninstall dummy target
  • mgr/cmt_uninstall_action.bat: [Fix] typo
  • source/cmt_project.cxx (create_project): When create a parent-less project, link it to previous top project(s) and upgrade strategies (class VisitorForFillCMTPATH): [Fix] Should not add the path separator
  • source/cmt_project.h (class Project): Add a function to ask if a project has parents
  • source/cmt_include.cxx (parse): When expanding include, the use must be trasmitted to new includes

2005-08-30 Christian Arnault <arnault@…> 275

  • source/cmt_parser.cxx (class StandardMacroBuilder): Parse all includes for Current use
  • source/cmt_include.cxx: Do the parse_all operation in the context of one Use.
  • source/cmt_include.h (class Include): Do the parse_all operation in the context of one Use.
  • source/cmt_project.cxx (create): Return a boolean status to show success of the creation
  • source/cmt_project.h (class Project): create function returns a boolean that describes if the creation was successful. In case of success the current directory is in the cmt directory of the project.
  • source/cmt_system.cxx (scan_dir): Fix a bug
  • source/cmt_deps_builder.cxx (build_deps_text): Fix state change when in single line comment

2005-08-19 Christian Arnault <arnault@…> 274

  • source/cmt_use.cxx (fill_includes_macro): skip include_dirs entries with empty name
  • source/cmt_project.cxx (show_all): Use the top project when current is not defined (start_visit): idem (class VisitorForFillCMTPATH): Initialize CMTPATH to empty when filling in CMTPATH for all projects
  • source/cmt_cvs.cxx (class CvsImplementation): Add the get_module function to compute the CVS module from the requested package/offset (class CvsImplementation): Add a check_structure to verify various structures before doing the checkout (class CvsImplementation): Ask for the checkout when the directory structure is in place but when the CMT structure is NOT in place. Useful for mounting disks before the checkout.
  • source/cmt_parser.cxx (class StandardMacroBuilder): Apply the post-processing of include_dirs statements. (get_strategy): Get the top project to compute a strategy when the current project is not defined in order to avoid losing all strategies for standalone packages.
  • source/cmt_include.h (class Include): Suppress print_all and print_filters obsolete functions
  • source/cmt_include.cxx: Suppress print_all and print_filters obsolete functions (parse): Add a post-processing step to expand include_dirs statements at set_standard_macros stage
  • source/cmt_deps_builder.cxx (build_deps_text): Fix and Change the way source files are parsed for computing dependencies. Fill a cmt_string at once and traverse the string without any additional copy.

2005-07-21 Christian Arnault <arnault@…> 274

  • source/cmt_symbol.cxx (build): Clean up unneeded path separators

2005-07-19 Christian Arnault <arnault@…> 274

  • source/cmt_symbol.cxx (build): Suppress old test in CommandPathRemoveRegexp

2005-05-09 Christian Arnault <arnault@…> 273

  • source/cmt_use.cxx (fill_standard_macros): Fix a bug in setting the project macros (missing CR)

2005-05-02 Christian Arnault <arnault@…> 272

  • source/cmt_version.h: Prepare v1r18p20050501
  • source/cmt_cvs.cxx: Adding CMTPATH internal management Improve broadcast operation after recursive checkouts

2005-05-01 Christian Arnault <arnault@…> 272

  • mgr/Makefile (pacman): Create the pacman file for that version.
  • mgr/CMT.pacman: Migrate to Pacman3
  • source/cmt_cvs.cxx: Supporting project checkout recursive project checkouts without_version_directory mode container statements in project files. alias version directory Various cleanup and restructuring operations
  • mgr/requirements: Adapt for shared libs on CYGWIN (thanks to Guy Barrand)
  • src/setup.zsh: Add cmt subprojects command
  • src/setup.tcsh: Add cmt subprojects command

2005-04-26 Christian Arnault <arnault@…> 271

  • source/cmt_cvs.cxx: Add recursive passes for cvs co -R on projects (not completed) Add support/checking of protocol level against CVS pluggin Detection of non-installation of the CVS pluggin
  • mgr/requirements: Add a macro cmt_cvs_protocol_level to specify the expected protocol level with the CVS pluggin

2005-04-25 <arnault@…> 270

  • source/cmt_cvs.cxx (class CvsImplementation): Accept empty argument for queries on subprojects
  • source/cmt_cvs.cxx (class CvsImplementation): Accept empty argument for queries on subpackages
  • source/cmt_cvs.cxx (class CvsImplementation): Selection for getting the mudule contents is done using the structure information.
  • source/cmt_cvs.cxx (class CvsImplementation): Isolate specific behaviour into dedicated functions for getting the specific contents for packages or for projects.
  • source/cmt_cvs.cxx (class CvsImplementation): Retrieve fields for structure and subprojects from the CVS pluggin.
  • source/cmt_cvs.cxx (class CvsImplementation): Manage the protocol level related with the version of the CVS pluggin.
  • source/cmt_cvs.cxx (class CvsImplementation): Suppress all dots from the tmpdir due to problems on Windows
  • source/cmt_cvs.cxx (class CvsImplementation): Add support for struture_info and subprojects coming from the new CVS pluggin
  • source/cmt_parser.cxx (do_cvssubprojects): Handle the cvssubprojects command (parser): Commands related with CVS should at least read the requirements file of CMT
  • source/cmt_parser.h (enum): Add cvssubprojects action
  • source/cmt_commands.cxx (CommandHelp): Add help for cvssubprojects command
  • source/cmt_commands.cxx (do_cvssubprojects): Accept empty argument to query for subprojects at top of the repository
  • source/cmt_commands.cxx (do_cvssubpackages): Accept empty argument to query for subpackages at top of the repository
  • source/cmt_commands.cxx (ArgParser): Manage cvssubprojects command.
  • source/cmt_commands.h (class ArgParser): Add cvssubprojects command
  • source/cmt_use.cxx (fill_standard_macros): Production of a new standard macro for obtaining the project releases
  • source/cmt_cvs.h (class Cvs): Add the subprojects function to query CVS about the existing subprojects of a given module.

2005-04-23 Christian Arnault <arnault@…> 269

  • source/cmt_project.h (class Project): container and container_version access methods
  • source/cmt_project.cxx (container_action): Implementation of the container statement
  • source/cmt_project.h (class Project): Add handling of the container statement
  • source/cmt_syntax.cxx (class KwdContainer): Add support of the project container package (SyntaxParser): idem

2005-04-21 Christian Arnault <arnault@…> 268

  • source/cmt_project.cxx (create_project): Check pwd for finding projects.
  • source/cmt_symbol.cxx (find_path_entry): Look for existing PATH entries by comparing the real path rather than the logical path. Use pwd everywhere (or CmtSystem::compress_path when the path is not exactly found)

2005-04-14 Christian Arnault <arnault@…> 267

  • source/cmt_system.cxx (class CMTPathManager): CMTUSERCONTEXT and CMTHOME environments give a specific name to the associated project.
  • source/cmt_project.cxx (create_project): Fixing the project naming scheme. Project name specified in the project files take precedence over the names found in the path.

2005-04-13 Christian Arnault <arnault@…> 266

  • source/cmt_commands.cxx (do_cvstags, do_cvssubpackages): Fix arg counting.

2005-04-12 Christian Arnault <arnault@…> 265

  • source/cmt_project.cxx (create_project): Restructure the algorithm for detection of project structuring cases. Construct a finite list of cases. (has_parent): Implement recursive query function (has_child): Implement recursive query function (add_parent, add_child): Use the recursive detection to avoid cycles.
  • source/cmt_project.h (class Project): Add has_parent and has_child functions to protect against recursive cycles

2005-04-02 Christian Arnault <arnault@…> 264

  • source/cmt_version.h (CMTVERSION): Prepare for v1r18p20050401
  • mgr/requirements: use ln -fs for cmt_installarea_command

2005-03-31 Christian Arnault <arnault@…> 263

  • doc/ReleaseNotes: prepare release notes

  • source/cmt_project.cxx (create_project): Fix settings of the project name.

2005-03-30 Christian Arnault <arnault@…> 262

  • mgr/NMake (demo): Adapt to the new syntax of cmt create_project
  • source/cmt_project.cxx (create_project): Suppress several warnings

2005-03-30 Christian Arnault <arnault@…> 261

  • doc/table.html: Install link to the Trac bug reporting system.

2005-03-30 Christian Arnault <arnault@…> 261

  • source/cmt_project.cxx (create): The create function now creates the complete directory hierarchy for the project including the release level(s). Can accept a path. (create_project): Don't assume a release level.
  • source/cmt_project.h (class Project): The create function now accepts a release and a path argument
  • source/cmt_commands.cxx (show): Suppress debug printouts
  • source/cmt_parser.cxx (do_help): Suppress debug printouts
  • source/cmt_system.cxx (is_version_directory): Accept HEAD/head as a valid version directory.

2005-03-30 Christian Arnault <arnault@…> 260

  • doc/CMTDoc.xml: work on the doc (unfinished)
  • source/cmt_project.cxx (use_action): The name specification of a project use statement is used to create the project.

  • source/cmt_project.cxx (create_project): Implement the algo to construct or discover the real project name and release from the context. The new algo supports release specifications as a multi-level directory definition.
  • source/cmt_project.cxx (get_release_from_path): Function to retreive the release sub-string from a path, given the project name.
  • source/cmt_project.h (class ProjectFactory): Add the project name as first argument to the create_project function.
  • source/cmt_system.cxx (class CMTPathManager): when specified from a CMTPATH item, the project creation has to guess the project name.
  • mgr/Makefile (gendoc): Suppress the | output modifier

2005-03-16 Christian Arnault <arnault@…> 259

  • mgr/fragments/dependencies: We need to reconsider all sources to recompute all dependencies that may have changed due to configuration changes. Thus the -all_sources is added

2005-03-15 Christian Arnault <arnault@…> 258

  • source/cmt_parser.cxx (clear): Add m_autoconfigure_cmtpath variable to discard autoconfiguration of CMTPATH during initial phases of the configuration.

(guess_current_project): Once the current project is known, the CMTPATH is re-generated from the effective knowledge of the project graph.

(do_setup): Add a check of the configuration when doing cmt setup

(do_check_configuration): analyze the tags coming from arguments or from CMTSITE to detect mistypings. This is done by checking the effective usage of those tags.

(configure_cmt_path): Analyze CMTPATH from either the symbol value or from the EV, before asking the project factory to create the projects from it.

(get_strategy): Add a generic local function to query the strategy elements.

  • source/cmt_project.cxx (add): Manage conflicts between project release requests on a strict basis (no wild card - exact match only)
  • source/cmt_project.h (class ProjectFactory): No longer need m_first and m_previous
  • source/cmt_project.cxx (create_project): Implement a graph of projects. (create_project): Interpret the first top level directory as the project release

(create_project): Interpret the second top level directory as the project name when it's not defined in the project file. So we don't create a dummy project name anymore Project<n>.

  • source/cmt_commands.cxx (ArgParser): Suppress obsolete +path option (parse): Initialize the m_action value to none to fix a bad management of unknown commands (do_filter): Implement the cmt filter command
  • source/cmt_error.cxx (class Error): Add unknown_command and project_release_conflict errors
  • source/cmt_syntax.cxx (class KwdBuildStrategy): Apply the restructuration of strategy management to strategy decoding

(class KwdSetupStrategy): idem (class KwdUse): Support the use statement for project files (SyntaxParser): Support the use statement for project files

  • source/cmt_project.h (class StrategyDef): Create a class to hold the definition of all strategy elements (class Strategy): Create a class to hold the application of a strategy into a project (class StrategyMgr): Create a singleton to manage the strategy definitions (class ProjectFactory): Add parent argument to create_project to handle the project graph (class IProjectVisitor): Create a class to visit the project graph (class Project): Transport all definitions related with strategies into Strategy objects
  • source/cmt_system.cxx (class CMTPathManager): Add a class to interact with the ProjectFactory to convert CMTPATH specifications into projects

(get_cmt_paths): Suppress the setting from $CMTPATH. This is replaced by a selective understanding of the source of CMTPATH either from the symbol (when defined in a requirements file) or from the EV. This selection is performed in Cmt::configure_cmt_path.

(get_cmt_paths): Suppress the definition of a CMTPATH entry for CMT itself

2005-03-10 <arnault@…> 257

  • mgr/NMake (demo): Add project file to the demo context.

2005-03-04 Christian Arnault <arnault@…> 256

  • source/cmt_project.cxx: Ongoing work for redefining Project graphs.

2005-03-03 Christian Arnault <arnault@…> 255

  • source/cmt_project.cxx (add): Manage project release conflicts.
  • source/cmt_error.h (class CmtError): Add project_release_conflict error
  • source/cmt_error.cxx (class Error): Add project_release_conflict error
  • source/cmt_project.h (class Project): Introduce the management of release information in projects
  • source/cmt_parser.cxx (do_check_configuration): Finally suppress the checking of CMTCONFIG (do_setup): Add do_check_configuration to check some tag settings.

2005-03-02 Christian Arnault <arnault@…> 254

  • source/cmt_symbol.h (class Symbol): Add an optional argument to build_macro_value to switch display mode
  • source/cmt_symbol.cxx (show_macro): Improve the display mode so as to display only once the macro construction steps
  • source/cmt_parser.cxx (guess_current_project): Regenerate CMTPATH from the effective set of subprojects.
  • source/cmt_commands.cxx (parse): Handle unexpected arguments
  • source/cmt_error.cxx (class Error): Added unknown_command error
  • source/cmt_error.h (class CmtError): Added unknown_command error
  • source/cmt_commands.cxx (do_filter): Missing implementation for the filter command

2005-03-01 Christian Arnault <arnault@…> 254

  • source/cmt_tag.cxx (use_operand): Add way of checking internal structure of a tag
  • source/cmt_tag.cxx (use_ref): Add way of checking internal structure of a tag
  • source/cmt_tag.h (class Tag): Add way of checking internal structure of a tag
  • source/cmt_symbol.h (class Symbol): Add way of checking if a tag is used by symbols.
  • source/cmt_symbol.cxx (print): Suppress the "export" action after defining an alias in Sh mode
  • source/cmt_project.cxx: Introduce use_action
  • source/cmt_syntax.cxx (SyntaxParser): Add support to use statements in project files
  • source/cmt_project.cxx (create_project): Add comments

2005-02-14 Christian Arnault <arnault@…> 253

  • src/Makefile.header (common_target): mktemp refuses to create subdirectory when TMPDIR specifies something different than /tmp that does not exist yet.

2005-02-07 Christian Arnault <arnault@…> 252

  • source/cmt_system.cxx (scan_dir): Fix a bug that killed the cmt show packages command in some cases

2005-02-03 <arnault@…> 251

  • source/cmt_commands.cxx (do_cvstags): fix arg counting
  • source/cmt_commands.cxx (do_cvssubpackages): fix arg counting

2004-12-14 <arnault@…> 250

  • source/cmt_parser.cxx (class StandardMacroBuilder): Fix a bug that caused a premature exit from the scan of constituents.

2004-12-13 <arnault@…> 249

  • source/cmt_constituent.cxx (parse): Add a specific behaviour for documents generated for actions so as to keep the action_value definition unparsed.

2004-12-03 <arnault@…> 248

  • mgr/fragments/nmake/library: apply patches from Pere about installing pdb files for Debug mode

2004-12-01 <arnault@…> 247

  • source/cmt_version.h (CMTVERSION): Prepare for tagging v1r18p20041201
  • source/cmt.h (class Cmt): Fix typo

2004-12-01 Christian Arnault <arnault@…> 246

  • mgr/cmt_uninstall_action.sh: Better management of directory removal

2004-12-01 Christian Arnault <arnault@…> 246

  • mgr/fragments/application (install):
  • mgr/fragments/library (install):
  • mgr/fragments/library_no_share (install):
  • mgr/fragments/install_includes_header (install):
  • mgr/fragments/jar (install):
  • mgr/fragments/java_header (install): Remove the connection between uninstall and clean targets. So now when gmake clean is run no uinstallation occurs in the installation area.

2004-11-11 <arnault@…> 245

  • source/cmt_parser.h:
  • source/cmt_project.cxx:
  • source/cmt_project.h:
  • source/cmt_syntax.cxx:
  • source/cmt_parser.cxx:
  • doc/CMTDoc.xml: Suppress obsolete (and useless) makefile strategy
  • source/cmt_parser.cxx (print_context): the setup strategy is really used to generate the ROOT and CONFIG env. vars.
  • source/cmt_parser.cxx (get_setup_strategy): Get the setup strategy for each use so as to really build ROOT or CONFIG according to the real project of the use

2004-11-09 <arnault@…> 244

  • source/cmt_version.h: Preparing version tag for v1r18

  • mgr/requirements:
  • source/cmt_parser.h:
  • source/cmt_projects.cxx: Change default build strategy to without_installarea

2004-11-08 <arnault@…> 243

  • mgr/Makefile (docs): Do some cleanup
  • source/cmt_parser.cxx (do_build_library_links): make use of the new library_install_command macro
  • mgr/requirements: Create a new macro library_install_command for defining how to actually install libraries through the <package>_libraries macro.

2004-11-02 Christian Arnault <arnault@…> 242

  • source/cmt_commands.cxx (option_tag): When resetting tags one need to also call again guess_current_project

(option_tag): In fact on can simply reset all active tags, and regenerate activations rather than clearing all tags.

  • source/cmt_parser.cxx (guess_current_project): Fix a typo
  • source/cmt_tag.cxx (get_default): Make the tag Default a static object to avoid killing it.

2004-11-01 <arnault@…> 241

  • source/cmt_parser.cxx (guess_current_project): Implement the detection of the current project
  • source/cmt_parser.cxx (configure): Add the detection of the current project through a project file above the current directory

2004-10-30 Christian Arnault <arnault@…> 240

  • source/cmt_parser.cxx (class StandardMacroBuilder): Apply the cmtpath_patterns before setting up the installarea parameters so as to let the patterns really define the <project>_installarea_prefix for instance.

(set_standard_macros): Remove this first setting of installarea because it's better done only once.

  • mgr/fragments/constituent: Remove a debug message
  • mgr/requirements: Prepare for new tag v1r18
  • mgr/cmt_uninstall_action.sh:
  • mgr/cmt_install_action.sh: Late fixes

2004-10-29 <arnault@…> 239

  • source/cmt_parser.cxx (set_standard_macros): Restructure the StandardMacroBuilder to provide all steps. Move upward the fill_for_install_area to make all cmtpath_patterns applied before manging other macros. This caused the include_dirs installed in a cmtpath_pattern useless.
  • source/cmt_list.h (class cmt_list): few fixes for CYGWIN
  • mgr/requirements: CYGWIN tag implies Linux
  • mgr/fragments/install_includes_header (uninstall):
  • mgr/fragments/java_header (install):
  • mgr/fragments/jar (install):
  • mgr/fragments/library_no_share (install):
  • mgr/fragments/library (install):
  • mgr/fragments/application (install):
  • mgr/cmt_install_action.sh:
  • mgr/cmt_uninstall_action.sh: Improve the argument passing scheme to make it more flexible. Add an argument to get cmtpath, to check it against pwd. However this should never occur since cmt itself is supposed to never generate CMTNSTALLAREA when this is not appropriate.
  • source/cmt_install_area.cxx (setup_current_installarea): Consider <project>_installarea_prefix
  • source/cmt_system.cxx (compress_path): Fix a bug: when detecting the aaa/bbb/../ccc pattern, "bbb" cannot be ".." nor "." nor contain a macro reference.

2004-10-25 <arnault@…> 238

  • source/cmt_parser.cxx (do_run): Force the settings of EVs before launching the run action
  • source/cmt_parser.cxx (do_broadcast): Force the settings of EVs before launching the bro action
  • source/cmt_commands.cxx (do_run): The run command now transmits all arguments
  • source/cmt_list.h: Prepare a list class for future use. This be used to handle the constituent order mechanisms.
  • mgr/Makefile:
  • mgr/NMake (post_build): Add a post_build step to re-generate the cmt_dependencies.[n]make file (one version in mgr without the stamps and one version in $(bin) with them)

  • source/cmt_generators.h (class DependencyGenerator):
  • source/cmt_generators.cxx (build): Add an option -no_stamps to buid dependencies so as to generate a version of the dependency files without the extra stamps specifications and with no stamp file generation. This is need to generate the bootstrap dependency file for cmt itself.
  • source/cmt_generators.cxx:
  • source/cmt_generators.h (class DependencyGenerator):
  • source/cmt_generator.h (class CmtGenerator): Revisit the construction of dependencies files: The dependencies file is split as one file fragment per dependency line (ie per file) This dep fragment is installed into $(bin)/<constituent>/*.stamp a dep to this stamp file is installed in the dependency line the stamps file is only touched when it changes All this to ensure that recompilations are done when anythin in th configuration is changed
  • source/cmt_map.h (cmt_vmap): Introduce cmt_vmap to construct maps of objects by value
  • source/cmt.h (class Cmt): Restart of set settings can be manually triggered. Typically to ensure that they are really set just before launching an action
  • mgr/cmt_make_shlib_common.sh (temp_shlib): Suppress the automatic construction of bundles on Darwin
  • source/cmt_system.cxx (add_cmt_path): Adding protections of validity of CMTPATH entries
  • source/cmt.h:
  • source/cmt_parser.h:
  • source/cmt_parser.cxx:
  • source/cmt_command.h:
  • source/cmt_command.cxx: Introducing classes for command line parsing All decoding of the cmt command line arguments are transfered there. The decoding is also rationalized. actions can be seen as cmt command extensions better preparing of EVs before running actions prepare the Makefile default file before running actions improve the generic management of options
  • cmt.h: Introduction of the CmtContext class to hold global state variables for Cmt. The Cmt class now only contains static functions.
  • src/source: Major restructuring of the directories: All real sources of cmt now go to ../source ../src only contains stuff that need to be exported ../fragments is transfered to mgr/fragments.
  • doc/gendoc.py (Book.book_start): Produce the revision date of the documentation Install the real version tag in the doc.
  • doc/CMTDoc.xml: Improving the doc

2004-10-17 <arnault@…> 238

  • mgr/cmt_make_shlib_common.sh: Suppress the systematic creation of a bundle in Darwin context

2004-09-28 <arnault@…> 237

  • src/cmt_system.cxx (compress_path): The algorithm must ignore the following pattern: xxxx/$(mmm)/../yyyy which cannot be reduced to xxxx/yyyy. In fact it nows expands the path when macros are in it

2004-09-27 <arnault@…> 237

  • src/NMakefile.header (check_config): Ensure that configuration checking is performed first.
  • src/Makefile.header (check_config): Ensure that configuration checking is performed first.
  • src/cmt_use.cxx (need_new): Only display the incompatible case.
  • src/cmt_use.cxx (reach_package): IncompatibleMajorIds is no longer considered. Id comparison is no longer rejected in any case.
  • src/cmt_use.cxx (compare_versions): Really compare major ids. No longer produce IncompatibleMajorIds
  • src/cmt_use.cxx (enum): Add cases to completely analyze the major ids
  • src/cmt_use.cxx (operate):
  • src/cmt_system.cxx (get_cmt_paths): Suppress the systematic addition of $CMTROOT in CMTPATH items!
  • src/cmt_awk.cxx (scan_path): really stop the too deep recursion

2004-09-01 <arnault@…> 236

  • src/cmt_version.h (CMTVERSION): v1r16p20040901
  • doc/ReleaseNotes.html: Prepare next tagging
  • mgr/Makefile: Adapt for the new CMTBIN convention
  • src/cmt_model.cxx (filter): Substitute <cmt:null/> only just before printing for empty vector elements

2004-08-31 <arnault@…> 235

  • doc/CMTDoc.xml: Improve the doc.
  • src/cmt_model.cxx (strict_expand): Support parameter values enclosed in simple quotes Only display endl at the very end or recursion.
  • src/cmt_project.cxx (configure): Fix typo in tag excludes

2004-08-30 Christian Arnault <arnault@…> 234

  • mgr/requirements: Keep 3 digits for the compiler version
  • mgr/Makefile: augment support for SLC3 machines
  • mgr/cmt_linux_version.sh: idem

2004-08-30 <arnault@…> 233

  • doc/CMTDoc.xml:
  • doc/table.html: Install the reference to CeCILL licences
  • doc/download.html:
  • doc/intro.html:
  • doc/copyright.html:
  • fragments/dependencies: Trigger the reconstruction of dependency file when the setup changes.
  • fragments/constituents_header (first): Do not ovverride <package>_setup.make when identical. This permits its use as a real stamp file to trigger reconstruction of dependency files.
  • mgr/Makefile (cpp): Take into account the new convention for CMTBIN (suffixed with uname -m)
  • mgr/cmt_system.sh: improve the default value of CMTCONFIG on Cygwin
  • mgr/requirements: Improve the cleaning and setting of PATH vaiables WRT installation area strategy
  • src/cmt_parser.cxx (dos_script_prefix): Standalone packages don't need ..
    .. in the -path option of DOS setup scripts
  • src/setup.sh (CMTBIN): Suffix CMTBIN with uname -m on Unix machines
  • src/setup.csh: idem

2004-08-26 <arnault@…> 232

  • src/setup.bat: Suppress the rem--- lines
  • src/demo/demoA/init.bat: Suppress the rem--- lines
  • src/demo/demoB/init.bat: Suppress the rem--- lines

2004-08-25 Christian Arnault <arnault@…> 231

  • src/setup.tcsh: Fix typo
  • src/cmt_license.sh: Add template file to include in a various sources (commented by hash signs)
  • src/cmt_license.h: Add template file to include in a C++ source
  • src/cmt_parser.cxx (do_expand_model): Add a -test internal option to the expand model command to test regular expressions.
  • src/cmt_regexp.cxx (match): a or_node matches the longest matching alternate patterns, instead of the first one.
  • src/cmt_system.cxx (split): Detect
    " and
    ' patterns and ignore them as word separators. So a text containing "a b c" d e
    "x
    " will result in 4 fields a b c d e
    "x
    "
  • src/cmt_model.cxx (strict_expand): Implement the strict model expansion. The new syntax for definning model is:

<cmts:name att="value" ... /> for a single expansion <cmtv:name att="v1 v2 v3 ..." ... /> for a multiple expansion

The element <cmt:null/> may be used in a vector value to specify an empty value.

name is the name of a declared make_fragment as usual.

2004-08-23 Christian Arnault <arnault@…> 230

  • src/cmt_regexp.h (class cmt_regexp): Adding comparison operator and extraction operator to regexp::iterator
  • src/cmt_parser.cxx (do_expand_model): Parse the -strict option
  • src/cmt_model.h (class CmtModel): Start designing the support for stricter model expansion (to support model files in XML)
  • src/cmt_license.txt: First introduction of the license text (obtained from CeCILL)
  • src/Makefile.header (all): Evaluate the result of the cmt check configuration and stop Make if it terminates in error.
  • src/cmt_generators.cxx (analyze_file): Evaluate if the file exists. Only generate its SourceFile if it exists or can be built (build): Accumulate the file names only if they can be built.
  • src/cmt_generators.h (class DocumentGenerator): Make analyze_file return if the file is not found. (class LibraryGenerator): idem
  • src/cmt_parser.cxx (parser): Make the configure_error a fatal error.
  • src/Makefile.header (common_target): Improve the tmpdir mechanisms. Support ${TMPDIR}
  • src/cmt_parser.cxx (dos_script_prefix): Suppress the -quiet option in the setup scripts now that errors are sent to stderr instead of stdout.
  • src/cmt_constituent.cxx (class constituents_action_iterator): Use cerr instead of cout
  • src/cmt_fragment.cxx (copy): Use cerr instead of cout
  • src/cmt_generators.cxx (java_file_action, build, build): Use cerr instead of cout
  • src/cmt_parser.cxx (do_awk): typo (do_filter, parse_arguments, parser): Use cerr instead of cout
  • src/cmt_use.cxx (install_library, get_all_clients, operate): Use cerr instead of cout
  • src/cmt_system.cxx (remove_file, remove_directory): Use cerr instead of cout
  • src/cmt_tag.cxx (action_apply): Use cerr instead of cout
  • src/cmt_symbol.cxx (create, build): Use cerr instead of cout
  • src/cmt_pattern.cxx (action): Use cerr instead of cout
  • src/cmt_syntax.cxx: general substitution of cout to cerr
  • src/cmt_error.cxx (get_error_name): format text only (print): Use cerr instead of cout
  • src/cmt_lock.cxx (check): format text only

2004-08-20 Christian Arnault <arnault@…> 229

  • mgr/requirements: Protect the cmt_installare_linkopts against ambiguous tag settings
  • src/cmt_awk.cxx (scan_path): First compress the path before calling the actual recursive scanner (scan_path): Completely revisit the scan algorithm to better account for directory structures and version.cmt files and package statements.
  • src/cmt_project.cxx (create_project): The project file parsing must occur after setting the project chain. This caused wrong tag propagation across the Project chain.

2004-08-04 Christian Arnault <arnault@…> 228

  • src/cmt_parser.cxx (do_create): use only compressed paths (do_remove): idem
  • src/cmt_use.cxx (get_cmtpath_and_offset): Need to compress the cmtpath to suppress .. patterns
  • src/cmt_system.cxx (compress_path): Compress the pattern /xxx/.. or xxx/.. instead of xxx/../

2004-07-01 <arnault@…> 227

  • src/cmt_version.h: Prepare tagging v1r16p20040701
  • src
    cmt_parser.h: idem
  • src
    cmt.h (class Cmt): Suppress version strategy
  • src
    cmt_parser.cxx (do_show_strategies): Suppress version strategy

2004-06-30 <arnault@…> 226

  • src
    cmt_version.h (CMTVERSION): Prepare tagging v1r16p20040630
  • src/cmt_generator.cxx (class WinDefAwk): Better generation of .def files for DATA

2004-06-24 <arnault@…> 225

  • src/cmt_use.cxx (need_new): fix a bug that impacted on the order of compatible use requests with different specifications.
  • src
    cmt_symbol.cxx (build): Add a debug print (SymbolValueList::show): only display actions with a non empty value
  • src
    cmt_use.cxx (add): improve the debug statements (no change to algo)
  • mgr
    requirements: Improve the removal operations for Windows in the cmtpath_patterns

2004-06-12 <arnault@…> 225

  • src
    cmt_parser.cxx (need_prototypes): Fix access to prototype mask of build strategy

2004-05-28 Christian Arnault <arnault@…> 224

  • Tagging v1r16p20040527
  • src/demo/demo1.cmt: Add a test for -target_tag option
  • src/cmt_parser.cxx (do_build_library_links): Transfered the code to install a lib symlink into cmt_use.cxx
  • src/cmt_use.cxx (same_dirs): Add a local helper function to check if two directory specifications point to the same location (install_library): Common local function to really create a symlink to a file either into ../$(tag) or into $(CMTINSTALLAREA)/$(tag)/lib (build_library_links): Build all the library links for a Use.
  • src/cmt_use.h (class Use): Add a function to build the library links (the code is extracted from Cmt::do_build_library_links () )

2004-05-27 <arnault@…> 223

  • src
    cmt_version.h (CMTVERSION): Prepare for real tagging v1r16p20040527
  • doc
    download.html: idem
  • doc
    CMTDoc.xml: Update the doc for the new -target_tag option
  • src
    cmt_constituent.cxx (add_for_action): Actions always have a target tag.
  • src
    demo
    demoA
    requirements: Add a -target_tag option to demoA target to test this feature.
  • fragments
    constituent: Construct or not a local tag makefile according to has_target_tag
  • fragments
    nmake
    constituent: id
  • fragments
    make_header: id
  • fragments
    nmake
    make_header: id
  • src
    cmt_generators.cxx (LibraryGenerator::build): (DocumentGenerator::build): Transmit m_HASTARGETTAG
  • src
    cmt_generator.cxx (reset): Initialize the new m_HASTARGETTAG variable.
  • src
    cmt_generator.h (class CmtGenerator): Add a m_HASTARGETTAG Variable to propagate the target_tag ability of the constituents
  • src
    cmt_constituent.cxx (show): Display the -target_tag option (class constituents_action_iterator): Parse the -target_tag option
  • src
    cmt_constituent.h (class Constituent): Add support for the new -target_tag option, to control the per-constituent generation of the target tag. So add a field has_target_tag

2004-05-25 Christian Arnault <arnault@…> 222

  • mgr/requirements: Use $(tag) instead of ${CMTCONFIG} in all cmtpath_pattern s
  • src/NMakefile.header (tags): idem
  • src/Makefile.header (tags): idem
  • fragments/nmake/make_header: idem
  • fragments/nmake/constituents_header (tags): idem
  • fragments/make_header (tags): idem
  • fragments/constituents_header (tags): prefix the tags macro with $(tag)

2004-05-25 <arnault@…> 221

  • src
    cmt_version.h (CMTVERSION): Prepare for tagging v1r16p20040525
  • mgr
    NMake (gendoc): Add a new target to generate html from xml

2004-05-25 <arnault@…> 220

  • mgr
    NMake (cmttag): Convert VisualC.nmake into VisualC_cmt.nmake
  • fragments
    nmake
    constituent: Generate tag file for the target

2004-05-18 <arnault@…> 219

  • mgr
    requirements: Add cmt_log.cxx in the source list
  • src
    cmt_tag.cxx (add): First replacements of debug messages using log
  • src
    cmt_parser.cxx (configure_tags): idem

2004-05-18 <arnault@…> 219

  • src
    cmt_log.h (class CmtLog): Introducing a centralized log message facility
  • src
    cmt_log.cxx: first implementation

2004-05-18 Christian Arnault <arnault@…> 218

  • fragments/nmake/make_header (tags): idem
  • fragments/nmake/constituent: Update to generate the target_XXX tag
  • src/cmt_parser.cxx (parse_arguments): Activate the tag target_<action> when "cmt do <action>" is run
  • fragments/constituent: Generate the target_${CONSTITUENT} tag

2004-05-17 Christian Arnault <arnault@…> 218

  • fragments/constituent: Propagate cmt_lock_pid for temporary files Generate a tag makefile specific to the constituent
  • fragments/constituents_header (first): Improve the printout for CMTCONFIG
  • fragments/make_header (tags): Generate the target_${CONSTITUENT} tag
  • mgr/requirements: Don't generate the tags macro from CMT. Only do it from the Makefile fragments.
  • src/cmt_generators.cxx (build): Add PACKAGE variable to individual constituent fragment

2004-05-13 Christian Arnault <arnault@…> 217

  • fragments/constituent: idem
  • fragments/constituents_header (cmt_final_setup): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_*
  • src/Makefile.header (tags): Implement a READONLY mode that generates all intermediate files in /tmp/CMT_* (common_target): Make use of the new -out=file option of the cmt build constituents_makefile command
  • src/cmt_generator.cxx (build_constituents_makefile): idem
  • src/cmt_generator.h (class Generator): Add the argument list to the build_constituents_makefile function
  • src/cmt_generators.cxx (build): idem
  • src/cmt_generators.h (class ConstituentsMakefileGenerator): Add the argument list to the build function
  • src/cmt_parser.cxx (configure): Chain configure_home, configure_user_context and configure_cmtpat (do_build_constituents_makefile): Propagate arguments to the Generator::build_constituents_makefile method (parse_arguments): Accumulate extra-arguments for build constituents_makefile command (parse_arguments): Restore the home,user_context and cmtpath configurations for the -tag=xxx option
  • src/cmt_project.cxx (set_build_strategy): Get tags from their names rather than from their pointer to fix a pointer bug (set_setup_strategy): idem
  • src/cmt_tag.cxx (action_apply): Adding several debug printouts

2004-05-10 <arnault@…> 216

  • doc
    CMTDoc.xml: Add a section on package semantics

2004-05-07 Christian Arnault <arnault@…> 215

  • mgr/requirements: Improve support for CEL Upgrade system_version_query_command for Darwin

2004-05-06 Christian Arnault <arnault@…> 215

  • src/cmt_tag.cxx (action_apply): apply_tag now supports the tag name given through a symbol expression
  • mgr/cmt_linux_version.sh: Support for Entreprise Linux
  • mgr/requirements: Create automatic tags from cmt_hardware cmt_system_version and cmt_compiler_version. Set the macro shlibsuffix for Win32
  • mgr/cmt_filter3_version.sh: Add a filtering procedure to keep 3 digits in the compiler version

2004-05-05 Christian Arnault <arnault@…> 214

  • src/cmt_syntax.cxx (parse_requirements): Close all scope sections once the requirements file is parsed.
  • src/cmt_use.cxx (close_scope_sections): Implement by clearing the vector of scope sections.
  • src/cmt_use.h (class Use): Add close_scope_sections to be called at the end of parsing a requirements file.

2004-05-03 Christian Arnault <arnault@…> 213

  • doc/ReleaseNotes.html: Fix typo
  • src/cmt_system.cxx (is_version_directory): Misunderstands version specifications of the form v1r2p (without a trailing number)

2004-05-03 Christian Arnault <arnault@…> 212

  • src/cmt_parser.cxx (configure): Configure home and user_context before configuring cmtpaths to associate projects with CMTHOME and CMTUSERCONTEXT (configure_cmt_path): Reset the project factory before creating all projects (configure_user_context): Add a debugging printout
  • src/cmt_system.cxx (get_cmt_paths): Remove the initialization of the project factory from there to transfer it to the caller (eg cmt_parser::configure_cmt_path)
  • src/cmt_parser.cxx (use_special_requirements): Expects a statically defined version "v0" for all special uses.

(configure_cmt_path): Associate a project with CMTHOME and CMTUSERCONTEXT to manage strategies.

  • src/cmt_use.cxx (show_all): Adapt to new naming convention: display the static version explicitly.
  • src/cmt_system.cxx (get_home_package): Convert CMTHOME package name from "CMTHOME context" to CMTHOME and manage a version through standard mechanisms (version is statically defined as v0) (is_home_package): Adpat to new naming convention (get_user_context_package): Idem for CMTUSERCONTEXT (is_user_context_package): Adapt to new naming convention

2004-04-30 Christian Arnault <arnault@…> 211

  • mgr/cmt_install_action.sh: Use /bin/pwd instead of raw pwd [Thanks to Traudl]
  • mgr/cmt_uninstall_action.sh: idem
  • mgr/cmt_make_shlib.sh: idem
  • mgr/cmt_make_shlib_common.sh: idem
  • fragments/install_includes_header: idem
  • mgr/requirements: Perform path_remove all before path_prepend in the cmtpath_pattern. Thus state two separate cmtpath_patterns.

2004-04-02 <arnault@…> 210

  • src
    cmt_project.cxx (scan_paths): Late patch for LynxOS limitation
  • src
    cmt_version.h: Prepare for v1r16

2004-03-29 <arnault@…> 209

  • mgr/Makefile: Set compiler options for CYGWIN

2004-03-27 Christian Arnault <arnault@…> 208

  • src/cmt_syntax.cxx (class KwdSetupStrategy): Implement setup strategy decoding for projects

2004-03-27 Christian Arnault <arnault@…> 207

  • src/cmt_system.h (class IProjectFactory): Suppress the configure entry point
  • src/cmt_system.cxx (get_cmt_paths): see below
  • src/cmt_project.h (class ProjectFactory): No longer need to configure from ProjectFactory
  • src/cmt_project.cxx (configure): Fix typo mixing prototypes and no_prototypes tags (add): Systematically create tags just after naming the project.
  • src/cmt_project.h (class Project): Only create tags once
  • src/cmt_syntax.h (class SyntaxParser): Introduce the different syntax parsing schemes for requirements files and projects files. (class SyntaxParser): Rename do_parse_requirements_text and do_parse_requirements_text into do_parse_text and do_parse_line.

2004-03-27 Christian Arnault <arnault@…> 206

  • src/cmt_syntax.cxx (action): Define a default implementation for project actions (class KwdBuildStrategy): Define a project action (class KwdProject): idem (class KwdSetupStrategy): idem
  • src/cmt_syntax.h (class Kwd): Introduce an action for project files (simply virtual) (class SyntaxParser): Restructure, cleanup and sort the entry points (class SyntaxParser): Introduce a map of project keywords
  • src/cmt_project.cxx (class ProjectReader): Start support for more statements in the project file
  • src/cmt_pattern.cxx (action): Augment the decoding logic to be more fault tolerant (add): Temporarily force the word quoting Add various debuggin printouts
  • src/cmt_parser.cxx (parser): Force the Use* argument type
  • src/cmt_cvs.cxx (class CvsImplementation): Install a constructor for setting default values (class CvsImplementation): Set default verse mode to false

2004-03-24 Christian Arnault <arnault@…> 206

  • src/cmt_cvs.cxx (class CvsImplementation): Reset default verbose mode to off.

2004-03-23 Christian Arnault <arnault@…> 205

  • src/cmt_pattern.cxx (class PatternCache): Introduce a cache for the get_paths operation. To save recursive executions.
  • src/cmt_pattern.h (class PatternList): Navigate in pattern list through PatternList
  • src/cmt_vector.h (cmt_vector): Trying to optimize vector by changing the frame size
  • doc/cmt-mode.el (cmt-mode-map): Revert completion key to <Esc>-<tab>

2004-03-22 Christian Arnault <arnault@…> 205

  • src/cmt_symbol.cxx (resolve_value): Optimize by checking if $%` exist in the text to expand. (create): Missing "alias" case
  • src/cmt_parser.cxx (do_show_action): Missing "alias" case (do_show_macro): idem
  • src/cmt_project.cxx (clear): Improve the clear function to ensure a proper initialization
  • src/cmt_system.cxx (get_home_directory): Use ::getenv rather than CmtSystem::getenv.

2004-03-19 Christian Arnault <arnault@…> 205

  • doc/emacs.html: doc on the new emacs mode for CMT
  • doc/table.html: include emacs.html

2004-03-19 Christian Arnault <arnault@…> 204

  • src/cmt_symbol.cxx (all_set): Only set non empty environment variables

2004-03-22 <arnault@…> 203

  • src
    cmt_parser.cxx (get_build_strategy): Create a local helper function to retrieve the build strategy from the current project. (get_setup_strategy): Idem for the setup strategy (parse_arguments): Add a protection against the killing -tag= with empty argument. (reach_current_package): Specify the use object (current use) (class StandardMacroBuilder): Isolate the construction of the CMTVERSION macro into a function (class StandardMacroBuilder): Setting of basic standard macros specific to packages is transfered to Use::fill_standard_macros (set_standard_macros): Apply all cmtpath_patterns independently of the build strategy.
  • src
    cmt_symbol.cxx (action): Expand the tag name to permit tag expressions containing macros.
  • src
    cmt_syntax.cxx (parse_requirements): Define the standard macros before reading the requirements file.
  • src
    cmt_use.cxx (fill_standard_macros): Implement it (move code from cmt_parser.cxx)
  • src
    cmt_use.h (class Use): Add fill_standard_macros function to fill in all standard macros for a given use before reading its requirements file.
  • mgr
    requirements: Add exclusions between basic tags Adapt cmtpath_pattern to new strategy management
  • fragments
    nmake
    constituents_header (tags): id.
  • fragments
    nmake
    constituent: id.
  • fragments
    constituent: Add -quiet to CMT command.

2004-03-19 <arnault@…> 203

  • src
    cmt_parser.cxx (get_build_strategy): Install a local accessor function to get the build strategy either from the current project or from m_current_build_strategy.

2004-03-16 <arnault@…> 202

  • src/cmt_parser.cxx (fill_for_branches): Add a protection against empty current project
  • src
    cmt_system.cxx (get_cmt_paths): Make use of the new CmtSystem::get_home_directory function
  • src
    cmt_parser.cxx (class CmtMountFilterParser): Create a FAwk parser to decode mout_filter files. (configure_current_dir): Make use of the CmtMountFilterParser class to parse cmt_mount_filter and .cmtrc files.
  • src
    cmt_system.cxx (get_home_directory): Implementation.
  • src
    cmt_system.h (class CmtSystem): Introduced to get ${HOME} in a portable way

2004-03-03 Christian Arnault <arnault@…> 201

  • src/cmt_parser.cxx (print_context): Use the new projet based setup strategy
  • src/cmt_cvs.cxx: suppress some verbose printouts

2004-02-25 <arnault@…> 200

  • src
    cmt_pattern.cxx (action): add use to warning messages
  • doc
    CMTDoc.xml: improvements
  • doc
    gendoc.py (Book.book_start): Set a padding on top of every rule
  • src
    cmt_cmtpath_pattern.h (class CmtPathPattern): No need to duplicate the vector of words.
  • src
    cmt_cmtpath_pattern.cxx (add): Construct the cmt statement as a one line statement
  • src
    cmt_cmtpath_pattern.h (class CmtPathPattern): Add an expansion line in the class
  • src
    cmt_pattern.cxx (add): Construct the cmt statement as a one line statement (expand): Create a temporary replacement for full line (action): relax the syntax by permitting spaces around the "=" sign. Add checks for the template name to be expected by the pattern.
  • src
    cmt_pattern.h (class Pattern): Add an expansion line in the class

2004-02-19 <arnault@…> 200

  • src
    cmt_project.cxx (configure): Preset the tags of the default strategies
  • src
    cmt_tag.cxx (show_definition): Suppress the display of the internal Default tag

2004-02-13 <arnault@…> 200

  • src
    cmt_parser.cxx (class StandardMacroBuilder): Fill <package>_project macro (class StandardMacroBuilder): Fill <package>_project macro
  • src
    cmt_project.cxx (get_current): No need to cd

2004-02-13 Christian Arnault <arnault@…> 199

  • src/cmt_symbol.cxx: implement the XxxRemoveRegexp
  • src/cmt_parser.cxx: idem
  • src/cmt_constituent.cxx: idem
  • src/cmt_symbol.cxx: idem
  • src/cmt_symbol.h (class Symbol): Change the action stored in Symbol into a new enum SymbolType.
  • src/cmt_symbol.cxx: idem
  • src/cmt_syntax.cxx (SyntaxParser): idem
  • src/cmt_parser.h (enum): Introduce regexp-based remove operations for symbols

2004-02-10 Christian Arnault <arnault@…> 198

  • src/cmt_parser.cxx (actor): Rename PackageCollector into ClientCollector

2004-02-09 Christian Arnault <arnault@…> 198

  • fragments/installer: add a / everywhere for consistency
  • src/cmt_symbol.cxx (build): Restrict warning on symbol overriding to show macro and show set

2004-02-13 <arnault@…>

  • doc
    CMTDoc.xml: Work on the doc towards v1r16
  • doc
    gendoc.py (Book.plain_char_data): Keep space characters from raw text (Book.book_start): Introduce style sheet.

2004-02-06 Christian Arnault <arnault@…> 197

  • src/cmt_cvs.cxx (class CvsImplementation): use -quiet for all internal cmt commands
  • src/cmt_string.cxx (erase): Replace strcpy by an explicit loop
  • src/cmt_cvs.cxx: Added -n and -v options to support simulation and verbose modes
  • src/cmt_system.cxx (execute): Change the status value. Back to the Unix standard 0 = ok
  • fragments/nmake/library: idem
  • fragments/library: Install the dependency to the ${CONSTITUENT}stamps macro like for application
  • src/cmt_system.cxx (reduce_file_separators): Improve the reduction algorithm

2004-02-05 <arnault@…> 196

  • src
    cmt_parser.cxx: Remove cmtpath database from Cmt class Rename FileScanner into PathScanner and transfer it to CmtSystem (configure_cmt_path): Use the ProjectFactory to create Projects from CMTPATH (do_broadcast): Projects now fill the selections. (do_show_clients): Projects used to search clients (do_show_packages): idem (do_show_path): idem (do_show_strategies): Projects reached to get strategies (do_show_versions): Projects used to search versions (parse_arguments): +path managed by adding a project (reach_current_package): Definitively suppress "current package" source of CMTPATH
  • src
    cmt_use.cxx (class UseProjectAction): Intoduce an action pattern to iterate into Project database (move_to): Use the Project::broadcast mechanism to locate the package.
  • src
    cmt_use.h (class Use): Make UseProjectAction friend of class Use
  • src
    cmt_system.cxx (add_cmt_path): (add_cmt_paths_from_text): (add_cmt_paths): (get_cmt_paths): Use IProjectFactory
  • src
    cmt_system.h (class IProjectFactory): Add abstract interface for creating projects form cmtpath entries (class CmtSystem): Change the API to using IProjectFactory
  • src
    cmt_project.cxx: Implement project management
  • src
    cmt_syntax.cxx (class KwdBuildStrategy): (class KwdSetupStrategy): Change strategies from new masks and into Projects
  • src
    cmt_parser.h (enum): Change the masks for strategies to improve the reliability of exclusive options, and inheritance between projects.
  • src
    cmt_cmtpath_pattern.cxx (class CmtPathPatternProjectAction): Introduce new actor pattern for broadcasting to project database. Used to apply all cmtpath_patterns (apply): Expand the <project> parameter (expand): idem
  • src
    cmt_cmtpath_pattern.h (class CmtPathPattern): Add project argument to expand
  • src
    cmt_awk.h (class PathScanner): Add the PathScanner class (imported from cmt_parser.cxx)
  • src
    cmt_awk.cxx (PathScanner):
  • src
    cmt.h (class Cmt): Transfer cmtpath management to Project
  • doc
    CMTDoc.xml:
  • src
    cmt_syntax.cxx (class KwdBuildStrategy):
  • src
    cmt_project.h (class Project):
  • src
    cmt_project.cxx (set_build_strategy):
  • src
    cmt_parser.cxx (set_standard_macros): Rename X_install_area symbols into X_installarea
  • src
    cmt_install_area.cxx: Rename X_install_area symbols into X_installarea
  • src
    cmt_install_area.h: Rename X_install_area symbols into X_installarea
  • mgr
    requirements: Setting Project-oriented settings for installation area patterns.

2004-01-27 <arnault@…> 195

  • fragments
    nmake
    installer: Fixes from Pere.

2004-01-20 <arnault@vmlinux> 194

  • Try on CVStrac ticket #1
  • src/cmt_symbol.cxx (action): Ensure that the constituents macro is always private.
  • src/cmt_parser.cxx (reach_current_package): Fix missing configuration bit. Cures the bug of missing <PACKAGE>VERSION when using cmt -use=...

2004-01-17 <arnault@…@NB-ARNAULT> 193

  • src
    cmt_syntax.cxx (CommandParser): Add helps for create_project command
  • src
    cmt_parser.h (enum): Add action_create_project
  • src
    cmt.h (class Cmt): Add do_create_project function

2004-01-13 <arnault@vmlinux> 192

  • src/cmt_parser.cxx (dos_script_prefix): Suppress spaces before continuation character in DOS format

2004-01-13 Christian Arnault <arnault@…> 191

  • src/cmt_symbol.cxx (add_value_to_list): Fix for not discarding too much value_lists

2004-01-10 <arnault@vmlinux> 190

  • src/cmt_syntax.cxx (class KwdBuildStrategy): Start getting the strategy from project(experimental??)
  • src/cmt_project.cxx (find_by_cmtpath): We also accept paths specified using a substring (configure): Configure in reverse order (action): Add experimental -index and -select options
  • src/cmt_install_area.cxx (setup_current_install_area): Make CMTINSTALLAREA a macro instead of a set

2004-01-08 Christian Arnault <arnault@…> 189

  • src/cmt_use.cxx (reach_package): Fix bug in version comparison when working in non-version-directory mode
  • mgr/requirements: use $(CMTCONFIG) instead of $(tag) for setting PATH etc.. in cmtpath_pattern

2003-12-19 Christian Arnault <arnault@…> 188

  • src/cmt_use.h (class Use): Remove the project relationship between Use and Project

2003-12-18 <arnault@…> 187

  • src
    cmt_constituent.h (class Constituent):
  • src
    cmt_constituent.cxx (add_for_action): Implement the constituent equivalent to actions (parse_all): Generate the constituent equivalents for all macros
  • fragments
    cmt_action_runner:
  • fragments
    cmt_action_runner_header:
  • fragments
    nmake
    cmt_action_runner_header: The new generic make fragment for running actions
  • fragments
    nmake
    dependencies:
  • fragments
    dependencies: Suppress dependency computation when the QUICK macro is defined
  • fragments
    nmake
    library:
  • fragments
    library:
  • fragments
    application:
  • fragments
    nmake
    application: Add dependency to requirements to rebuild application
  • src
    cmt_parser.cxx (do_config): Suppress install area cleanup action from cmt config (do_setup): idem

2003-12-16 <arnault@…> 187

  • src
    cmt_constituent.cxx (class constituents_action_iterator): Added syntax check on -xxx options for constituents
  • src
    cmt_parser.cxx: Implement Action support. Added: (to support Actions)

do_do do_show_action do_show_action_names do_show_action_value do_show_actions

removed: (after introducing Scope Sections)

get_scope set_scope m_scope

  • src
    cmt_parser.h (enum): Added

CommandAction CommandEndPrivate CommandEndPublic

action_show_action_xxx

  • src
    cmt_constituent.cxx (class constituents_action_iterator): Added a syntax checking action.
  • src
    cmt_use.cxx:
  • src
    cmt_use.h (class Use): Support Scope Section concept. A Use object holds a vector of ScopeSections Added functions

push_scope_section pop_scope_section get_current_scope

Changed attributes:

scope -> initial_scope

  • src
    cmt_syntax.cxx (class KwdAction): New keyword (class KwdEndPrivate): new keyword (class KwdEndPublic): new keyword (class KwdPrivate): Ignore this pattern on current use (class KwdPublic): Ignore this pattern on current use (CommandParser): Update help texts for new action concepts
  • src
    cmt_symbol.cxx (class ActionBuilder): new Action objects are implemented as a new category of symbols. Therefore all mechanisms have been extended to support the new concept.

old scope attribute is replaced by accesses to Scope Sections from the Use objects.

  • src
    cmt_symbol.h (class Symbol): Suppress useless scope attribute and valid () function
  • src
    cmt_scope_section.cxx: New Support for Scope Sections
  • src
    cmt_scope_section.h: New Support for Scope Sections
  • src
    cmt_fragment.cxx (action): Switch to using Scope Sections
  • src
    cmt.h (class Cmt): Added: (to support Actions)

do_do do_show_action do_show_action_names do_show_action_value do_show_actions

removed: (after introducing Scope Sections)

get_scope set_scope m_scope

  • mgr
    requirements: Adding support for Scope sections to handle private or public sections. Now private and public sections can be ended with the new keywords end_private and end_public. Ending keywords switch back to the previous scope active before the most recent opening keyword.

Adding cmt_scope_section.cxx to the sources of the cmt application.

2003-12-12 Christian Arnault <arnault@…> 186

  • mgr/cmt_install_action.sh (a): Improve checking of pwd WRT CMTINSTALLAREA
  • mgr/cmt_uninstall_action.sh (a): idem
  • mgr/cmt_mount_filter: Restore definitions
  • src/cmt_syntax.cxx (do_parse): Evolution of the requirements file syntax: apply_pattern can be omitted (ie. pattern names are understood as extensions to the basic CMT language)
  • src/cmt_pattern.cxx (action): Add error detection when applying the wrong pattern name Prepare for the next change of the syntax which accepts pattern names as plain CMT keywords
  • src/cmt_parser.cxx (find_in_cmt_paths): Fix construction of the <package>_cmtpath when symlinks exist along pwd

2003-12-08 Christian Arnault <arnault@…> 186

  • src/cmt_parser.cxx (do_build_library_links): Fix : should make use of the library_prefix and suffix.

2003-12-06 Christian Arnault <arnault@…> 185

  • src
    cmt_syntax.cxx (do_parse): When a keyword is not found, expect an implicit pattern application.
  • src
    cmt_pattern.cxx (action): Add a protection against pattern not found Support lines starting with pattern-name or with apply_pattern.

2003-11-21 Christian Arnault <arnault@…> 185

  • mgr/cmt_install_action.bat: Typo
  • mgr/requirements: Typo in macro cmt_uninstalldir_action

2003-11-20 Christian Arnault <arnault@…> 184

  • src/cmt_version.h (CMTVERSION): Preparing new tag v1r14p20031120
  • src/cmt_syntax.cxx (CommandParser): Help on cmt build CMT_pacman
  • src/cmt_parser.cxx (parse_arguments): Implement cmt build CMT_pacman command to generate the effective pacman manifest file for CMT.
  • src/cmt.h (class Cmt): Add Cmt::do_build_CMT_pacman function
  • src/cmt_parser.h (enum): Add cmt build CMT_pacman command
  • src/setup.zsh: Upgrade zsh completion settings
  • src/setup.tcsh: Upgrade tcsh completion settings
  • fragments/group (all_groups): Add a new standard macro $(<group>_dependencies) to specify global dependencies for a group.
  • fragments/constituents_trailer (binclean): Dont remove *.make* when cleaning. Add a message for binclean.
  • src/cmt_use.cxx (add): Improve the warning message for package not found (reduce_path): Display the package path using a reusable format (used by show fragments)

2003-11-19 Christian Arnault <arnault@…> 183

  • src/cmt_constituent.cxx (class constituents_action_iterator): Empty group means no group.
  • src/cmt_parser.cxx (install_library): Factor out the basic operation for installing a library (do_build_library_links): Make use of the new install_library operation. Add special operation for Darwin to install bundles
  • src/cmt_syntax.cxx (class KwdBuildStrategy): Fix cumulative settings of the strategies (class KwdSetupStrategy): idem
  • mgr/cmt_make_shlib_common.sh: Add support to generate bundles for Darwin

2003-11-14 Christian Arnault <arnault@…> 182

  • src/cmt_install_area.cxx (setup): Continue setup even without current installation area (config): Apply all cmtpath_patterns even without current installation area (build_current_install_area): Make use of Cmt::find_in_cmt_paths
  • src/cmt_parser.cxx (configure_current_cmtpath): Make use of the new find_in_cmt_paths function (do_setup): Always call CmtInstallAreaMgr::setup even if current installation area is empty (find_in_cmt_paths): first implementation (get_cmt_path_pwds): first implementation (class StandardMacroBuilder::fill_for_use_cmtpath): Make use of the new find_in_cmt_paths function
  • src/cmt.h (class Cmt): Adding find_in_cmt_paths to locate a path from all specified CMTPATH entries (considering the dual flavours of each entry) Adding get_cmt_path_pwds to access alternal values of cmtpath entries

2003-11-12 Christian Arnault <arnault@…> 181

  • fragments/nmake/constituents_trailer (binclean): Fix typo for Windows

2003-11-06 Christian Arnault <arnault@…> 180

  • mgr/CMT.pacman: Add generic pacman file. All instances of the "<version>" pattern need to be substituted by the effective version of CMT to make it a real pacman file

2003-10-29 Christian Arnault <arnault@…> 179

  • tagging v1r14p20031027
  • mgr/cmt_build_release.sh (version): Add the rebuilding of Linux version at Lyon (without getting the result back)
  • doc/documents.html: Install release notes from the documents page
  • doc/ReleaseNotes.html: Create ReleaseNotes web page (suppress ReleaseNotes.txt)
  • mgr/Makefile (docs): Add installation of ReleaseNotes.html

2003-10-27 Christian Arnault <arnault@…> 178

  • src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031027
  • mgr/requirements: cmt_installarea_prefix must be defined externally to the cmtpath_pattern.

2003-10-22 Christian Arnault <arnault@…> 177

  • src/cmt_version.h (CMTVERSION): prepare tagging of v1r14p20031022
  • mgr/cmt_installdir_excludes.txt: New file containing the list of patterns to exclude in installing a directory
  • fragments/nmake/install_includes_header (install): Add support for exclude files
  • mgr/cmt_installdir_action.bat: Add support for exclude files
  • mgr/cmt_uninstalldir_action.bat: Add tests
  • mgr/cmt_uninstall_action.bat: Add tests
  • mgr/cmt_install_action.bat: Add tests
  • src/cmt_parser.cxx (set_standard_macros): First define the current installation area before defining all other standard symbols (and making the final parsing of constituents)
  • src/cmt_install_area.cxx (setup_current_install_area): Implement the definition of the CMTINSTALLAREA symbol (setup): Differentiate the setting of CMTINSTALLAREA symbol from applying cmtpath patterns
  • src/cmt_install_area.h (class CmtInstallAreaMgr): Split setup in two parts : first define the CMTINSTALLAREA symbol, then apply all cmtpath patterns

2003-10-21 Christian Arnault <arnault@…> 176

  • mgr/cmt_build_release.sh: Start a procedure for remotely building a CMT release
  • mgr/cmt_installdir_action.bat: Added test on existing result.
  • fragments/nmake/install_includes_header (install_dir): Use $() instead of ${}
  • mgr/requirements: Add definition for cmt_installdir_action
  • src/cmt_parser.cxx (class StandardMacroBuilder): Generate <package>_cmtpath and <package>_offset macros also for the current package
  • src/cmt_system.cxx (remove_directory): Add a # for error messages (remove_file): idem

2003-10-14 <arnault@vmlinux> 175

  • src/cmt_version.h (CMTVERSION): Prepare tagging v1r14p20031014
  • src/cmt_use.cxx (compare_versions): Add a function to compare two version strings. (reach_package): Add the effective version checking for no_version_directory style when version.cmt exists.
  • doc/CMTDoc.xml: Suppress version strategy documentation since this mechanism is not really maintained.
  • src/cmt_use.cxx (reach_package): Add effective check of version even in no_version_directory style

2003-10-13 <arnault@vmlinux> 175

  • fragments/* : Add start and end markers to all make fragments.

2003-10-09 <arnault@…> 175

  • src
    cmt_parser.cxx (do_broadcast): Suppress the catching of return status=2 for last executed command

2003-10-02 Christian Arnault <arnault@…> 175

  • src/cmt_system.cxx (cd): putenv requires that the string is static !!

2003-10-01 <arnault@vmlinux> 174

  • src/cmt_use.cxx (class use_action_iterator): Force auto_imports to On when context is unspecified.
  • src/cmt_use.h (class Use): Add a new set_selected_version function for switching from one use to another one, better wrt various criteria. When switching, m_index and auto_imports are transfered from the unselected to the newly selected.

2003-09-26 <arnault@vmlinux> 173

  • src/cmt_system.cxx (cd): Change the PWD environment variable, in case it's not done by the underlying OS

2003-09-24 Christian Arnault <arnault@…> 172

  • src/cmt_use.cxx (show_cycles): optimizing a bit (find_index): idem (set_auto_imports_state): idem (move): idem (reorder): idem (unselect_all): idem (get_selected_version): idem (get_paths): Improve the algorithm to save multiple vector manipulations
  • src/cmt_parser.cxx: Follow all symbol->build_macro_value by Symbol::expand to really expand all possible macro references. This caused a bug when inline re-confirguring CMTUSERCONTEXT (etc.) with a value containing a ref to another symbol.
  • mgr/Makefile (cpp): Add -O2 option for Linux platform (cpp): Add support for profiling setup for LinuxProf platform

2003-09-18 <arnault@vmlinux>

  • mgr/cmt_uninstall_action.sh (a): Fix the consistency check of pwd vs CMTINSTALLAREA
  • mgr/cmt_install_action.sh (a): idem

2003-09-18 Christian Arnault <arnault@…> 171

  • mgr/Makefile (cpp): Set IGNORE_PWD for OSF1 and LynxOS
  • src/cmt_system.cxx (pwd): Add an option to ignore PWD since on some machines this does not work well with the chdir function.
  • doc/CMTDoc.xml: improvements

2003-09-17 Christian Arnault <arnault@…> 170

  • src/cmt_parser.cxx (class StandardMacroBuilder): Add the production of the new macros <package>_cmtpath <package>_offset (class StandardMacroBuilder): Implement the generation of <package>_cmtpath <package>_offset macros
  • fragments/constituent: Add the same dependency list onto constituent makefile fragment than onto the constituent itself so as to enforce the build order also for make fragments.
  • src/cmt_use.cxx (get_paths, get_selected_version): Remove static declaration for a local variable (caused a serious bug !!) Lots of debug prints improved.

2003-09-16 Christian Arnault <arnault@…> 170

  • src/cmt_symbol.cxx (action): fix setup_script calling mechanism in no_version style : should get it from ../cmt rather than ../mgr

2003-09-16 <arnault@vmlinux> 169

  • mgr/cmt_uninstall_action.sh (full_source_name): idem
  • mgr/cmt_install_action.sh: add a protection when current directory is outside any installation area

  • mgr/NMake (CMTINSTALLAREA): idem (cmttag): Improve the filter for VisualC tag file generation (required to remove all location specific info) Change the target from cmt to cmttag (ie this is NO LONGER done by default!!)
  • mgr/Makefile (CMTINSTALLAREA): Inhibit all INSTALLAREA mechanism when rebuilding cmt itself
  • src/cmt_parser.cxx (get_current_style): First Implementation (dos_script_prefix): Use current_style rather than current_structuring_style to select path pattern
  • src/cmt.h (class Cmt): Add get function to access m_current_style

2003-09-16 Christian Arnault <arnault@…> 168

  • src/cmt_use.cxx (find_index): Add a protection when a package was not found

2003-08-14 Christian Arnault <arnault@…> 168

  • src/cmt_generators.cxx (LibraryGenerator::build): new syntax for get_all_files (DocumentGenerator::build): idem (MSDEVGenerator::build_project): idem (VSNETGenerator::build_project): idem (DependencyGenerator::build): idem
  • src/cmt_generator.h (class CmtGenerator): Add an argument for selection patterns.
  • src/cmt_generator.cxx (get_all_files): Apply the selection patterns. Support wilcarded suffixes (*.*)
  • src/cmt_generators.cxx (DocumentGenerator::build): Add path compression when analyzing file names. (ConstituentsMakefileGenerator::build): suppress unused declarations
  • src/cmt_constituent.cxx (show): display select paterns (class constituents_action_iterator): Handle the new -k= option for selection pattern (clear): clear selection patterns
  • src/cmt_constituent.h (class Constituent): Add select regexps similar to excludes

2003-08-13 Christian Arnault <arnault@…> 168

  • src/cmt_use.cxx (show_all): Standardize the output format of show uses to ensure that we always have in the last part:

use <package> <version> [<offset>] (<path>) (<qualifier>) (...)

or (with -quiet)

use <package> <version> [<offset>]

Also fix a bug when trying to remove offset from real_path...

2003-08-11 Christian Arnault <arnault@…> 167

  • mgr/Makefile (bintar): Dynamically gets the list of binaries available of this machine. Then constructs CMTDownload.html accordingly.
  • doc/CMTDownload1.html: First part of CMTDownload.html
  • doc/CMTDownload2.html: Last part of CMTDownload.html
  • doc/installations.doc: upgrade list of porting machines
  • src/cmt_version.h (CMTVERSION): new patch tag v1r14p20030811
  • src/cmt_use.cxx (show_sub_uses): Display the original request instead of the registered sub use (which may be different than the request)
  • src/cmt_use.h (class Use): Add context_use in the argument list to display the use that created this request

(class Use): Add a vector of the real requests (well only those that ended up in a sub use)

  • src/cmt_use.cxx (need_new): Dispay the incompatibility message in need_new rather than in the BestFitSelector, since corresponding uses may have been discarded then.
  • src/cmt_system.cxx (is_version_directory): return all -1 values when version specification is just '*'

2003-08-08 <arnault@…> 166

  • mgr
    requirements: Tuning pour CYGWIN

2003-08-06 Christian Arnault <arnault@…> 165

  • src/cmt_symbol.cxx (create): Same reasons (LynxOS) => convert a static array of strings into a switch statement (not quite elegant). May move back in some future if problem is solved on LynxOS.
  • src/cmt_syntax.cxx (CommandParser): Initialze the new help_texts by filling in a vector rather that from a static array of cmt_string (too bad...)
  • src/cmt_syntax.h (class CommandParser): Need to redefine the management of static arrays of objects due to a bug in c++ compiler on LynxOS... A Workaround is found by transfering static arrays into the singleton => m_helps and m_help_texts

2003-08-06 <arnault@…> 164

  • src
    cmt_parser.cxx (dos_script_prefix): Adapt the generation of setup.bat scripts so as to account for the new DOS device constructs

    xxx
    aaa
  • src
    setup.bat: Add /D to the cd command to support CMT on a different device

2003-08-05 <arnault@…> 163

  • src/cmt_parser.cxx (dos_script_prefix): remove device from path when device takes the conventional form. new form (

    xxx
    ) is not yet handled.
  • src/cmt_install_area.cxx (config): Don't produce output messages in quiet mode

2003-08-05 Christian Arnault <arnault@…> 163

  • src/cmt_system.cxx (pwd): Make use of the PWD environment variable when it is defined to detect current directory in place of getcwd (keep gettcwd when PWD is not defined or on WIN32)
  • fragments/install_includes_header (install): Avoid useless re-installation of include file area
  • src/cmt_use.cxx (add): When m_index is exchanged between two uses, the discarded flag must be upgraded accordingly (class use_action_iterator): Suppress trailing slash characters on package offset specifications.
  • src/cmt_parser.cxx (class StandardMacroBuilder): Define package_cmtpath instead of just cmtpath as the standard macro, in order to avoid conflict with CMTPATH env. var. on Windows. (do_broadcast): Define the pattern <package_cmtpath> instead of <cmtpath> for broadcast command templates
  • src/cmt_use.cxx (need_new): first consider the already registered use (add): Fix a bug in the algorithm for checking registrations of uses. (class use_action_iterator): Remove trailing slashes from prefix specifications

2003-06-20 Christian Arnault <arnault@…> 162

  • src/cmt_version.h: new patch id 20030620
  • mgr/Makefile (gendoc): Add a target to convert XML doc into HTML (so far only available at CERN)
  • doc/gendoc.py (Book.plain_char_data): improvements.
  • src/cmt_parser.cxx (do_broadcast): Fix evaluation of <cmtpath> <package_offset> in -global mode

2003-06-19 <arnault@…> 161

  • src/cmt_system.cxx (add_cmt_path): Fix cmtpath checking for devices on Windows

2003-06-19 Christian Arnault <arnault@…> 160

  • fragments/nmake/library_no_share: Use the @<< syntax of nmake to cope with long list of OBJS
  • fragments/nmake/application: idem
  • fragments/nmake/library: idem

2003-06-18 Christian Arnault <arnault@…> 159

  • mgr/requirements: Use ln -s for the cmt_install_area_command
  • fragments/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
  • fragments/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
  • fragments/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
  • fragments/nmake/application (install_dir): Use $(tag) instead of $(CMTCONFIG)
  • fragments/nmake/library (install_dir): Use $(tag) instead of $(CMTCONFIG)
  • fragments/nmake/library_no_share (install_dir): Use $(tag) instead of $(CMTCONFIG)
  • mgr/requirements: use cp -s and not cp -l to create symlinks

2003-06-16 Christian Arnault <arnault@…> 158

  • src/cmt_version.h (CMTVERSION): New Tag 20030616
  • src/Makefile.header (common_target): Make use of the mktemp shell function
  • doc/CMTDoc.xml: Doc
  • src/cmt.h (class Cmt): Add get_current_cmtpath and get_current_offset functions.
  • src/cmt_parser.cxx (configure_current_cmtpath): Implement (set m_current_cmtpath and m_current_offset)
  • src/cmt.h (class Cmt): Add configure_current_cmtpath function
  • src/cmt_parser.cxx (class StandardMacroBuilder): Add standard macros cmtpath and package_offset (do_broadcast): Add substitutions of <package>, <version>, <cmtpath>, <package_offset> (class StandardMacroBuilder): Set m_current_cmtpath and m_current_offset
  • src/cmt.h (class Cmt): Adding current value for cmtpath and offset
  • mgr/requirements: Use symlink instead of cp as default transfer action into installation area

2003-06-12 Christian Arnault <arnault@…> 157

  • src/cmt_pattern.cxx : fix a bug in ApplyPattern::action: macros should NOT be expanded when parsing the statement. Only the pattern name may be expanded. Second fix: when a pattern is re-defined, the Pattern object must be properly reset.

2003-06-04 <arnault@vmlinux> 156

  • src/cmt_version.h (CMTVERSION): Tag the version to v1r14p20030605
  • mgr/build_from_rpm.sh (tempdir): Add a shell script for testing the source kit (not complete)
  • mgr/install_from_rpm.sh: Add a shell script for testing the generated binary RPM.
  • mgr/Makefile (rpm): Add the rpm target to build RPMs into ../rpm
  • mgr/CMT.spec: Add an RPM spec file for CMT. Only the binary kit has been tested successfully
  • doc/install.html: Document the usage of the CMT RPM
  • src/cmt_parser.cxx (dos_script_prefix): Use %TEMP% instead of %HOMEDRIVE%%HOMEPATH% for temporary setup files on Windows

2003-06-04 Christian Arnault <arnault@…> 155

  • fragments/install_includes_header (install): Fixed wrong test on CMTINSTALLAREA
  • src/cmt_syntax.cxx (parse_requirements): Transfer the scoping algorithm to parse_requirements_text so that patterns supplying private statements will work nicely. (parse_requirements_text): see above

2003-05-23 Christian Arnault <arnault@…> 154

  • src/Makefile.header: removing apparently obsolete MAKEFLAGS filtering mechanisms on -j option
  • src/setup.zsh: Add cmt show cycles zsh expansion
  • src/cmt_parser.cxx (parser): Add cmt show cycles parsing and support
  • src/cmt_syntax.cxx (CommandParser): Add show_cycles info
  • src/cmt_parser.h (enum): Add action_show_cycles
  • src/cmt.h (class Cmt): Add cmt show cycles command to display use cycles

2003-05-22 Christian Arnault <arnault@…> 153

  • src/cmt_std.h: Suppress include ios for new header style
  • src/cmt_parser.cxx (parse_arguments): Install a -private option to the show_use_paths action. When -private is present on the command line then the private uses are reached. (parse_arguments): Make the --private or --public option a global option to control on all CMT commands whether we reach or not the private uses.
  • src/cmt_use.cxx (class use_action_iterator): Detect the new scope filtering mode to actually reach the private uses
  • src/cmt_parser.cxx: Set the scope filtering mode when appropriate (cmt_show_uses, cmt_show_use_paths, cmt_broadcast, cmt_set_versions, cmt_show_setup)
  • src/cmt.h (class Cmt): Add m_scope_filtering_mode attribute
  • src/cmt_parser.cxx (get_scope_filtering_mode): Implement the new function (set_scope_filtering_mode): Implement the new function
  • src/cmt.h (class Cmt): Add set_scope_filtering_mode function (class Cmt): Add get_scope_filtering_mode function
  • src/cmt_parser.h (enum): Add a scope filtering mode to block or reach private uses

2003-05-21 Christian Arnault <arnault@…> 153

  • src/cmt_use.cxx (get_all_clients): Public interface to private get_all_clients (get_all_clients): Actual recursive implementation for getting all paths to a given client
  • src/cmt_use.h (class Use): Implement two new get_all_clients functions to acquire all paths to a given client of a package (one public with simple interface and one private with temporary storage).
  • src/cmt_use.cxx (class use_action_iterator): traverse complete use graph for action_show_use_paths
  • src/cmt_std.h: Set new C++ header style on Linux
  • src/setup.zsh: Add cmt show use_paths to auto-expansion definition
  • src/cmt_syntax.cxx (CommandParser): Add help for cmt show use_paths (get_help_texts): idem
  • src/cmt_parser.cxx (do_show_use_paths): implement do_show_use_paths function (parse_arguments): parse cmt show use_paths <package> (parser): idem
  • src/cmt.h (class Cmt): add do_show_use_paths function
  • src/cmt_parser.h (enum): Start implementing a new feature: cmt show use_paths <package> to display all possible paths between the current package and the specified package.

2003-05-19 <arnault@…> 152

  • mgr
    cmt_linux_version.sh: add a script for querying linux version for various distributions (contribution from Clark McGrew <clark.mcgrew@…>)
  • src
    cmt_symbol.cxx (show_macro): re-apply suppress_OS_delimiter when generating the tag makefile, but only on WIN32 context.
  • src
    cmt_pattern.cxx (class apply_pattern_action_iterator): Add action iterator to expand macros before parsing line.
  • src
    cmt_fragment.cxx (class fragment_action_iterator): Add action iterator to expand macros before parsing line.
  • src
    cmt_fragment.cxx (action): Hide make_fragments in private sections like macros
  • mgr
    requirements: Introduce the generic Unix tag for all Unix platforms

  • src
    cmt_parser.cxx (dos_script_prefix): Factor out the writing of DOS setup and cleanup scripts.
  • mgr
    INSTALL.bat: No longer need nmake to generate the setup.bat script of CMT, thanks to the %~d0%~p0 mechanism (copy from src is enough).
  • src
    setup.bat: Install a generic mechanism for finding the current drive letter (unfortunately this mechanism does not work in any possible Unix shell)
  • src
    cmt_parser.cxx (install_setup_scripts): Apply the drive letter mechanism to setup scripts

2003-05-17 <arnault@…> 151

  • mgr
    requirements: Typo in the cmtpath_pattern : use_includes

2003-05-14 <arnault@…> 150

  • src
    cmt_parser.cxx (restore_all_tags): Bug in managing -tag=<taglist> argument due to the separator in m_extra_tags : force a separator before and after all tags in the list (parse_arguments): idem (print): idem

2003-05-13 <arnault@…> 149

  • fragments/tex: install correction from Marie Anne

2003-05-12 <arnault@…> 148

  • mgr/cmt_linux_version.sh: Adding a script to retrieve Linux version and distribution
  • mgr/requirements: Add declaration of install_includes fragments
  • fragments/install_includes_header: Make fragment for installing include directory but only for those following the standard pattern of ../<package>
  • fragments/install_includes:
  • fragments/nmake/install_includes_header:
  • mgr/cmt_installdir_action.bat: Special treatment of directory installation
  • mgr/cmt_uninstalldir_action.bat:
  • fragments/constituents_trailer (remove_library_links): Add a remove_library_links target
  • fragments/nmake/constituents_trailer: idem
  • fragments/constituent (uninstall): Suppress dependencies for uninstall target
  • fragments/nmake/constituent (uninstall): idem

2003-05-11 <arnault@…> 147

  • mgr
    requirements: Add search libpath to installarea for WIN32
  • fragments
    nmake
    library (install): bug (typo) in target names
  • mgr
    cmt_install_action.bat: use rem comments instead of #
  • mgr
    cmt_uninstall_action.bat: idem
  • mgr
    NMake (cmt): Filter out the include and lib definitions in VisualC.nmake for cmt itself.
  • src
    cmt_parser.cxx (scan_path): Suppress unused variable
  • src
    cmt_std.h (OLD_HEADERS): Adopt new header style for WIN32
  • mgr
    requirements: Add compiler option for exception handling in VisualC

2003-05-05 Christian Arnault <arnault@…> 146

  • src/cmt_use.cxx (add): Set the warning for package not found a real warning.
  • src/cmt_parser.cxx (do_setup): Change the info message to be displayed only when appropriate

2003-05-05 <arnault@…> 145

  • src/cmt_version.h: v1r14
  • doc/CMTDoc.xml: Improve the doc
  • doc/gendoc.py (Book.syntax_start): Add an attribute name in syntax for avoiding name conflicts
  • fragments/nmake/jar (install):
  • fragments/nmake/java_header (install):
  • fragments/nmake/library_no_share (install):
  • fragments/nmake/library (install):
  • fragments/nmake/application (install):
  • fragments/jar (install):
  • fragments/java_header (install):
  • fragments/library_no_share (install):
  • fragments/library (install):
  • fragments/application (install): apply the centralized scripts
  • mgr/cmt_uninstall_action.bat:
  • mgr/cmt_install_action.bat:
  • mgr/cmt_uninstall_action.sh:
  • mgr/cmt_install_action.sh: Scripts for doing (un)installation into the current installation area

2003-05-02 Christian Arnault <arnault@…> 144

  • fragments/application (uninstall, install):
  • fragments/library (uninstall, install):
  • fragments/library_no_share (uninstall, install):
  • fragments/java_header (uninstall, install):
  • fragments/jar (uninstall, install):
  • fragments/constituent (install, uninstall): Add (un)install actions idem for nmake

2003-05-02 <arnault@…> 143

  • doc/gendoc.py : Create a new mechanism for generating HTML documentation from an XML representation.

2003-04-30 Christian Arnault <arnault@…> 142

  • src/cmt_parser.cxx (do_show_strategies): Display the Setup strategy
  • src/cmt_syntax.cxx (class KwdSetupStrategy): Decode the [no_]cleanup option for the setup_strategy in requirements file
  • src/cmt_parser.cxx (parse_arguments): Decode the -no_cleanup option (do_setup): Apply the cleanup only when the setup strategy permits it (do_config): idem
  • src/cmt_parser.h (enum): Add NoCleanup possibility to the SetupStrategy

2003-04-16 Christian Arnault <carnault@…> 141

  • src/cmt_parser.cxx (run): Bug in PackageCollector::run current directory missed the package name. (for cmt show clients)

2003-04-12 <arnault@…> 140

  • src
    cmt_generators.cxx: Add excludes to all calls to get_all_files
  • src
    cmt_generator.h (class CmtGenerator): Add exclude expressions
  • src
    cmt_constituent.cxx (class constituents_action_iterator): Implement the -x=<pattern> option to the constituent to exclude patterns. Create regexps for each pattern. (show): Show excludes
  • src
    cmt_constituent.h (class Constituent): Add a vector of regexp for exclude specs.
  • src
    cmt_regexp.cxx (set): Implement the set function.
  • src
    cmt_regexp.h (class cmt_regexp): Introduce a default constructor and a set function
  • src
    cmt_generators.cxx:
  • src
    cmt_generator.cxx: Strong restruring of generator architecture: + create a CmtGenerator basic class for all generators + create derived classes for all categories of generators

ApplicationGenerator LibraryGenerator DocumentGenerator ReadmeGenerator PrototypeGenerator DefaultMakefileGenerator MSDEVGenerator VSNETGenerator MakeSetupGenerator ConstituentsMakefileGenerator DependencyGenerator

+ transfer new stuff in cmt_generators.h/.cxx + transfer all utility functions (get_all_files etc...) into the base class + optimize handling of Variable and FragmentHandle objects per Generator class

  • src
    cmt_install_area.cxx (config): suppress echo in quiet mode
  • src
    cmt_parser.cxx (install_test_setup_scripts): Protect tempfile against spaces in paths (install_test_cleanup_scripts): idem (install_setup_scripts): idem (install_cleanup_scripts): idem

2003-04-11 Christian Arnault <carnault@…> 139

  • src/cmt_parser.cxx (do_run_sequence): Sequences are removed from cmt.cxx and implemented in a dedicated source file.
  • src/cmt_sequence.h (class SequenceRunner): Adding cmt_sequence.h (defining sequences)
  • src/cmt_sequence.cxx (filter): Adding cmt_sequence.cxx (extracted from cmt.cxx)
  • src/cmt_generator.cxx (get_all_files): Return a count of non empty file names. (build_library_makefile): Ensure that get_all_files is done only once. (build_document_makefile): Ensure that get_all_files is done only once (not completed yet) (class DocumentMakefileGenerator): Start creating an object model for makefile generators. Create derived classes of MakefileGenerator for Application, Library, document
  • src/cmt_constituent.h (class Constituent): Add excludes vector of exclusions
  • src/cmt_constituent.cxx (class constituents_action_iterator): Start implementing exclusion mechanisms on constituent sources. We add a -x=<pattern> cumulative option to the constituent syntax

2003-04-07 <arnault@…> 138

  • src
    cmt_generator.cxx: Add DIRNAME Variable Add new fragments for vcproj

2003-04-05 <arnault@…> 138

  • mgr
    requirements: define VC7 VC7debug tags for vsnet
  • src
    cmt_generator.cxx (class MakefileGenerator): Add vsnetdir variable Add declarations for vsnet fragments (reset): Install vsnetdir as ..
    VisualC (pseudoGUID): Implement an algorithm for creating GUIDs (build_vsnet_workspace): (build_vsnet):
  • src
    cmt_generator.h (class Generator): Declare build_vsnet_workspace and build_vsnet methods
  • src
    cmt_constituent.cxx (build_all_vsnet_files): Implement for vsnet (build_vsnet_file): Implement for vsnet
  • src
    cmt_constituent.h (class Constituent): Add build_all_vsnet_files (class Constituent): Add build_vsnet_file
  • src
    cmt_parser.cxx (class StandardMacroBuilder): Add macro <constituent>_GUID for vsnet. (parser): Implement cmt build vsnet actions
  • src
    cmt_syntax.cxx (CommandParser): Add help about cmt build vsnet
  • src
    cmt_parser.h (enum): Add action_build_vsnet
  • src
    cmt.h (class Cmt): Add Visual Sudio.Net support (From Toby Burnett)

2003-04-03 Christian Arnault <carnault@…> 137

  • src/cmt_parser.cxx (do_setup): Do a config action to the installation area in order to perform a cleanup operation during the source setup
  • src/cmt_install_area.cxx (config): Display a message when doing cleanup of installation areas.
  • mgr/requirements: Rename cmt_(un)install_command to cmt_(un)install_area_command Prepare CMTr14 tag from CMTr13
  • fragments/java_header (install_java_bin_dir): idem
  • fragments/library_no_share (install_lib_dir): idem
  • fragments/jar (install_java_lib_dir): idem
  • fragments/library (install_lib_dir): idem
  • fragments/application (install_bin_dir): idem

2003-04-02 Christian Arnault <carnault@…> 136

  • src/cmt_symbol.cxx (build): Bug : the macro_prepend was NOT really prepending.

2003-03-28 Christian Arnault <carnault@…> 136

  • src/cmt_parser.cxx (class StandardMacroBuilder): Add CMTVERSION standard macro

2003-03-28 <arnault@…> 135

  • src
    cmt_parser.cxx (configure_version_tag): Create three new predefined tags:

CMTv<n> CMTr<n> CMTp<n>

to describe the current version, release and patch of CMT.

  • src
    cmt_parser.h (enum): Adding PriorityVersion for marking the priority of the new automatic version tag
  • src
    cmt_parser.cxx (configure_version_tag): Implement configure_version_tag method to create a tag for the version of CMT
  • src
    cmt.h (class Cmt): Adding configure_version_tag method to create a tag for the version of CMT
  • src
    cmt_symbol.cxx (all_set): Ensure that all path separators are back-slash on windows.
  • fragments
    nmake
    jar: Adapt for the new convention (subdirectory for the CONSTITUENT) (install_java_lib_dir): Add installation area mechanisms
  • fragments
    nmake
    java: Adapt for the new convention (subdirectory for the CONSTITUENT)
  • fragments
    nmake
    java_header (install_java_bin_dir): Add installation area mechanisms

2003-03-21 Christian Arnault <carnault@…> 134

  • src/cmt_parser.cxx (parser): cmt run must be recursive for used packages (in order to get all environment variables set)

2003-03-20 Christian Arnault <carnault@…> 133

  • src/cmt_symbol.cxx (show): Implement common SymbolValueList::show method.
  • src/cmt_symbol.h (class SymbolValueList): Factor out printing SymbolValues
  • src/cmt_symbol.cxx (create): Give use context in warning message
  • src/cmt_symbol.h (class Symbol): Add Use* argument to print context in warning messages
  • src/cmt_parser.cxx (vector_to_string): Ignore empty entries to avoid duplicate separators

2003-03-20 Christian Arnault <carnault@…> 132

  • src/cmt_error.cxx (print): Consistently set the prefix "#CMT> " to all error messages and print outs
  • src/cmt_triggers.cxx (filter): idem
  • src/cmt_use.cxx (add): idem
  • src/cmt_generator.cxx (build_default_makefile): idem
  • src/cmt_symbol.cxx (create): idem
  • src/cmt_parser.cxx (do_show_macro): idem
  • src/cmt_symbol.cxx (create): Handle the unconsistent multiple declarations of sets as macros (and vice versa)
  • src/cmt_error.cxx (class Error): Add warning error text
  • src/cmt_error.h (class CmtError): Add warning error code
  • src/cmt_parser.cxx (reach_current_package): Suppress error print when requirements file is not found (do_show_macro): Improve the error message in the "cmt show macro/set" command

2003-03-20 Christian Arnault <carnault@…> 131

  • src/cmt_parser.cxx (reach_current_package):
  • src/cmt_install_area.h (class CmtInstallAreaMgr): Factor out the construction of the current installation area
  • src/cmt_install_area.cxx (setup): Filters out "default path" for constructing the current installation area (config): idem
  • src/cmt_cmtpath_pattern.cxx (apply): Suppress "default path" (ie CMTPATH of CMT) from application of cmtpath_patterns
  • src/cmt_parser.cxx (get_cmt_path_sources): Add accessor to cmtpath_sources
  • src/cmt.h (class Cmt): Add accessor to cmtpath_sources

2003-03-18 Christian Arnault <carnault@…> 130

  • src/cmt_cmtpath_pattern.cxx (apply): Optimize the substitution of "<path>" in cmtpath_patterns by avoiding a loop over path items when the pattern does not contain "<path>" at all

2003-03-13 Christian Arnault <carnault@…> 130

  • mgr/requirements: Add -classpath $(src) to java compilation
  • src/cmt_generator.cxx (analyze_file): Default copy action for files with no language is applied only to java contexts

2003-03-12 Christian Arnault <carnault@…> 130

  • fragments/java_copy: Use this fragment for default action on sources with no language
  • src/cmt_generator.cxx (module_file_action): Install default (copy) action for source files with no language.
  • fragments/java_header: Building jar files with * rather than *.class
  • fragments/jar: Building jar files with * rather than *.class
  • fragments/java_header: Syntax fix for generating manifest file

2003-03-11 Christian Arnault <carnault@…> 129

  • src/setup.zsh: Add show cmtpath_patterns option
  • src/cmt_generator.cxx (analyze_file): Add constituent sub directory to output for java files
  • fragments/jar: Add constituent sub directory to ../classes to store *.class and jar files
  • fragments/java_header (install_java_bin_dir): Apply installation area mechanisms for java application
  • mgr/requirements: Need both share/bin and share/lib for installarea

2003-03-10 Christian Arnault <carnault@…> 129

  • src/cmt_cmtpath_pattern.cxx (apply): CMTPATH patterns should be applied in revers order
  • mgr/requirements: bug fix (missing backslash)
  • src/cmt_install_area.cxx (config): Bug fix

2003-03-09 <ARNAULT@…> 128

  • src
    cmt_install_area.cxx (setup): Make use of the cmt_installarea_prefix macro (config): idem

2003-03-08 <ARNAULT@…> 128

  • mgr
    requirements: Define the cmt_installarea_prefix macro to parameterize the common prefix to be added to all CMTPATH entries for installation areas

2003-03-06 <ARNAULT@…> 127

  • src
    cmt_install_area.cxx (config): Introduce the new macro cmt_installarea_paths used to declare all PATHS inside the installareas that will need to be checked for consistency when doing cmt config
  • src
    cmt_install_area.h (class CmtInstallAreaMgr): Remove set_path, add_path_pattern, apply_path_patterns function since they are all managed through cmtpath_patterns
  • src
    cmt_parser.cxx (do_show_cmtpath_patterns): Do set_standard_macros
  • src
    cmt_install_area.cxx (setup): Launch the CmtPathPattern::apply_all ()
  • src
    cmt_parser.cxx (parser): Add parsing of cmt show cmtpath_patterns
  • src
    cmt_syntax.cxx: Add parsing of cmt show cmtpath_patterns
  • src
    cmt_parser.h (enum): Add action_show_cmtpath_patterns
  • src
    cmt_database.cxx (cmtpath_patterns): Add CmtPathPatternVector object
  • src
    cmt_database.h (class Database): Add CmtPathPatternVector
  • src
    cmt_cmtpath_pattern.cxx: Install partial reproduction of cmt_pattern.cxx
  • src
    cmt_cmtpath_pattern.h: Create cmt_cmtpath_pattern.h (class CmtPathPattern): Install partial reproduction of cmt_pattern.h
  • mgr
    requirements: Add the source file cmt_cmtpath_pattern.cxx
  • src
    cmt_syntax.cxx (class KwdCmtPathPattern): add parser object for the new CommandCmtPathPattern.
  • src
    cmt_parser.h (enum): Add CommandCmtPathPattern to declare CMTPATH patterns to be applied onto all CMTPATH items.

2003-03-06 <ARNAULT@…> 126

  • src
    cmt_symbol.cxx (all_set): Add debug informattion
  • src
    cmt_parser.cxx (do_run): Do set_standard_macros before running

2003-03-06 Christian Arnault <carnault@…> 125

  • src/cmt_system.h (class CmtSystem): Adding putenv to set environment variables
  • src/cmt_system.cxx (putenv): idem
  • src/cmt_symbol.cxx (class SetBuilder): The build and clean function should return string object rather that referencing the string object attribute (protection against recursive calls) (class PathBuilder): idem (class MacroBuilder): idem (class ScriptBuilder): idem (resolve_value): Add comments and improve variable naming (resolve_value): idem (resolve_value_for_macros): idem (suppress_OS_delimiters): idem
  • src/Makefile.header (common_target): Use /tmp to create temporary (and disposable) make fragments. Rearrange
  • mgr/Makefile (cpp): Provide support to build on LinuxDebug
  • fragments/constituents_header (cmt_lock_setup): Use /tmp to create temporary (and disposable) make fragments. Rearrange statements in the building of $(tag).make so as to ensure that echo statements are only done when things are ok.
  • src/cmt_parser.cxx (install_cleanup_scripts): Define CMTROOT only if it is NOT defined yet. Goal is to keep user defined version of CMT. (install_setup_scripts): idem (install_test_cleanup_scripts): idem (install_test_setup_scripts): idem

2003-02-27 Christian Arnault <carnault@…> 125

  • src/cmt_symbol.h (class ValueBuilder): due to recursivity, Builder function cannot share the temporary string value

2003-02-26 Christian Arnault <carnault@…> 125

  • src/cmt_parser.cxx (do_run): Add Symbol::all_set (do_broadcast): idem (before the loop over packages)
  • src/cmt_symbol.cxx (all_set): Install the mechanism to set environment variables (using putenv) into CMT. This function is called before running the CmtSystem::execute function.

  • src/cmt_symbol.h (class Symbol): Remove the tabs argument of the print and print_clean methods (obsolete)
  • src/cmt_symbol.cxx (resolve_value): rename the argument for the symbol name (it applies for any symbol, not just for macros) (resolve_value): Improve comments (resolve_value_for_macros): Improve comments (resolve_macro_value): factor out at least one of the resolve macro algorithms

2003-02-24 Christian Arnault <carnault@…> 124

  • src/cmt_generator.cxx (build_dependencies): Surrounding dependencies by quotes does not please gmake. We have to check what happens on Darwin (ie what about path names with spaces?)

2003-02-14 <ARNAULT@…> 123

  • mgr
    requirements: Use XCOPY instead of copy for the install commands to support the directory copy
  • fragments
    installer: Suppress the need to specify install_dir with trailing slash
  • fragments
    nmake
    installer: Add installer for Windows
  • src
    cmt_generator.cxx (build_dependencies): Add double quotes to support file names with non standard characters (eg spaces) (not only on Windows). (filter_path): Add the filter operation to work on one sigle file. The filter_paths function becomes obsolete and is removed. (analyze_document_file): Use filter_path instead of filter_paths (proto_file_action): idem (module_file_action): idem (build_library_makefile): idem (build_document_makefile): idem (build_dependencies): idem (build_document_makefile): Support sources being directories (module_file_action): idem
  • mgr
    cmt_install_action.bat: idem
  • mgr
    cmt_uninstall_action.bat: idem
  • fragments
    nmake
    library_no_share (install_lib_dir): idem
  • fragments
    nmake
    library (install_lib_dir): idem
  • fragments
    nmake
    application (install_bin_dir): idem

2003-02-11 Christian Arnault <carnault@…> 122

  • src/cmt_cvs.cxx (class CvsImplementation): Adding explicit error message when base directory cannot be created during the checkout.

2003-02-06 Christian Arnault <carnault@…> 121

  • src/Makefile.header (clean): Remove the pseudo config target for the clean target

2003-02-04 Christian Arnault <carnault@…> 120

  • src/cmt_use.cxx (add): Add protection against recursive use statement to current_use

2003-02-04 <ARNAULT@…> 119

  • src
    cmt_use.cxx (need_new): Add protection against recursive use statement to current_use

2003-01-31 Christian Arnault <carnault@…> 118

  • mgr/requirements : library_prefix should be empty for WIN32
  • src/cmt_parser.cxx (install_setup_scripts): Protect the setup script generation against cases where : structuring style is set to without_version_directory and verion tag cannot be determined (eg. if the version file does not exist). Then, the -version=xxx option is suppressed from the setup script generation. (install_test_cleanup_scripts): idem
  • src/Makefile.header (common_target): Suppress a debug settings

2003-01-28 <ARNAULT@…> 117

  • src
    cmt_install_area.cxx (instance): Suppress the production of LD_LIBRARY_PATH installation specs for WIN32
  • fragments
    nmake
    library_no_share (install_lib_dir):
  • fragments
    nmake
    library (install_lib_dir):
  • fragments
    nmake
    application (install_bin_dir): Add install area mechanisms for WIN32

2003-01-24 Christian Arnault <carnault@…> 116

  • src/cmt_install_area.cxx (instance): The constuction of the instance also declares the path patterns.

(setup): Make use of the path_patterns to generate CMT statements

(get_install_area): The current install area is preserved in the InstallAreaMgr instance (singleton).

(set_path): (only used internally) build a path expression from a pattern

(setup): Provide additional -L... options towards the install area for use_linkopts ad shlibbuilder

(config): Perform the cleanup operation onto the current installation area:

check the all ref-files still refer to existing files. if not erase the corresponding installed file.

  • src/cmt_install_area.h (class CmtInstallPathPattern): New class for storing generic patterns for (PATH/directories) duets generation and management inside install area mechanisms. The point is to describe special conventions for things to be installed within the installation area.

We describe that in terms of a set of :

o path-like variable names o subdirectory patterns bellow $CMTINSTALLAREA

All those patterns will be used to configure the installation area and to expand the specified PATH-like variables.

Ex:

PATH is associated with ${CMTCONFIG}/bin LD_LIBRARY_PATH is associated with ${CMTCONFIG}/lib CLASSPATH is associated with share/bin

we could think of having those patterns defined in the requirements file.

  • src/cmt_parser.cxx (do_remove_library_links): Handle symlinks induced by the <package>_libraries macros through INSTALLAREA mechanisms (do_build_library_links): (idem) (set_standard_macros): Setup operations for InstallArea have been grouped using InstallPathPatterns (do_config): Add cleanup of install area

2003-01-23 Christian Arnault <carnault@…> 115

  • src/cmt_syntax.cxx (class KwdBuildStrategy): Support extension of build_strategy with install_area mechanisms.
  • src/cmt_system.cxx (mkdir): Suppress the error message when one cannot create a directory
  • fragments/application (install_bin_dir):
  • fragments/library_no_share (install_lib_dir):
  • fragments/library (install_lib_dir): Use CMTINSTALLAREA instead of INSTALLAREA
  • src/cmt_parser.cxx (do_build_library_links): Use install area mechanisms when the build_strategy is active rather than symlinking into the binary directory of the package.

(set_standard_macros): Add the generation of CMTINSTALLAREA environment variable, the prepending of PATH, LD_LIBRARY_PATH, CLASSPATH when install_area is active

  • src/cmt_install_area.cxx:
  • src/cmt_install_area.h (class CmtInstallAreaMgr): New class for managing install area mechanisms.
  • src/cmt_parser.h (enum): Add InstallArea in BuildStrategy

2003-01-22 Christian Arnault <carnault@…> 114

  • src/cmt_use.cxx (find_index): Bad use of a static local variable implying wrong management of -import= options (get_index): Adding accessor function to m_index private attribute
  • src/Makefile.header (.DEFAULT): Remove temporary debugging action

2003-01-21 Christian Arnault <carnault@…> 113

  • src/cmt_symbol.cxx (all_print): Restore two-steps process for generating setenv calls (first normal env. variables then path-like) (all_print_clean):

2002-12-20 Christian Arnault <carnault@…> 112

  • src/cmt_parser.cxx (do_show_strategies): put a space character
  • mgr/Makefile (cpp): Add the -O2 compiler option on default platforms
  • mgr/requirements: Privately try the construction of the new CMTCONFIG
  • src/cmt_parser.cxx (parse_arguments): Add cmt --version equivalence to cmt version

2002-12-19 Christian Arnault <carnault@…> 111

  • mgr/requirements: Change the name of cmt_cc_version.sh to cmt_dcc_version.sh for case insentivity of Darwin file system
  • fragments/application (install_lib_dir):
  • fragments/library (install_lib_dir):
  • fragments/library_no_share (install_lib_dir):

2002-12-18 Christian Arnault <carnault@…> 110

  • src/cmt_symbol.cxx (resolve_value_for_macros): We have to suppress the conversion from %xxx% to $(xxx) on non-windows platform, since there were some occurrences of %xxx% patterns, which have a meaning in unix world!!
  • src/Makefile.header (.DEFAULT): Only run once sub-makefile
  • src/cmt_symbol.cxx (all_print_clean): Keep order of generation of sets and paths (instead of sets then paths)
  • mgr/cmt_cc_version.sh: Helper scripts for compiler query commands
  • mgr/cmt_cxx_version.sh:
  • mgr/cmt_CC_version.sh:
  • mgr/cmt_gcc_version.sh:
  • mgr/cmt_filter_version.sh:
  • fragments/constituents_header (first): Make use of cmt show setup

  • src/cmt_parser.cxx (do_show_setup): Display sections rather than from the Makefile

  • src/cmt_use.cxx (class use_action_iterator): action_show_setup traverses the private subtrees (like show_uses)
  • src/cmt.h (class Cmt):
  • src/cmt_parser.cxx (do_show_setup):
  • src/cmt_parser.h (enum): Add action_show_setup for grouping show uses,tags,path
  • mgr/requirements: Manage a common (sh/csh) style for output redirection for system query commands
  • fragments/library_no_share (install_lib_dir):
  • fragments/library (install_lib_dir):
  • fragments/application (install_bin_dir): Use cmt_install_command instead of install_command for install area mechanisms to avoit conflicts with the installer document generator

2002-12-18 <ARNAULT@…> 109

  • src
    cmt_parser.cxx (do_show_strategies): Add display of setup strategy (print_context): Apply the build strategy
  • src
    cmt.h (class Cmt): Add get/set current_setup_strategy methods (class Cmt): Add m_current_setup_strategy attribute
  • src
    cmt_parser.h (enum): Add SetuStrategy enumeration
  • src
    cmt_syntax.cxx (class KwdSetupStrategy): Add SetupStrategy class
  • src
    cmt_parser.h (enum): Add setup_strategy keyword to control the production of <PACKAGE>CONFIG and <PACKAGE>ROOT env. variables
  • src
    cmt_parser.cxx (class StandardMacroBuilder): Add few debug printouts
  • src
    cmt_use.cxx (find_index): The returned index must be the m_index attribute of the Use object rather than the index in the use list of the package!!

2002-12-16 Christian Arnault <carnault@…> 108

  • src/Makefile.header (binclean): Add a quick binclean target (all): prepend a systematic config target
  • fragments/constituents_header (all): Suppress dummy messages in gmake all and config

2002-12-16 <ARNAULT@…> 107

  • src
    cmt.h (class Cmt): do_help remembers of the current action being parsed to have cmt help action
  • src
    cmt_syntax.h (class CommandParser): Command parsing mechanisms. So far only the help is handled. General map-based parsing mechanism is foreseen
  • src
    cmt_parser.h (enum ActionType): Add global actions for build, check, show only for error and help management
  • src
    cmt_syntax.cxx (show): Command Help management introduced (will be improved)
  • src
    cmt_parser.cxx (parse_arguments): Improve command help with SyntaxParser
  • mgr
    requirements: Adding specs for query commands on WIN32

2002-12-12 Christian Arnault <carnault@…> 106

  • mgr/Makefile: Remove the mail sending after CMT rebuild... (!!!)
  • src/cmt_symbol.cxx (resolve_macro_value): Detects patterns like: $(macro-name) within symbol definitions. The specified macro is expected to contain a shell command that will then be executed when expanding the macro.
  • mgr/requirements: Add some system information queries: hardware system_version compiler_version
  • mgr/cmt_filter_version.sh: Add a filtering script for system version informations.

2002-12-12 <ARNAULT@…> 105

  • mgr
    requirements: make use of SyntaxParser
  • src
    cmt_triggers.cxx: idem
  • src
    cmt_use.cxx: idem
  • src
    cmt_parser.cxx: idem
  • src
    cmt_pattern.cxx: idem
  • src
    cmt_syntax.cxx:
  • src
    cmt_syntax.h (class Kwd): Introduce the new syntax parsing mechanism. It is based on a cmt_map of keyword objects. All requirements parsing operations are now implemented in the SyntaxParser singleton.
  • src
    cmt_parser.cxx (do_build_library_links): Introduce the cmt_symlink_cmd macro to override the internal management of symlink creation in case this is unavailable (eg on Windows)

2002-12-11 Christian Arnault <arnault@…> 104

  • src/cmt_parser.cxx (do_set_versions): Make use of cmt broadcast to install version files in all packages. Inherit broadcast syntax.

(do_broadcast): Add possibility to use template like in patterns Start with <version>.

  • mgr/Makefile (cpp): Add profiling option
  • fragments/check_java (check): Add run options
  • src/cmt_use.cxx (find): Use Package grouping of uses (find_index): Use index registration information (move): Use index registration information (reorder): idem (need_new): Revisit the algo to avoid useless multiple reading of requirements files (add): Use index registration information (operate): Improve for without version directory style (Package): Introduce Package grouping of Use objects
  • src/cmt_parser.cxx (do_set_versions): Use Package::is_cmt feature.
  • src/cmt_string.cxx (replace): Optimize by reducing the calls to strlen.
  • src/cmt_generator.cxx (build_dependencies): Use Package::is_cmt feature.
  • src/cmt_include.cxx (print_all): Use Package::is_cmt feature.
  • src/cmt_script.cxx (all_print_clean): Use Package::is_cmt feature.
  • src/cmt_database.cxx (pattern_list_map): Discard dump features
  • src/cmt_database.h (class Database): Restore tag management. Introduce PatternList and Package management
  • src/cmt_project.cxx (class ProjectMgr): Suppress tag management from projects. Make it back to global management (from Database)
  • src/cmt_pattern.h (class PatternList): Introduce PatternList class to group pattern by names. This class contains a list of Patterns of the same name but originating from different uses.
  • src/cmt_use.h (class Use): renaming uses() to get_ordered_uses() and all_uses() to get_instances ()

2002-12-10 Christian Arnault <arnault@…> 103

  • src/cmt_project.h (class Project): Add a tag_map to manage tags
  • src/cmt_tag.cxx (add): Add a tag_map to manage tags
  • src/cmt_tag.h (class Tag): Introduce a map of tags
  • src/cmt_database.cxx (symbol_map): install a map of symbols
  • src/cmt_database.h (class Database): install a map of symbols
  • src/cmt_symbol.cxx (create): Use symbol map to find existing symbols (find): idem (symbol_map): access to the map of symbols from the database (clear_all): clear the database and the map
  • src/cmt_symbol.h (class Symbol): Introduce the new typedef SymbolMap for a cmt_map of Symbols
  • src/cmt_map.h: Introduce cmt_map.h implementing a map (binary tree)
  • src/cmt_regexp.cxx (cmt_regexp): Rename cmt_node to cmt_regexp_node
  • src/cmt_regexp.h: Rename cmt_node to cmt_regexp_node

2002-12-09 Christian Arnault <arnault@…> 102

  • fragments/check_java (check): Add run options (global and local)

2002-12-09 Christian Arnault <carnault@…> 101

  • mgr/requirements: Fix typo (trailing backslash)
  • src/cmt_parser.cxx (parser): Add set versions operation to perform a global set version onto all used packages. (do_set_versions): Start implementing a draft scenario (parser): the set versions action require parsing the use graph.
  • src/cmt.h (class Cmt): idem.

  • src/cmt_parser.h (enum): idem
  • src/cmt_parser.cxx (configure_current_package): Set the default version expression in absence of both version directory AND version file to "v*" (instead of "v0")
  • src/Makefile.header (binclean): Add new standard target for erasing at once the $(bin) directory

2002-12-08 <ARNAULT@…> 100

  • src
    cmt_parser.cxx (do_set_version): (scan_path): Improving the management of various structuring styles for the FileScanner. (do_show_strategies): Displays structuring style in show_strategies (reach_current_package): Prepare the removal of automatic addition of the current package area to CMTPATH... (do_config): Fix discovery of structuring style (configure_current_package): Fix discovery of structuring style (class SequenceRunner): Accept version argument in sequence files
  • src
    cmt.h (class Cmt):
  • src
    cmt_parser.h (enum): Add set version command to install version.cmt file
  • src
    cmt_system.cxx (is_version_directory): Handle wild cards in version ids detection
  • mgr
    requirements: Add Darwin definitions
  • mgr
    cmt_make_shlib_common.sh (temp_shlib): Protect against module files with space in their names
  • mgr
    requirements: try to remove CMT/v from PATH rather then CMT only so as to keep subpackages of CMT
  • src
    cmt_use.cxx (set_auto_imports_state): fix a bug on use pointer comparisons.
  • fragments
    nmake
    constituent:
  • fragments
    nmake
    constituents_header (dirs): fix naming scheme : only .nmake
  • mgr
    NMake (cmt): protect VisualC.nmake generation against reminder of the physical location of the rebuild
  • src
    demo
    demoA
    requirements: Add PATH towards java on Windows
  • mgr
    NMake: Add a target to re-generate VisualC.nmake inside CMT so as to have proper nmake demo
  • mgr
    requirements: provide debug_option for WIN32 platform
  • fragments
    nmake
    make_header (tags): Suppressed $(CMTCONFIG),$(CMTEXTRATAGS) and only keep $(CMTEXTRATAGS)
  • fragments
    nmake
    constituents_trailer: added to NMake family
  • fragments
    nmake
    group: added to NMake family

2002-12-05 <ARNAULT@…> 99

  • src
    cmt_vector.h (cmt_vector): replace static int frame_size by enum {frame_size} to C++ ANSI compliance.
  • src
    cmt_use.cxx (BestFitSelector::operate): When structurig style is withut-version-directory, the version field of the package may still contain wild cards. This has to be considered when checking compatibility.

2002-12-04 Christian Arnault <carnault@…> 98

  • src/cmt_use.cxx (set_auto_imports_state): bug fix (corresponding to v1r12p20021129)

2002-10-30 Christian Arnault <carnault@…> 97

  • src/cmt_vector.h (cmt_vector): define frame_size as a static const int instead of enum

2002-10-15 Christian Arnault <carnault@…> 96

  • src/cmt_use.cxx: Protect against use objects badly recorded within auto_imports_state vectors
  • src
    cmt_parser.cxx (scan_path): Fix algo to scan packages to cope with no-version style (class StandardMacroBuilder): Fix no-auto-imports algo

2002-09-24 Christian Arnault <arnault@…> 95

  • mgr/ChangeLog.php: Introduce the online filter for ChangeLog file
  • doc/documents.html: Use PHP to filter out ChangeLog
  • mgr/Makefile (docs): Install ChangeLog and ChangeLog.php into web site
  • src/setup.zsh: Add an empty leading line to avoid shell problems...
  • src/Makefile.header (config): force the rebuild of $(tag).make

2002-08-06 Christian Arnault <arnault@…> 94

  • fragments/library: Split action list so as to force the rebuild of shared libraries when it has been lost while shstamp is still there.

2002-06-21 <arnault@…> 93

  • src/cmt_parser.cxx (class SequenceRunner): Add support for comments in the sequence files (do_show_macro_names): (do_show_set_names): (print_symbol_names):

(class StandardMacroBuilder): prepare the production of <constituent>_use_linkopts but let it unsused for the time being

(class StandardMacroBuilder): fix a typo

(class StandardMacroBuilder): fix a bug

  • src/cmt_parser.h (enum):
  • src/cmt.h (class Cmt): Adding do_show_macro_names, do_show_set_names, print_symbol_names functions
  • src/setup.tcsh:
  • src/setup.zsh: move the -quiet option before verb to avoid confusion with new syntax for show xxxs
  • src/demo/tprivate.cmt:
  • src/demo/demo1.cmt: improve test sequences
  • mgr/requirements: add the macro preproc to prepare new scheme for dependency generation using cpp -MD
  • mgr/Makefile (cpp): Specialize default cpp according to the platform (hosts): we don't need BOOL hosts anymore (demo): the demo sequence now exploits the sequence runner of CMT (tprivate): new test sequence on private uses.
  • mgr/ChangeLog.awk: Adding this awk script to convert the ChangeLg file int HTML format
  • doc/CMTDownload.html:
  • doc/download.html:
  • doc/install.html: doc improvements
  • fragments/application: Temporarily stop using $(${CONSTITUENT}_use_linkopts)
  • src/NMakefile.header (tag):
  • src/Makefile.header (tags):
  • fragments/nmake/constituents_header (tag):
  • fragments/nmake/make_header (tag):
  • fragments/constituents_header (tag):
  • fragments/make_header (tag): Add $CMTCONFIG to tags

2002-05-29 <arnault@…> 92

  • src
    cmt_database.cxx:
  • src
    cmt_database.h:
  • src
    cmt_project.h (class Project):
  • src
    cmt_project.cxx (Project): Introduce Project management
  • mgr
    requirements: Define the default project CMT
  • src
    cmt_parser.h (enum):
  • src
    cmt_parser.cxx (select):

Introduce apply_tag statements<br> Introduce first iteration on project management

  • src
    cmt_symbol.cxx (action): replace direct access to member of tag objects by accessor functions.
  • src
    cmt_tag.cxx (add):
  • src
    cmt_tag.h (class Tag):

Clean up the for private members only<br> introduce action_apply to activate a tag from a requirements file<br> introduce tag expressions -> this defines primary tags versus computed ones. Selection is either obtained from m_selected for primary tags or computed from operands otherwise. so far only AND expressions are available.

2002-05-28 Christian Arnault <arnault@…> 91

  • src/cmt_symbol.cxx (select_last): Make use of Tag::is_selected
  • src/cmt_tag.cxx (is_selected):
  • src/cmt_tag.h (class Tag): Add and_operands for defining tags from a bool expression of primary tags. Move selected to private area to ensure usage of is_selected which may compute the selection state from operands. The embedded state is now reserved to primary tags.

2002-05-28 Christian Arnault <carnault@…> 90

  • src/cmt_awk.cxx (class Parser): Replace the basic parsing engine by the local Parser class. It takes care of both EOL styles (Unix and Win) and of trailing backslashes for continuations.
  • src/cmt_awk.h (class Awk): Added a function inc_line_number to increment the line number from the external text parser.
  • src/cmt_cvs.cxx (filter): Added debug messages
  • src/cmt_parser.cxx (do_awk):
  • src/cmt_parser.h (enum): Added action_awk
  • src/cmt.h (class Cmt): Added do_awk function for testing the Awk operator.

2002-05-27 <arnault@…> 89

  • doc
    todo.html: Adding entries

2002-05-24 Christian Arnault <carnault@…> 88

  • src/cmt_cvs.cxx (class CvsImplementation): fix few problems with no_version_directory.

2002-05-23 Christian Arnault <arnault@…> 87

  • src/demo/scenario.awk: Adapt to handle without_version_directory style
  • src/demo/demo1.cmt: fix a typo
  • src/cmt_parser.cxx (parse_requirements): Fixing bug on private macros for without_version_directory style
  • mgr/Makefile (demo): Improving the demo scenario manager

2002-05-22 Christian Arnault <arnault@…> 86

  • doc/download.html:
  • doc/CMTDownload.html:
  • src/cmt_version.h (CMTVERSION): preparing tagging for v1r13...
  • src/cmt_use.h (class Use): new helpers
  • src/cmt_use.cxx (class use_action_iterator): re-design the scope hiding for private uses (was buggy for first level private uses) (reach_package): structuring style (get_full_path): new helper for centralizing the full package path computation (reduce_path): new helper to normal form with $<PACKAGE>ROOT (get_paths): add debug prints (show_sub_uses): structuring style
  • src/cmt_system.h (class CmtSystem):
  • src/cmt_system.cxx (reduce_file_separators): helper to reduce multiple file separators into one (is_package_directory): structuring style
  • src/cmt_pattern.cxx (apply): add debug prints
  • src/cmt_parser.h (enum): Add CmtStructuringStyle options
  • src/cmt_parser.cxx: Introducing support for structuring style. m_current_structuring_style global variable (scan_path): (scan_package): (run): (PackageCollector::run): (configure): calling configure_current_structuring_style (configure_current_package): (configure_current_structuring_style): new method (do_broadcast): use Use::get_full_path (do_config): (do_create): (do_help): (do_lock): suppress unused local variable (do_remove): (do_show_macros): add pattern for selection instead of default '*' (do_show_sets): idem (do_unlock): suppress unused local variable (get_current_strategy): new method (install_cleanup_scripts): install cleanup scripts on windows (load): (parse_arguments): re-number argument array (parse_arguments): support arguments for cmt show macros (parse_arguments): support arguments for cmt show sets (parse_arguments): -with_version_directory option (parse_arguments): -without_version_directory option (parse_requirements): (parser): support arguments for cmt show macros (parser): support arguments for cmt show sets (print_context): use Use::get_full_path (print_macros): selection pattern (reg. expression) on symbols (reach_current_package): (set_standard_macros): add getting pwd (set_standard_macros): structuring style
  • src/cmt_generator.cxx (SourceFile::set): use CmtSystem::reduce_file_separators (prepare_use_context): idem (prepare_use_context): use Use::get_full_path (set_full_name): idem (build_make_setup): idem
  • src/cmt_fragment.cxx (print): use Use::reduce_path factorization (locate): use Use::get_full_path factorization (locate): Support structuring style options
  • src/cmt_cvs.cxx: + need cmt.h for accessing structuring style + support for structuring style
  • src/cmt.h (class Cmt): Adding support for structuring style

do_show_macros now accepts arguments

do_show_sets now accepts arguments

print_macros now accepts a pattern for selecting symbols

  • src/demo/tprivate.cmt: Scenario for testing private uses and -no_auto_imports
  • src/demo/demo1.cmt: Scenario for the general test/demo sequence.

  • src/demo/scenario.awk: Add a script for installing scenarios. This script can
    • create packages
    • install text files relatively to the packages.
  • mgr/Makefile (demo): Replace the copy operations for the demo targets by an awk-based mechanism (only for Unix -> keep old mechanism for Windows). The scenario.awk script is able to create packages and install text files into the newly created packages.

Add a target (a scenario) for testing private uses and -no_auto_imports

Add an help target describing all special targets.

  • fragments/constituents_header (first): Differentiate setup.make with the package name when $(bin) is common.

2002-05-17 unknown <arnault@…> 85

  • doc/todo.html: Adding a web page for ToDo list, and bug reports.
  • src/cmt_parser.cxx (install_test_setup_scripts):
  • src/cmt_parser.cxx (install_test_cleanup_scripts): Fix the bug to "source setup" standalone with a current directory outside the package itself.

2002-05-15 Christian Arnault <arnault@…> 84

  • src/cmt_version.h (CMTVERSION): Preparing the new tag v1r12p20020515
  • doc/CMTDoc.html: Upgrade the documentation.
  • src/setup.tcsh:
  • src/setup.zsh: Add all_tags to the list of know show options
  • src/cmt_tag.cxx (show_definition):
  • src/cmt_tag.h (class Tag): Added Tag::show_definition (unfiltered show method wrt the selected state)
  • src/cmt_parser.cxx (do_help): Implement the new cmt show all_tags command.
  • src/cmt.h (class Cmt): Added Cmt::do_show_all_tags ()
  • src/cmt_parser.h (enum): Added action_show_all_tags
  • mgr/requirements: remove -I$(inc) from default value of ccomp macro (no longer needed and has side effects)
  • src/cmt_use.cxx (add): Protect against null use pointer when not found.
  • src/cmt_tag.cxx (action): do increase the tag ref list when overridden. It used to be un-overridden...
  • fragments/constituents_trailer (clean): add a semi-colon between the two shell commands.

  • src/cmt_system.cxx (create_symlink): Explicit .c_str() in system calls.
  • doc/table.html: setup a direct URL to CVSWeb rather than through an intermediate page

2002-04-12 Christian Arnault <carnault@…> 84

  • doc/CMTDoc.html:
  • src/setup.zsh:
  • src/setup.tcsh:
  • src/cmt_parser.cxx (do_help):
  • src/cmt.h (class Cmt):
  • src/cmt_parser.h (enum): introduce action_show_all_tags do display all defined tags (while action_show_tags only shows all active tags)
  • fragments/constituents_trailer (clean): typo in the clean target.

2002-04-11 <arnault@…> 83

  • src
    cmt_parser.cxx (print_clean): Suppress the unset of CMTCONFIG

2002-04-10 <arnault@…> 82

  • fragments
    library:
  • fragments
    library_no_share: Suppress the experimental change for erasing the object files after filling the library

2002-04-10 Christian Arnault <carnault@…> 81

  • src/cmt_version.h: preparing tagging for v1r12

  • mgr/requirements: Adapt to Darwin
  • src/cmt_symbol.cxx (action):
  • src/cmt_use.cxx (action):
  • src/cmt_use.h (class Use): Introduce m_has_native_version
  • mgr/requirements: Add standard $(library_prefix) and $(library_suffix) macros
  • mgr/cmt_make_shlib_common.sh (temp_shlib): Set verbose mode to the linker command and control it through the QUIET macro. Fix the temporary expansion directory

  • mgr/cmt_make_shlib_common.sh (temp_shlib):
  • fragments/library_header:
  • fragments/cleanup_library: Add standard $(library_prefix) and $(library_suffix) macros
  • fragments/constituents_trailer (makefilesclean):
  • fragments/constituent: remove specific makefile fragments for the constituents (instead of *.make)
  • fragments/library_no_share:
  • fragments/library: erase *.o files after filling the library
  • src/cmt_use.h (class Use): Add use::sub_use_auto_imports to save specifications on sub uses. Add Use::set_auto_imports to possibly promote auto_imports to sub uses when it is changed from Off to On.
  • src/cmt_parser.h (enum):
  • src/cmt_pattern.cxx (show_all_applied_patterns):
  • src/cmt_pattern.h (class Pattern): adding Pattern::show_all_applied_patterns ()
  • src/setup.tcsh:
  • src/setup.zsh:
  • src/cmt_parser.cxx (do_help):
  • src/cmt.h (class Cmt): Adding Cmt::do_show_applied_patterns for the new command "cmt show applied_patterns"

2002-04-04 Christian Arnault <carnault@…> 80

  • src/cmt_use.cxx (add): Protect against duplicated registration of current_use.
  • src/cmt_parser.cxx (install_setup_scripts): Append an empty line at the end of the generated setup script (problem on some shells)

  • src/cmt_parser.cxx (do_create):
  • src/cmt.h (class Cmt): Change the signature of the do_create function to receive its arguments from the "arguments" list rather than changing current_package etc...
  • src/Makefile.header: Add a systematic config target (for backward compatibility)
  • fragments/constituents_trailer (binclean): added the binclean target to completely remove the binary directory at once.
  • fragments/make_header:
  • fragments/constituents_header:
  • fragments/nmake/make_header (CMTEXTRATAGS):
  • fragments/nmake/constituents_header (CMTEXTRATAGS): Remove the settings of CMTCONFIG

2002-03-22 Christian Arnault <carnault@…> 79

  • src/cmt_symbol.cxx (suppress_OS_delimiters): operate on %...% patterns only on Windows machines.

2002-03-20 Christian Arnault <carnault@…> 78

  • mgr/Makefile (Atlas): Suppress HP rebuild for Atlas group
  • src/cmt_cvs.cxx (filter): Improve the recursive passes and handle the new qualifiers of the use statements.
  • fragments/cleanup_header (clean): Fix bad insertion of the .DEFAULT target
  • src/cmt_symbol.cxx (suppress_OS_delimiters): Introduce this new function to ensure that only $() syntax is used in tag makefiles (ie suppress ${} and %% syntaxes) (show_macro): apply this new function for action_build_tag_makefile
  • src/cmt_generator.cxx (reset): Do not generate the Visual directory on non-windows machines
  • fragments/group (clean): Suppress one echo on gmake clean

2002-03-14 Christian Arnault <carnault@…> 77

  • src/cmt_parser.cxx (set_standard_macros): Cleanup management of m_current_tag

2002-03-07 Christian Arnault <carnault@…> 76

  • src/cmt_parser.cxx (print_context): Suppress the automatic settings of CMTEXTRATAGS
  • src/Makefile.header: Do not change CMTCONFIG
  • src/NMakefile.header: Do not change CMTCONFIG

2002-02-27 Christian Arnault <carnault@…> 75

  • fragments/jar: Adding removal of jar file for clean target
  • src/cmt_use.cxx (show_sub_uses): show no_auto_imports status
  • src/cmt_parser.cxx (reach_current_package): reapply global pattern at once until side effects are solved in user projects.
  • fragments/jar: Apply an old fix to Unix fragments (was applied to Windows only)

2002-02-26 Christian Arnault <carnault@…> 74

  • src/cmt_use.cxx (move_to): select_alternate must be applied after reach_package for searches against an absolute path or against the current directory.

2002-02-25 <arnault@…> 73

  • fragments/cleanup_header (clean): Add default action
  • src/Makefile.header (common_target): Remove debug print
  • src
    cmt_parser.cxx (parse_requirements): Apply global patterns right after parsing a requirements file, and only considering the Use context, one at a time (rather than applying all global patterns to all Uses at once after reading all requirements file)
  • src
    cmt_pattern.cxx (apply_all_globals):
  • src
    cmt_pattern.h (class Pattern): Add a method to apply all global patterns in the context of only one Use object.

2002-02-24 <arnault@…> 72

  • src
    cmt_system.cxx (command_separator): New method for getting the shell command separator (& or ;)
  • src
    cmt_cvs.cxx (class CvsImplementation): Add CmtSystem::command_separator() between cvs co of each branch (instead of newlines).
  • src
    cmt_system.cxx (has_device): Accepts the

    xxx
    syntax as a device name in file paths on windows.
  • src
    cmt_parser.cxx (configure_cmt_path): Hide show_set action when recursive definition of CMTCONFIG
  • src
    cmt_use.cxx (need_new): Some optimizations

  • src
    cmt_use.cxx (move_to): Exchange the priority of CMTPATH versus version when selecting the best version.
  • src
    cmt_parser.cxx (use_cmt): Hide CMTDEBUG while parsing the requirements of CMT itself

2002-02-20 Christian Arnault <arnault@…> 71

  • src/cmt_parser.cxx (do_broadcast): Fix a bug for setting the style the the Current use. This effect was induced by the new mechanism for constructing the Current Use object, now a singleton of the Use class.

2002-02-07 <arnault@…> 70

  • src
    cmt_use.cxx (change_path): Add a m_located flag in Use class to record the success of the package localization. Test against this info instead of real_path to allow for package found in current directory (where real_path stays empty)
  • src
    cmt_parser.cxx (configure):
  • src
    cmt_use.cxx (show_sub_uses): Ensure that the cmt show uses displays the correct scoping information for uses and sub-uses. cmt show uses also displays the full tree even when it contains private uses.

2002-02-06 <arnault@…> 69

  • src
    cmt_use.cxx (class use_action_iterator): Install UseContext to manage proper propagation of -no_auto_imports

2002-01-30 <arnault@…> 68

  • src/cmt_parser.cxx (parse_arguments): Fix the bug of private environment variables which could not be set even within the package (bug in the management of the -pack= -version= -path= options).
  • src/cmt.h : Install all attributes of the Cmt class as private attributes, and make them follow the convention : m_xxx. This implies to install few accessor methods.

2002-01-29 <arnault@…> 67

  • src/cmt_use.cxx (class use_action_iterator): The private uses are accessed for
    • broadcast operations
    • show uses operations
  • src/cmt_symbol.cxx (action): Expands the specified script name for the setup_script and cleanup_script statement. Protect against empty script names.

2002-01-11 Christian Arnault <carnault@…> parallelbuilds

  • src/Makefile.header: Reorganize basic Makefile fragment generation to permit better support for parallel & concurrent builds. Mimize also the number of makefile fragments generated and kept : only $(tag).make remains in ../cmt . All other are thrown away after use.

Make those changes a branch "parallelbuilds"

2002-01-09 Christian Arnault <carnault@…> 66

  • src/NMakefile.header (tags): Apply the fix for tags onto NMakefile.header

2002-01-07 <arnault@…> 65

  • src/Makefile.header (tags): Attempt to fix the continuity break between v1r9 and v1r10, by re-installing the possibility to use gmake tag=<...> rather than having to use source setup.[c]sh -tag=<...>

(This fix has to be tested before any validation)

2001-11-26 Christian Arnault <carnault@…> 64

  • Tagging v1r10p20011126

  • src/Makefile.header: tag is now ${CMTCONFIG} and tags ${CMTEXTRATAGS}
  • mgr/requirements: Provide the macro tags as ${CMTEXTRATAGS}
  • src/cmt_tag.cxx: Various changes in strategy for tags:
    • tag inclusion (defined by the "tag" statement) transmits the priority.
    • tag selection can be discarded by exclusion specifications. Exclusion qualifies a set of contradictory tags. Contradictory tags will be selected according to their priority or to their declaration order in case of equal priority.
  • src/cmt_parser.h (enum Priority): Change the priority list: Arguments get highest priority then CMTCONFIG then user tags (those defined in requirements)
  • fragments/make_setup: produce uses.make and tags.make
  • src/cmt_parser.cxx (parse_arguments):
  • src/cmt.h (class Cmt): Suppress the mechanism of primary_tag. CMTCONFIG is enough.

2001-11-21 Christian Arnault <carnault@…> 63

  • src/cmt_symbol.cxx (add_value_to_list): fix protection on value_list.size () to start at 1 (not at 2)
  • src/cmt_symbol.cxx (build): Reflective values of Sets should consider previous setenv settings.
  • src/cmt_generator.cxx (build_dependencies): Using ../$(tag) for output base of the dependencies fragment rather then Cmt::current_tag
  • src/Makefile.header (CMTPRIMARYTAG): tag=... argument of gmake will override CMTPRIMARYTAG. However internal tag macro is only replaced with ${CMTCONFIG}
  • fragments/make_setup (config): create a tags.log (for cmt show tags)
  • mgr/cmt_make_shlib_common.sh: Add the ${lib} prefix to the temporary expansion directory. Fix a bug in sed filter for all module files.
  • src/cmt_parser.cxx (configure_tags): Add a protection against absence of CMTPRIMARYTAG
  • src/cmt_system.cxx (create_symlink):
  • src/cmt_system.h (class CmtSystem): Adding the create_symlink function.
  • src/cmt_parser.cxx (do_build_library_links): Using direct system calls to create symlinks.

2001-11-13 Christian Arnault <carnault@…> 62

  • Tagging v1r10p20011113
  • mgr/requirements:
  • src/constituents.make (build_library_links): Define macros for build_library_links and remove_library_links
  • fragments/make_setup (config): Add build_library_links target
  • src/cmt_parser.cxx (set_standard_macros): Fix bad production of use_includes when private is used.
  • src/cmt_parser.cxx (do_broadcast): Fix -begin=<pattern> error

2001-11-08 Christian Arnault <carnault@…> 61

  • src/cmt_version.h: tagging v1r10
  • src/cmt_system.cxx (add_cmt_path): Get cwd alias to each selected path.
  • src/cmt.h (class Cmt): Add cmt_path_cwd vector of all CMTPATH entries normalized to getcwd.
  • src/cmt_generator.cxx (java_file_action):
  • src/cmt_generator.cxx (proto_file_action):
  • src/cmt_generator.cxx (module_file_action): Pass reference to the constituent in order to transmit constituent variables to the fragment.
  • src/cmt_parser.cxx (set_standard_macros): Insert a space character for all generated macro_append operations.
  • src/cmt_fragment.cxx (xxxcopy):
  • src/cmt_fragment.h (class Variable): Adding the expansion of fragments variables using both the ${} syntax AND the $() syntax.
  • src/cmt_tag.h :
  • src/cmt_tag.cxx (is_selected): Change the Tag::selected attribute to bool.

2001-11-07 Christian Arnault <carnault@…> 60

  • src/cmt_symbol.cxx (build): Implement the possibilty to have reflexive asignment to symbols: when a symbol value is exactly specified (from set, macro or path statements) using $(<name>) or ${<name>} or %<name>% then the old value is preserved for all corresponding selectors.
  • src/cmt_parser.cxx (set_standard_macros): Re-activate -import options (that had been discarded!)
  • src/cmt_use.cxx (add): Generate an error when a package is not found (the error was only generated at "cmt show uses")
  • src/cmt_constituent.cxx (show): Display -import options
  • fragments/dependencies: Force checking $(bin)
  • fragments/constituent: Adding some printout to display when constituent fragment is rebuilt
  • src/cmt_parser.cxx (set_standard_macros): Re-validate -no_auto_imports option for use and -import options for constituents.

2001-11-06 Christian Arnault <carnault@…> 59

  • src/cmt_generator.cxx (build_document_makefile): protect against missing files (causing infinite loops in Make)

2001-11-05 Christian Arnault <carnault@…> 58

  • mgr/Makefile (application_suffix): Define application_suffix in the CMT's Makefile
  • src/cmt_parser.cxx (print_context): Do not generate ROOT and CONFIG for cmt_standalone packages.
  • mgr/requirements: Reomving the cmt_selector.cxx source file.
  • src/constituents.make: Force the dirs target for build_library_links
  • src/cmt_parser.cxx (restore_all_tags): Get the value of CMTPRIMARYTAG to configure Cmt::primary_tag.

Leave unchanged the primary_tag and the extra_tags except if overridden through the -tagxxx= options

  • src/cmt_parser.h (enum): Add PrioritySite in the list of possible priorities.
  • src/cmt.h (class Cmt): Add the restore_all_tags function. Add the extra_tags attribute . Change the strategy of tag persistency:

o CMTPRIMARYTAG always contains what had been specified using

the -tag= option,

o CMTEXTRATAGS contains what had been manipulated by -tag_add=

and -tag_remove= options.

o CMTCONFIG is setup independently of the primary tag.

  • src/Makefile.header (primary_tag): Propagate tags using CMTPRIMARYTAG instead of CMTCONFIG (except when CMTPRIMARYtAG is not yet defined)
  • src/cmt_constituent.cxx (parse): Fix the word parsing for constituent specification...

2001-11-02 Christian Arnault <arnault@…> 57

  • src/cmt.h
  • src/cmt_database.cxx
  • src/cmt_database.h
  • src/cmt_parser.cxx
  • src/cmt_parser.h
  • src/cmt_selector.cxx
  • src/cmt_selector.h
  • src/cmt_symbol.cxx
  • src/cmt_symbol.h
  • src/cmt_tag.cxx
  • src/cmt_tag.h: Suppressing cmt_selector objects (only tags are needed!!) Add tag_exclude keyword for building tag-exclusions.

2001-10-31 Christian Arnault <carnault@…> 56

  • mgr/requirements: Don't need to explicitly declare make_fragment headers (automatically declared in the -header= option)
  • src/cmt_symbol.cxx (print_clean): Cleaning up path variables may be either unsetenv when the result is empty or setenv if not.

  • fragments/application_launcher: evolution
  • src/cmt_parser.cxx (configure_tags): protect against empty declaration of CMTCONFIG : by default will take uname...

2001-10-30 Christian Arnault <carnault@…> 55

  • src/cmt_symbol.cxx (clean): Implement the cleanup correctly, with in particular the cleanup of the path variables.
  • src/cmt_parser.cxx (print_context): improve output of cmt show tags
  • src/cmt_symbol.h (class Symbol): Add clean_macro_value for building the result of the clean operations induced by this symbol (only implemented for path_xxx)
  • src/cmt_parser.cxx: New post-context requirements file : user_context in addition to home package. Added Use* use arguments to configure_xxx functions to transfer.
  • src/cmt_parser.cxx(configure_cmt_path): Attempt to make use of CMTPATH definitions from requirements files.
  • src/cmt_parser.cxx(configure_config_selector): Install context information for tag creation
  • src/cmt_parser.cxx(configure_home): Attempt to make use of CMTHOME definitions from requirements files.
  • src/cmt_parser.cxx(configure_user_context): Install user_context management
  • src/cmt_parser.cxx(configure_site_selector): Get CMTSITE from requirements as well
  • src/cmt_parser.cxx(configure_tags): Add a configure_tags finction to retreive tags from all possible sources: CMTCONFIG (from req) then CMTPRIMARYTAG then CMTCONFIG then CMTBIN then append all CMTEXTRATAGS.
  • src/cmt_parser.cxx(parse_arguments): fix parsing bug for the -home= argument
  • src/cmt_parser.cxx(parser): Set action_show_path to be recursive
  • src/cmt_parser.cxx(parser): Call the HOME package just after using CMT. Call the use_context package just after reaching the current package.
  • src/cmt_parser.cxx(print_clean): reformat the output (with newlines). Clear CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG.
  • src/cmt_parser.cxx(print_context): set CMTPRIMARYTAG CMTEXTRATAGS and CMTCONFIG from the current definitions.
  • src/cmt_parser.cxx(set_standard_macros): Rationalize the production of current_tag
  • src/cmt_parser.cxx(use_user_context_requirements):
  • src/cmt_use.cxx (show_all): Display new user_context package
  • src/cmt_use.cxx (class use_action_iterator): query function ok() includes both home_package and user_context_package
  • src/cmt_use.cxx (reach_package): special treatment for home_package and user_context_package since they do not follow the standard location scheme.
  • src/cmt_use.cxx (add): Improve the detection of packages not found.
  • src/cmt_tag.cxx (unmark): Reset the use pointer
  • src/cmt_tag.cxx (action): Install the use origin.
  • src/cmt_tag.cxx (add): Install the use origin and the context information. It will be reset to the new context in case of re-definition. Suppress various excessive debug printouts.
  • src/cmt_tag.cxx (clear): clear use and context new information
  • src/cmt_tag.cxx (show): Improve the display of tags with hierarchical display of subtags and context information.
  • src/cmt_tag.h (class Tag): Added Use* use parameter to action and add methods. Store a pointer to the package (Use*) who originated the definition, and a context string to qualify the definition.
  • src/cmt_system.h (class CmtSystem):
  • src/cmt_system.cxx (add_cmt_paths_from_text): Factor out the code to register a set of CMTPATH entries, with the context information.

  • src/cmt_system.cxx (is_home_package): Add is_home_package and is_user_context_package query functions.
  • src/cmt_system.cxx (get_cmt_site): Default site is empty (instead of LAL)
  • src/cmt_symbol.cxx (print_clean): Suppress some obsolete print_tabs () formattings. Apply unset instead of unset for aliases as well.

  • src/cmt_symbol.cxx (action): Add special treatment for CMTXXX environment variables : the new setting has to be taken into account as soon as it is parsed.
  • src/cmt_selector.cxx (create): remove some debug code.
  • src/cmt_generator.cxx (build_default_makefile): Produce only Makefile on Unix and only NMake on Windows.
  • mgr/requirements: Renaming new script_launcher fragments into application_launcher
  • src/cmt.h (class Cmt): Added Use* use arguments to configure_xxx functions to transfer.

Added use_user_context_requirements () to include post-context requirements file.

Added the static value primary_tag to store the primary tag.

  • src/cmt_generator.cxx (build_default_makefile): Create Makefile only un Unix and NMake only on WIN32

2001-10-24 Christian Arnault <carnault@…> 55

  • src/cmt_parser.cxx (parser): add the recursive property to action_show_path.
  • src/cmt_system.h (class CmtSystem):
  • src/cmt_system.cxx (get_user_context_package):
  • src/cmt_system.cxx (is_user_context_package):
  • src/cmt_use.cxx (add): (show_all): (class use_action_iterator): (reach_package): (add):
  • src/cmt_parser.cxx (configure):
  • src/cmt_parser.cxx (parser):
  • src/cmt_parser.cxx (parse_arguments):
  • src/cmt_parser.cxx (configure_user_context):
  • src/cmt.h (class Cmt):

Adding user_context equivalent of CMTHOME support for post requirements file. The corresponding env. var. is CMTUSERCONTEXT. The complete scheme for supporting PRE-parsed HOME requirements file is exactly copied to those POST-parsed files.

  • mgr/requirements:
  • fragments/script_launcher_header:
  • fragments/script_launcher:
  • fragments/script_launcher_trailer: Introduce a new document generator for launching scripts. The same convention as the check_application is reused, for pre-action, argument passing and post-action. Several scripts (specified in the source list of the document) can be executed in sequence.
  • src/cmt_use.cxx (class use_action_iterator):
  • src/cmt_system.cxx (is_home_package):
  • src/cmt_system.h (class CmtSystem): Add the is_home_package function to encapsulate the syntax of a HOME package (and apply it in Use::use_action_iterator)
  • src/cmt_symbol.cxx (action): Prepare specific actions when the parsed symbol is one of the CMTXXX standard symbols. So far

CMTHOME -> re-configure home.

  • src/cmt_parser.cxx (parser): apply use_home_requirements right after reading CMT requirements file (ie. before reading current package)
  • src/cmt_parser.cxx (configure_home): understand the possible "set CMTHOME" declarations (but keep $CMTHOME)
  • src/cmt_parser.cxx (reach_current_package): * src/cmt_system.cxx (get_cmt_paths): Restore the automatic addition of "current package" in the CMTPATH list.
  • src/cmt_parser.cxx (parse_arguments): bad parsing of the -home=xxx argument

2001-10-23 Christian Arnault <carnault@…> 54

  • mgr/Makefile (demo): Need to add CMTPATH towards ${CMTROOT}/demo since CMTPATH to current package is no longer supported !!!
  • fragments/nmake/check_application (check):
  • fragments/nmake/cleanup_application:
  • fragments/nmake/application_header:
  • fragments/nmake/application:
  • fragments/application:
  • fragments/application_header:
  • fragments/cleanup_application:
  • fragments/check_application (check):
  • mgr/requirements: Create a new standard macro "application_suffix" for making possible to change the .exe default suffix of applications

2001-10-22 Christian Arnault <carnault@…> 53

  • src/cmt_parser.cxx :
  • src/cmt_system.cxx : Suppress the automatic addition of current package's path into CMTPATH.
  • mgr/Makefile: Change the method to rebuild cmt_dependencies by copying what is obtained from CVS. Rebuild it manually when needed.

2001-10-19 Christian Arnault <carnault@…> 52

  • fragments/make_setup (config): Creating uses.log needs to use an intermediate temporary file
  • src
    setup.[c]sh : Avoid re-definition of CMTCONFIG
  • src
    cmt_use.cxx (add): temporarily discard the mecanism by which uses.log files are read before the requirements files.
  • src
    cmt_system.cxx (is_version_directory): returns -1 for fields that were wildcarded
  • src
    cmt_use.cxx (add):
  • src
    cmt_use.cxx (need_new):
  • src
    cmt_use.cxx (BestFitSelector::operate): Start the implementation of priority control between explicit use specification over wildcarded ..
  • src
    cmt_parser.cxx (reach_current_package): Change the value of the CMTPATH for the current package once it has been reached (but before reading its requirements file)

  • src
    cmt_parser.cxx (install_setup_scripts): (improvement) Add the transfer of arguments towards cmt.exe into setup.bat
  • src
    cmt_system.cxx (get_cmt_paths): (bug fix) path_sources was not cleared as paths. Prepend "current path" to the path list under "current package".
  • src
    cmt_parser.cxx (parse_arguments): (bug fix) Suppress enclosing quotes around cmt.exe arguments so that setup.bat can transmit arguments properly

call setup.bat "-tag_add=a,b,c"

2001-10-18 Christian Arnault <carnault@…> 51

  • src/cmt_parser.cxx (set_standard_macros): Set current_tag to CMTBIN when in CMT itself (not complete yet)

  • src/cmt_generator.cxx (build_dependencies): Use CMTBIN for CMT itself (instead of current_tag) well this should be cured later on to ensure that current_tag is always set to CMTBIN for CMT itself
  • src/cmt_version.h (CMTVERSION): install v1r10 (not tagged yet)
  • mgr/cmt_system.sh: Do not try to use AFS on Darwin and LynxOS.
  • src/setup.[c]sh: Define CMTBIN as uname on Unix and CMTCONFIG as cmt_system.sh
  • src/cmt_symbol.cxx (show_macro): the trailing space must be added only for WIN32 !!

2001-10-17 Christian Arnault <carnault@…> 50

  • src/cmt_symbol.cxx (show_macro): add a trailing space on all macro definitions (to avoid problem of trailing backslash)

  • src/cmt_parser.cxx (set_standard_macro): remove the insertion of trailing spaces after the last backslash for WIN32/NMake
  • src/constituents.make (all): (bug fix) re-install the build_library_links action for the all target

2001-10-11 Christian Arnault <carnault@…> 49

  • src/cmt_version.h: Tagging for v1r9p20011011

  • fragments/library: (bug fix) transmit both -tag=<tag> and -tag_add=<tag_list> to cmt_make_shlib_common.sh

2001-10-11 Christian Arnault <arnault@…> 48

  • src/cmt_parser.cxx: remove debug print options

2001-10-10 Christian Arnault <arnault@…> 47

  • src/cmt_parser.cxx (parse_arguments): fix problems in multiple tag management.

converge in the question of HOME requirements file to support

  • no default
  • define the path to the HOME requirements file in ${CMTHOME}

converge in the arguments for manipulating the extra tags

-tag=<tag> -tag_add=<tag-list> -tag_remove=<tag-list>

2001-10-03 Christian Arnault <carnault@…> 46

  • src/constituents.make (makefilesclean): Make all action lists run in one single shell (ie. use ;
    everywhere)

Make an explicit target for build_library_links Make it called before any group

2001-10-02 Christian Arnault <carnault@…> 45

  • src/cmt_awk.h (class Awk): add a state variable (m_continuation_allowed) which when true, take into account the trailing backslashes, so as to first accumulate continued lines into one. Add the allow_continuation method to base Awk class.

2001-10-01 Christian Arnault <carnault@…> 44

  • src/cmt_cvs.cxx (class CvsImplementation): Bug in checkout_from_requirements. Did not accept leading spaces on use statements.

2001-09-27 Christian Arnault <carnault@…> 43

  • src/cmt_version.h: Tagging for v1r9p20010927
  • src/setup.zsh: add the -begin option to the auto-expansion.
  • src/cmt_use.cxx (show_all): Visualize the HOME package when applicable.
  • src/cmt_system.cxx (get_home_package): (also do some formatting cleanup)

  • src/cmt_system.h (class CmtSystem): Adding get_home_package function to build the name given to the HOME package (provides the HOME requirements file)

2001-09-26 Christian Arnault <arnault@…> 42

  • src/cmt_parser.cxx (do_show_macro): Improving error detection on cmt show macro/set
  • doc/CMTDoc.html: Improve the doc.
  • src/cmt_parser.cxx (print): produce the CMTEXTRATAGS environment variable, at setup time.

(parse_arguments): take into account this new

env.var. to retreive previous extra tags.

  • src/Makefile.header: Add the CMTEXTRATAGS environment variable to propagate additional tags to Make.

  • fragments/make_setup:
  • fragments/constituent:
  • src/Makefile.header:
  • src/constituents.make: Adding -tag=$(tags) to all calls to cmtexe
  • src/cmt_system.h (class CmtSystem): Adding the bool testenv (name) function to test if an environment variable is defined or not.
  • src/cmt_parser.cxx (use_home_requirements):
  • src/cmt.h (class Cmt): Adding support of CMTHOME environment variable for specifying home requirements file. Default value will be ${HOME}. And can be overridden through the -home=<directory> global option. An explicit empty value (or set to eg. NONE) will discard the feature
  • src/cmt_parser.cxx (parse_arguments): Implement the tag list (comma separated list of extra tags) option -tag=<tag-list> to specify a list of tags to validate.

2001-09-25 Christian Arnault <carnault@…> 41

  • src/setup.csh: fixed PATH settings (may accept a path with space characters eg. for Darwin)

  • mgr/cmt_system.sh: Insert the knowledge of Darwin OS (Mac OS X). The default CMTCONFIG will be Darwin.
  • src/constituents.make (makefilesclean): Ensure that removal of makefile fragments is performed AFTER all cleanup uperations.
  • src/cmt_parser.cxx (use_home_requirements): Add the systematic search for a requirements file located in ${HOME}. This requirements file when found, is systematically parsed AFTER the requirements file of the current package has been parsed (so as to give the highest precedence to its statements)

(do_remove_library_links): Upgrade "remove library_links" to make it compliant to the algorithm used in "build library_links"

2001-09-24 Christian Arnault <carnault@…> 40

  • src/cmt.h (class Cmt): * src/cmt_parser.cxx (configure): Add a global configure_error variable to store the possible error produced during the configuration. (install_test_setup_scripts): Add the -quiet option to the build temporary_name command used in setup script generation.
  • src/cmt_error.cxx (get_last_error):
  • src/cmt_error.h (class CmtError): Add get_last_error to retrieve the formatted text of the last error.
  • src/cmt_symbol.cxx (create):

(all_print): (print): (build):

  • src/cmt_parser.cxx (select): Understand the "path" statement as a complete re-definition of a path-like variable.
  • src/cmt_system.cxx (add_cmt_path):
  • src/cmt_error.cxx (class Error):
  • src/cmt_error.h (class CmtError): Adding "path not found" error code, for CMTPATH checking.
  • src/cmt_pattern.cxx ((const cmt_string& name): Return a warning for pattern not found.
  • src/cmt_error.h (class CmtError):
  • src/cmt_error.cxx (class Error): Adding "pattern not found" error code, for showing diagnostics in "cmt show pattern"
  • src/cmt_parser.cxx (do_show_macro): Return a warning for symbol not found.
  • src/cmt_error.h (class CmtError):
  • src/cmt_error.cxx (class Error): Adding "symbol not found" error code, for showing diagnostics in "cmt show macro/set"

2001-09-19 Christian Arnault <carnault@…> 39

  • mgr/cmt_make_shlib_common.sh : return a status value which reflects the success or failure of the shared library build command.
  • src/cmt_cvs.cxx (class CvsImplementation): Discard the versions specified with wild cards in the recursive checkout.
  • src/cmt_triggers.cxx: Protect the error messages in the trigger facility by Cmt::quiet.
  • src/cmt_constituent.cxx (class constituents_action_iterator): temporarily discard the -triggers option.

2001-08-24 Christian Arnault <carnault@…> 38

Tagging v1r9p2001p0824

2001-08-24 Christian Arnault <carnault@…> 38

  • mgr/cmt_system.sh: Improve the reliability of the cmt_system.sh script against variants of "fs sysname"

2001-08-23 Christian Arnault <carnault@…> 37

  • src/cmt_cvs.cxx (class CvsImplementation): Since the tag filter is back to cmtcvs.cxx, the temporary forced tag filter in CMT is removed.
  • src/setup.zsh: upgrade the completion for the broadcast command.
  • src/cmt_parser.cxx (do_broadcast): Make the -select independent of the -local or -global options. This is achieved by adding a "path_selections" list only managed by the -depth, -local -global modifiers while the "selections" list is managed by the -select modifier. The -exclude is left unchanged.

2001-08-22 Christian Arnault <carnault@…> 36

  • src/cmt_cvs.cxx (class CvsImplementation): Add the possibility to transmit a flag to the CVS pluggin, by inserting a /cmtcvstest in the module name to import. This will have to be decoded by the CVS pluggin itself !!

2001-08-21 Christian Arnault <carnault@…> 35

  • src/setup.tcsh: Improving the tcsh completion mechanism (for cmt co).
  • src/setup.zsh: Improving the zsh completion mechanism (for cmt co).
  • src/cmt_cvs.cxx (class CvsImplementation): Converging on HEAD management strategy...

Starting implementation of the Atlas filter for CVS tags right into cmt_cvs.cxx rather than inside the CVS pluggin...

2001-08-20 Christian Arnault <carnault@…> 34

  • src/cmt_cvs.cxx (class CvsImplementation): Improving the recursive checkout process

2001-08-20 <arnault@…> 33

  • src
    cmt_cvs.cxx (class CvsImplementation): Reorganizing some CVS operations:<ul> <li> Apply the CMTCVSOFFSET env. variable to all actions (tags, branches, subpackages) <li> cleanup checkout algorithms (remove some obsolete variables) <li> add the -requirements <requirements-file-path> option to checkout according to

a set of use statements.

<li> remove the inheritance to Awk of CvsImplementation to split the filter into 2

phases (implemented as 2 separated Awk derived classes) RecursivePass1 and RecursivePass2.</ul>

2001-08-16 Christian Arnault <carnault@…> 32

  • src/cmt_symbol.cxx (print): Bug in path_remove when the specified path variable only contained one item : the remove operation was not applied.

2001-07-20 Christian Arnault <arnault@…> 31

  • src/cmt_version.h: setting the patch v1r9p20010720

2001-07-20 Christian Arnault <carnault@…> 30

  • src/cmt_regexp.h (cmt_regexp::begin): Add an optional pos argument to the begin method.
  • doc/CMTDoc.html: Improvements, English cleanup...

2001-07-18 Christian Arnault <carnault@…> 29

  • src/cmt_cvs.cxx (CvsImplementation::checkout_package): Change the mechanism to get top files, since the " -d . " does not work anymore when CVSROOT is set to kserver!!!!

2001-07-16 Christian Arnault <carnault@…> 28

  • doc/CMTDoc.html: Old PREFIX fragment variable has been replaced by FILEPATH long ago. This was not upgraded in the doc.
  • fragments/constituent: The -f <file> MUST be specified BEFORE other Make flags!!
  • fragments/dependencies: Tried to comment out the dependencies to cmt_path.make etc... but it confused the dependencies fragment production. Uncomment it but need to understand the side effect.

2001-07-09 Christian Arnault <carnault@…> 27

  • src/cmt_generator.cxx (build_readme): Bug: the VERSION variable was not used for installing the readme_trailer (although the documentation was mentioning it)

2001-07-04 Christian Arnault <carnault@…> 26

  • src/cmt_version.h: setting the patch v1r9p20010704

2001-07-02 Christian Arnault <carnault@…> 25

  • fragments/dependencies: Cleaning some old debug printouts.
  • src/cmt_cvs.cxx (class CvsImplementation): Bug in replacing the wild card expression. v5r* has to be replaced by v5r0 while v5* has to be replaced by v5 in case no matching tag exists in the CVS repository. Other bug : All split operations should be performed against "
    t" (include tab character)

2001-06-29 Christian Arnault <carnault@…> 24

  • src/cmt_cvs.cxx (class CvsImplementation): Final Validation of the change in the implementation of the m_installed stack used to avoid recursion due to dependency cycles.

2001-06-22 Christian Arnault <carnault@…> 23

  • src/cmt_cvs.cxx (class CvsImplementation): doing some optimizations for the big checkout operations.
  • src/cmt_parser.cxx (do_config): Remove .[n]make files also from the binary directory.
  • src/cmt_cvs.cxx (class CvsImplementation): Always fetch the cmt branch at HEAD even if the checkout operation is applied to a required tag (temporary feature).

2001-06-18 <arnault@…> 22

  • src
    cmt_cvs.cxx (class CvsImplementation): insert a space between top tags and other tags.
  • mgr
    cmt_make_shlib.bat: Write extra options received through arguments into a temporary option file, used by @<optionfile> to resolve line-too-long prolems.
  • fragments
    nmake
    cpp_library:
  • fragments
    nmake
    cpp: Add the /Tp qualifier for allowing non-standard file suffixes.

2001-06-05 Christian Arnault <arnault@…> 22

  • src/cmt_use.cxx (class use_action_iterator): Default to the -no_auto_import was to keep the most recent specification. Change this to always request auto_import by default, (unless otherwise specified)

2001-06-01 Christian Arnault <arnault@…> 22

  • src/cmt_parser.cxx (do_broadcast): Bug fix in do_broadcast: the -begin option wrongly implied the -global option.

2001-06-13 <arnault@…> 22

  • src/cmt_cvs.cxx (class CvsImplementation): Improving the strategy for getting version tags from the repository: o If a request specifies a tag which is not applied to the

requirements file, the specified tag is used to create the version directory but the HEAD is used in the repository.

o CvsImplementation::show_cvs_infos () :

stores all received infos into xxx_info corresponding local properties. Thus this method is only called once per package.

o Error messages are really obtained from the error_info field.

2001-05-30 Christian Arnault <arnault@…> 22

  • src/cmt_generator.cxx (build_document_makefile):
  • src/cmt_system.cxx (get_dot_suffix): fix bug for file_names without any suffix
  • src/cmt.h & src/cmt_parser.cxx (set_standard_macros): Add a state standard_macros_done to protect against multiple calls to set_standard_macros.

2001-05-28 Christian Arnault <arnault@…> 22

  • src/cmt_cvs.cxx (class CvsImplementation): display the tags in a one-per-line basis instead of space separated when doing cmt cvstags.
  • src/cmt_use.cxx (operate): Make the version selector operator a little bit more quiet...

2001-05-25 Christian Arnault <arnault@…> 22

  • mgr/Makefile (demo): improve the gmake check action in the demo target.
  • src/cmt_use.cxx (fill_macro_all): build use_xxx standard macros using macro_append instead of macro.

2001-05-22 Christian Arnault <arnault@…> 22

  • src/cmt_parser.cxx (do_broadcast): Fix the default (-local) option to act as -depth=1. Improve some error messages.

2001-05-21 <arnault@…> 21

  • src
    setup.bat: Improved skeleton for setup.bat. Base it on CMTBIN rather than on CMTCONFIG. Do not override CMTCONFIG if defined by the user. Do not care about PATH for Visual tools.
  • mgr
    install.mak: change the strategy for building the setup.bat script for CMT itself at INSTALL time. Now copy ..
    src
    setup.bat skeleton.
  • mgr
    requirements: Fix WIN32/VisualC tag definitions and PATH settings for cleaner handling of default tag overriding.
  • src
    cmt_use.cxx (operate): Implement the algorithm for using aliases to alternate version specification in uses.

2001-05-18 Christian Arnault <arnault@…> 21

-> Tag CMTv1r9p20010521

  • src/cmt_use.cxx (show_sub_uses): Start the implementation of version_alias and path_alias for equivalencing two version naming policies.
  • src/cmt_cvs.cxx (class CvsImplementation): Adding the -o offset option to cmt checkout for specifying a global offset to the base CVS repository. This offset will be prepended to all modules during the various CVS operations.

the m_offset attribute is added to the CvsImplementation class.

(class CvsImplementation): Improve protection against CVS modules not found.

(class CvsImplementation): Added the --help option the cmt checkout.

2001-07-10 Christian Arnault <carnault@…> b-21

  • mgr/requirements: add the -tag=$(tag) option to the build_dependencies macro.
  • fragments/dependencies: take the improvements into account.
  • src/cmt_generator.cxx (build_dependencies): Improve the dependency builder: re-generate all entries of the <constituent>_dependencies.make that are missing from the complete source list (thus regenerate it when it is empty). Optimize the file scan for getting the new source list.
  • src/cmt_parser.cxx (do_build_dependencies): Dynamically shifts arguments of the build dependencies command to keep only the new-source-list. The complete command being "cmt <args> build dependencies <constituent-name> <new-source-list>"

(do_config): drop all makefile fragments from the mgr/cmt directory AND from the binary directory.

2001-05-11 Christian Arnault <arnault@…> 20

  • Moving to v1r8

2001-05-11 Christian Arnault <arnault@…> 19

  • src/cmt_deps_builder.cxx (): Augmented local internal line buffer (from 1024 to 16384).
  • doc/CMTDoc.html: document the new &lt;package>_root macro
  • src/cmt_parser.cxx (set_standard_macros) (get_best_form): Define a new set of standard macros using the pattern <package>_root similar to <PACKAGE>ROOT except that this new definition uses the get_best_form, with a relative path to the package. The <PACKAGE>ROOT macro is restored to the previous convention, that it uses the absolute path.

  • src/cmt_use.cxx (fill_includes_macro): Adapt the fill_includes_macro to use the new <package>_root standard macro

2001-05-10 Christian Arnault <arnault@…> 18

  • src/cmt_parser.cxx (do_broadcast): Add the -begin=<pattern> option to start the broadcast loop from a given package. This option can be combined with other options such as -select or -exclude.
  • src/cmt_generator.cxx (filter_paths): Suppress two unused variables.
  • src/cmt_use.cxx (add): Bug fixing: during the discovery of versions requested for a given package, the discarded versions were not correctly replaced by the finally selected version, especially in the Use::get_paths method. The Use::get_selected_version has been added to obtain the effective replacement for a discarded version.
  • fragments/check_application: suppress the ". setup.sh" before application run.

2001-05-04 Christian Arnault <carnault@…> 17

  • src/cmt_parser.cxx (set_standard_macros): The production of all use_xxx standard macros now is based on a "macro_append" keyword instead of "macro", since "macro" resets all previous definitions. Therefore if the user's requirements did augment those use_xxx macros, these specifications would be ignored.

(do_broadcast): Set the -local option to broadcast the default. Add the -global option to revert to the old default (with no selection and to any depth)

2001-05-03 Christian Arnault <carnault@…> 17

  • src/cmt_symbol.cxx (add_value_to_list): A new macro or set keyword resets (discards) all previous definitions for the corresponding symbol.
  • src/cmt_symbol.h (class SymbolValueList): Added an attribute discarded for symbol resetting.
  • src/cmt_parser.cxx (print_macros): Exclude scripts from macros defined in the $(tag).make file.

2001-04-27 Christian Arnault <carnault@…> 16

  • src/cmt_parser.cxx (get_best_form): Validate the compression algorithm for paths to packages (only for the macro <PACKAGE>ROOT
  • this is still not true for the <PACKAGE>ROOT environment variable) into a relative form when it is shorter than the absolute form.
  • src/cmt_system.cxx (compress_path): Fix the algorithm for compressing the patterns "aaaa/xxxx/../bbbb" into aaaa/bbbb.
  • src/cmt_generator.cxx (filter_paths): use CmtSystem::compress_path instead of duplicating its algorithm for erasing "/aaa/.." patterns

2001-04-25 Christian Arnault <carnault@…> 15

  • src/cmt_parser.cxx (set_standard_macros): Prepare the production of <PACKAGE>ROOT macros as relative paths rather than absolute ones, when the relative expression is shorter than the absolute one. Temporarily, trigger that feature by setting the CMTTESTPREFIX environment variable until absence of side effects is confirmed.

2001-04-18 Christian Arnault <carnault@…> 15

  • src/cmt_generator.cxx (build_readme): bug when generating the readme_trailer fragment : the PACKAGE variable should be reset to current.

2001-04-11 Christian Arnault <arnault@…> 15

  • src/cmt_generator.h (class Generator):
  • src/cmt_parser.cxx (do_build_readme):
  • src/cmt.h (class Cmt): do_build_readme now propagates argument list
  • fragments/readme_trailer:
  • src/cmt_generator.cxx (build_readme): Added DATE and USER information when building the README.html file. readme_trailer fragment updated accordingly.

(build_readme): Add the -url=<url> argument to the cmt build readme command. The specified URL will be used in place of the package path when generating the URL for used packages.

2001-04-18 Christian Arnault <arnault@…> 14

  • src/cmt_symbol.cxx (build): In all builder objects, symbol value lists registered by discarded Uses are now ignored.
  • src/cmt_symbol.h (class SymbolValue): cleanup a comment.
  • src/cmt_symbol.cxx (print): protect setup script execution against missing files.

2001-04-10 Christian Arnault <arnault@…> 13

  • src/cmt_generator.cxx (build_readme):
  • fragments/readme_use: building readme.html requires to know the mgr/cmt style of each used package. This fragment now requires a fourth variable MGRSTYLE which reflects the use->mgr_style attribute. Generator::build_readme fills in this new variable.

2001-04-06 Christian Arnault <arnault@…> 12

  • src/cmt_parser.cxx (reach_current_package): Use CmtSystem::getenv instead of base getenv

  • src/cmt_symbol.cxx (action): Now really private stuff is selected when access is at UserMode and scope is Private.
  • src/cmt_use.cxx (add): This method does not need to maintain current scope and access mode any longer.
  • src/cmt_parser.cxx (parse_requirements): Cmt::parse_requirements now manages the AccessMode and Scope when recursing into requirements files of used packages.

Cmt::scope handles the sticky state provided by private/public statements Cmt::current_access handles the access mode that reflects the situation of the user

  • src/cmt_parser.h (enum): introduce the AccessMode to distinguish between DeveloperMode (when pwd is in the current package directory) and UserMode (otherwise).
  • src/cmt.h (class Cmt): Cmt::current_mode is now current_access and is of type AccessMode
  • src/cmt_parser.cxx (reach_current_package): Use CmtSystem::getenv instead of base getenv
  • src/cmt_use.cxx (Use::get_paths):
  • src/cmt_pattern.cxx (Pattern::apply ()) : bug in computing the path between two Uses. The result now includes the current Use.

2001-04-05 <arnault@…> 12

  • src
    cmt_tag.cxx (Tag::add(const cmt_string& name, int priority): clear a newly created Tag object (to deal with the reuse of old objects)
  • src
    cmt_pattern.cxx (Pattern::add) : clear a newly created pattern object (to deal with the reuse of old objects)
  • src
    cmt_use.h (class Use): Add Use::author_action and Use::manager_action to fill in the author and manager information.
  • src
    cmt_parser.cxx (select): fill in author and manager values with the complete line. When several author and manager statements are provided, fill in as several lines (separated with a new-line).
  • src
    cmt_generator.cxx (analyze_file (const Constituent& constituent, const cmt_string& file) : production of objects for libraries and applications is strictly identical.

2001-04-03 Christian Arnault <arnault@…> 11

  • src/cmt_constituent.cxx (clear): constituent.parameters was not cleared in Constituent::clear
  • src/cmt_symbol.cxx (build): add cleanup ValueList objects after their addition for ensuring a really new value (due to cmt_string optimizing)

2001-04-03 Christian Arnault <carnault@…> 10

  • mgr/Makefile: Operate the demo targets on different make action lines
  • src/Makefile.header: Added -tag=$(tag) to cmt actions
  • fragments/generator_header: create the output directory if needed

2001-04-02 <arnault@…> 9

  • fragments
    nmake
    constituent: added the -tag=$(tag) option to cmt build actions
  • src
    cmt_parser.cxx (parser): show_constituentxxx recursively reads used requirements files
  • src
    cmt_pattern.cxx (Pattern::apply () const): protection added for the case where the pattern is applied to the package that defines it.

2001-03-29 Christian Arnault <carnault@…> 8

  • src/cmt_use.cxx (get_paths):
  • src/cmt_use.h (class Use):
  • src/cmt_pattern.h (class IgnorePattern):
  • src/cmt_pattern.cxx (const apply): Bug in apply global patterns : a pattern defined in one package should only be applied to the Uses that are on one of the paths between the current Use and the one wher the pattern is defined (and not to the Uses that never pretend to inherit that pattern!!!)

This required to implement the Use::get_paths which fills in the inclusive list of all Uses that are between two Uses.

2001-03-27 Christian Arnault <carnault@…> 7

  • fragments/dependencies: protection against missing dependency make fragment during clean operations.
  • src/cmt_constituent.cxx (class constituents_action_iterator): the -suffix= option was hidden by the user variable specification while parsing the constituent parameters.

2001-03-23 Christian Arnault <carnault@…> 6

  • mgr/requirements: clean up WIN32 tag variants definitions
  • src/Makefile.header (setup.make): Display of the target in case of target not found (.DEFAULT)
  • fragments/make_setup (csh): few checks
  • fragments/installer: add the creation of $(install_dir) if needed

2001-03-21 Christian Arnault <arnault@…> 5

  • src/cmt_parser.cxx (parse_arguments): When the tag specified in the command line arguments (using -tag=<tag>) is the same as CMTCONFIG, then still validate the tag given by uname
  • fragments/dependencies: generate ${CONSTITUENT}_dependencies.make into $(bin)
  • fragments/constituent: generate ${CONSTITUENT}.make into $(bin)
  • src/cmt_constituent.cxx (parse):
  • src/cmt_constituent.h (class Constituent): Added the two-step parsing of the constituents specifications : first stage during parsing of the requirements file, parameters are simply stored in the constituent object and not interpreted. Second stage : after building the standard macros (once requirements files have entirely been read) then constituent objects are parsed.
  • src/cmt_parser.cxx: Add Constituent::parse_all in Cmt::set_standard_macros to finalize the constituent parsing. Install set_standard_macros in several additional actions

2001-03-16 Christian Arnault <arnault@…> 4

  • src/cmt_cvs.cxx (class CvsImplementation): Get the files at the top directory when doing a cmt checkout.

Only checkout at head for the top package (ie do not recurse at head) and when -r is not specified.

  • src/cmt_symbol.cxx (resolve_value_for_macros): Perform the substitution of ${} to %% (or reverse) even if the env. var. is not defined in CMT.
  • src/cmt_parser.cxx (install_setup_scripts): Setup scripts on Windows generate the temporary expansion script in %HOMEDRIVE%%HOMEPATH%.

2001-03-16 Christian Arnault <carnault@…> 3

  • mgr/requirements: clean up variants for VisualC and VisualC/debug

2001-03-15 <arnault@…> 2

  • src
    cmt_use.cxx (class use_action_iterator): Strange name conflict: the use_action_iterator::set method is in conflict with something else when the class is named "action_iterator" (is it a conflict with the same private class defined in Symbol.cxx ??)
  • src
    NMakefile.header (cmtexe): Fix for re-building cmt when cmt.exe does not exist.

2001-03-13 Christian Arnault <arnault@…> 1

  • src/cmt_use.cxx (class action_iterator): Introducing the action_iterator class for managing the local expansion of macros in the syntax parser (similart to what was done in Symbol::action)
  • src/cmt_generator.cxx (Generator::build_make_setup) when generating setup.make, the default value for constituents is extracted from the constituents macro.

2001-03-06 Christian Arnault <arnault@…>

  • src/cmt_cvs.cxx (class CvsImplementation): Show both top tags and non-top tags in cmt cvstags.
  • doc/CMT.htm: Addition of several slide shows (from Atlas)
  • mgr/cmt_buildcvsinfos2.sh (error): The awk script had to be protected against multiple ocurrences of the /symbols/,/locks/ pattern.

Implement both in python and in shell script the differntiated production of top tags and non-top tags. Top tags are the set of tags sharing the most recent CVS tagged version id (ie. the HEAD may be more recent)

2001-03-05 <arnault@…>

  • src
    cmt_parser.cxx (do_build_library_links): Handle libraries specified as a full path in <package>_libraries
  • src
    cmt_parser.cxx (print_context):
  • src
    cmt_symbol.cxx (all_print): Use one line per env. var. assignment when generating setup scripts (instead of ; separated instructions) . The latter style should be no longer needed since we use temporary files.
  • src
    cmt_parser.cxx (set_standard_macros): Add CMTCONFIG to the standard sets, so as to let it known as a plain "symbol"

2001-03-02 <arnault@…>

  • src
    cmt_system.h: introduce the CmtSystem::ev_open () and CmtSystem::ev_close () to get the OS-dependent pattern for environment variable definition.
  • src
    cmt_symbol.cxx (resolve_value_for_macros): Substitute patterns ${xxx} or %xxx% to the appropriate OS-dependent pattern when producing "set" values only (this is only done when the pattern is not already the good one)
  • src
    cmt_parser.cxx (install_setup_scripts): Changed

    ${tempfile} into >${tempfile} in setup scripts (fix a constraint

    in csh)

2001-02-26 Christian Arnault <arnault@…>

  • src/cmt_parser.cxx (do_build_temporary_name): Add the build temporary_name command to supply that missing function on various shells. (install_test_setup_scripts): Apply this new build service to setup scripts generation.
  • src/Makefile.header: Needed a trailing end-of-line

2001-02-15 Christian Arnault <arnault@…>

  • src/cmt_cvs.cxx (class CvsImplementation): Fix misuse of checkout_package arguments (confusion between package path and checkout directory)

2001-02-26 <arnault@…>

  • src
    cmt_parser.cxx (install_test_setup_scripts): use mktemp for setup scripts.
  • mgr
    requirements: Suppress local private configuration of MSVC++. It has to be done previously to operate on CMT (even before making the INSTALL.bat)

2001-02-26 Christian Arnault <arnault@…>

  • src/cmt_deps_builder.cxx ((char* ptr,

state_def& state, const cmt_string& dir_name, int current_path_index, const CmtSystem::cmt_string_vector& include_paths, const CmtSystem::cmt_string_vector& substitutions, CmtSystem::cmt_string_vector& all_deps, CmtSystem::cmt_string_vector& deps)

  • src/cmt_generator.cxx ((const cmt_string& file_name)

Rollback recent change to work on cmt_strings rather than char* to restore speed.

2001-02-15 Christian Arnault <arnault@…>

  • src/cmt_generator.cxx (build_dependencies): Restore the mechanism that takes into account the arguments, and the source list when -all_sources option is provided.
  • mgr/requirements: change /machine:I386 into /machine:IX86 as link option for VisualC

2001-02-13 <arnault@…>

  • src
    cmt_generator.cxx (build_dependencies): Do not require the source list from the arguments. Instead, get the sources directly from the constituents definition.

The "cmt build dependencies" now only requires the constituent name.

  • src
    cmt_deps_builder.cxx: Read files at once into a cmt_string and work from the text instead of reainf line by line from the file.

Install the detection of fortran include statements

2001-02-06 <arnault@…>

  • src
    cmt_use.cxx: clean up space & tabs
  • cmt_parser.cxx (parse_requirements_text): Abort the parser in case of error, but only for check configuration command.
  • NMakefile.header (lex_echo): Add -quiet option to cmt command except cmt check configuration

  • constituents.nmake: Add -quiet option to cmt command

2001-01-30 <arnault@…>

  • all dsp fragments : suppress the Win32 Release configuration. Only keep the Win32 Debug. This makes possible the generation of msdev using the syntax cmt build msdev -tag=VisualCdbg

2001-01-30 <arnault@…>

  • mgr/cmt_buildcvsinfos.py: first attempt to make the cvs script written in Python
  • mgr/requirements: Consistently base Windows tag on VisualC rather than WIN32

upgraded setup.tcsh setup.zsh

introduced cmt show include_dirs

introduced cmt show constituent <name>

bug in Pattern::add : overridden patterns were not cleared.

cmt config must recursively get used packages (at least to get patterns)

introduced cmt show pattern_names (at least for completion mechanisms)

new action : action_show_pattern_names

experimental work started on build triggers

macro build_triggers

implied_library_prefix implied_library_sufffix

new library option -triggers new constituent attribute build_triggers new fragment dependencies_and_triggers for libraries

bug in cmt_system.cxx::scan_dir

Recursively get all requirements file in cmt config action

Changed strategy for argument parsing error detection

2001-01-30 <arnault@…>

  • cmt_use.cxx ((const cmt_string& from_path) : bug in detection of "use pack " without version specification at all (ie equiv. to *). We needed to check we are on a real CMT package.
  • cmt_constituent.cxx (class action_iterator): Expand the macros before acting upon a constituent specification. Each expanded word may then result in several words. Thus the line parser is re-implemented through a local operator class "action_iterator", in charge of filling up a new constituent object from the expanded statement. (Note that this mechanism could perfectly be reused for other statements eg "use" !!!)
  • cmt_parser.cxx (set_standard_macros): Implement all_constituents and all_constituentsclean unconditionally.
  • NMakefile.header (checkuses): if defined statements require that the macro to test is provided without quotes.
  • cmt_generator.cxx: Apply the new convention of installing object files into $(bin)${CONSTITUENTS} also for applications (was only done for libraries)
  • cmt_parser.cxx (print_context): Take the current CONFIG name from CmtSystem::get_cmt_config rather than recursively calling "cmt system", when generating setup scripts.
  • cmt_cvs.cxx (class CvsImplementation): Use '/' \303\255nstead of CmtSystem::file_separator for CVS-only file specs.

2000-12-26 <arnault@…>

  • cmt_fragment.h (class Fragment and FragmentHandle): Install all variants of (win)copy methods that act upon a cmt_string instead of a FILE*.
  • cmt_model.cxx: Create the implementation file for CmtModel
  • cmt_model.h (class CmtModel): Create the CmtModel class
  • cmt_parser.cxx (do_expand_model): Add the new command verb : 'expand model' and all associated features (do_expand_model): call the CmtModel::expand
Note: See TracBrowser for help on using the repository browser.