diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2003-07-29 12:48:30 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2003-07-29 12:48:30 +0000 |
commit | 01ff2c88904b92b9224f20c8cca13785620b2ad6 (patch) | |
tree | 70afef4baa2681cf0364fa87200e2f7fd1cbd6e1 | |
parent | 9aed33ce2594649db8c08c9f05a5bd16447c2dc6 (diff) | |
download | ATCD-01ff2c88904b92b9224f20c8cca13785620b2ad6.tar.gz |
ChangeLogTag: Tue Jul 29 07:46:58 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r-- | ChangeLog | 35 | ||||
-rw-r--r-- | bin/MakeProjectCreator/README | 21 | ||||
-rw-r--r-- | bin/MakeProjectCreator/modules/Creator.pm | 15 | ||||
-rw-r--r-- | bin/MakeProjectCreator/modules/WorkspaceCreator.pm | 20 | ||||
-rw-r--r-- | examples/examples.mwc | 4 |
5 files changed, 75 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog index f4949f5b2e1..116ca38c6f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,22 @@ +Tue Jul 29 07:46:58 2003 Chad Elliott <elliott_c@ociweb.com> + + * bin/MakeProjectCreator/README: + * bin/MakeProjectCreator/modules/Creator.pm: + * bin/MakeProjectCreator/modules/WorkspaceCreator.pm: + + Change the way the 'implicit' keyword works. It now takes both + boolean values and character strings that represent base projects + for implicitly generated projects. See the README for more + details. + + * examples/examples.mwc: + + Utilize the new 'implicit' functionality. + Mon Jul 28 22:00:00 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu> - * bin/footprint_stats.sh: Added new libraries that were not - covered. + * bin/footprint_stats.sh: Added new libraries that were not + covered. Mon Jul 28 15:06:32 2003 Jeff Parsons <j.parsons@vanderbilt.edu> @@ -23,16 +38,16 @@ Mon Jul 28 18:29:38 UTC 2003 Don Hinton <dhinton@dresystems.com> Mon Jul 28 13:01:49 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu> - * ace/UUID.h: - * ace/UUID.cpp: The implementations are now placed in a namespace - ACE_Utils. Since we can now use namespaces, adding them to a - namspace made more sense. + * ace/UUID.h: + * ace/UUID.cpp: The implementations are now placed in a namespace + ACE_Utils. Since we can now use namespaces, adding them to a + namspace made more sense. * ace/UUID.i: File UUID.i is now renamed to be UUID.inl - - * ace/UUID.inl: New file. - - * tests/UUIDTest.cpp: Changes to confirm to the above changes. + + * ace/UUID.inl: New file. + + * tests/UUIDTest.cpp: Changes to confirm to the above changes. Mon Jul 28 12:49:23 2003 Chad Elliott <elliott_c@ociweb.com> diff --git a/bin/MakeProjectCreator/README b/bin/MakeProjectCreator/README index 6f3b04062a4..dd8183e98dc 100644 --- a/bin/MakeProjectCreator/README +++ b/bin/MakeProjectCreator/README @@ -326,6 +326,27 @@ flag_overrides Used to determine flags that have been overridden on a per custom_types The list of custom file types that may have been defined in the mpc file or a base project. +Workspaces +---------- +Workspaces (mwc files) can have assignments similar to projects. There are +currently only two assignments allowed. + +The first is 'cmdline'. The values given to the cmdline assignment will be +processed as command line options, but only to the projects that are +contained within the workspace (or the scope of the assignment). The only +valid command line options for cmdline are -base, -global, -include, -ti, +-template, -static, -static_only, -relative, -notoplevel, -value_template +and -value_project. + +The second assignment is 'implicit'. This assignment takes two different +types of values. It takes a boolean value (0 or 1) to indicate that an +implicit project should be created in directories that contain no mpc file, +but contain project related files (source, headers, etc.). The default +value for implicit is 0. It also takes a charater string that represents a +base project (similar to the -base option). In this case, implicit is +enabled and each implicitly generate project file will have the base project +or base projects (when addition is used) when the project is created. + Defaulting Behavior ------------------- 1) If a project name is not specified diff --git a/bin/MakeProjectCreator/modules/Creator.pm b/bin/MakeProjectCreator/modules/Creator.pm index 6d9d8c60f74..71e6bfecf3d 100644 --- a/bin/MakeProjectCreator/modules/Creator.pm +++ b/bin/MakeProjectCreator/modules/Creator.pm @@ -617,9 +617,20 @@ sub restore_state { my($self) = shift; my($state) = shift; - ## Overwrite each state value + ## Make a deep copy of each state value. That way our array + ## references and hash references do not get accidentally modified. foreach my $skey (@statekeys) { - $self->{$skey} = $$state{$skey}; + if (UNIVERSAL::isa($state->{$skey}, 'ARRAY')) { + my(@arr) = @{$state->{$skey}}; + $self->{$skey} = \@arr; + } + elsif (UNIVERSAL::isa($state->{$skey}, 'HASH')) { + my(%hash) = %{$state->{$skey}}; + $self->{$skey} = \%hash; + } + else { + $self->{$skey} = $state->{$skey}; + } } } diff --git a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm index 2d0dee8cb70..b2f7cf1f1d4 100644 --- a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm +++ b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm @@ -617,6 +617,15 @@ sub generate_project_files { if ($impl && -d $file) { $dir = $file; $file = ''; + + ## If the implicit assignment value was not a number, then + ## we will add this value to our base projects. + if ($impl !~ /^\d+$/) { + my($bps) = $generator->get_baseprojs(); + push(@$bps, split(/\s+/, $impl)); + $restore = 1; + $self->{'cacheok'} = 0; + } } ## Generate the key for this project file @@ -691,11 +700,10 @@ sub generate_project_files { ## Return things to the way they were if (defined $self->{'scoped_assign'}->{$ofile}) { $impl = $previmpl; - - if ($restore) { - $self->{'cacheok'} = $prevcache; - $generator->restore_state(\%gstate); - } + } + if ($restore) { + $self->{'cacheok'} = $prevcache; + $generator->restore_state(\%gstate); } } else { @@ -845,7 +853,7 @@ sub process_cmdline { ## Determine if it's ok to use the cache my(@cacheInvalidating) = ('global', 'include', 'baseprojs', 'template', 'ti', 'relative', - 'addtemp', 'addproj'); + 'addtemp', 'addproj', 'feature_file'); foreach my $key (@cacheInvalidating) { if ($self->is_set($key, $options)) { $self->{'cacheok'} = 0; diff --git a/examples/examples.mwc b/examples/examples.mwc index 7e713c519fc..52606d1bfad 100644 --- a/examples/examples.mwc +++ b/examples/examples.mwc @@ -6,6 +6,6 @@ workspace { // The nice thing about splitting up into separate directories is // that it completely eliminates mpc maintenance. - implicit = 1 - cmdline += -include $PWD -base example_base + implicit = example_base + cmdline += -include $PWD } |