On Mon, 25 Feb 2008 00:53:49 +0100, Michael Homer <[EMAIL PROTECTED]> wrote:

> CVSROOT:      /sources/goboscripts
> Module name:  tools
> Changes by:   Michael Homer <mwh>     08/02/24 23:53:49
>
> Modified files:
>       Scripts/bin    : UseFlags
>
> Log message:
>       Add more documentation to code and --help output. Clean code by 
> reducing duplication for flag specs containing program lists.
>
> CVSWeb URLs:
> http://cvs.savannah.gnu.org/viewcvs/tools/Scripts/bin/UseFlags?cvsroot=goboscripts&r1=1.2&r2=1.3
>
> Patches:
> Index: UseFlags
> ===================================================================
> RCS file: /sources/goboscripts/tools/Scripts/bin/UseFlags,v
> retrieving revision 1.2
> retrieving revision 1.3
> diff -u -b -r1.2 -r1.3
> --- UseFlags  20 Feb 2008 08:37:35 -0000      1.2
> +++ UseFlags  24 Feb 2008 23:53:49 -0000      1.3
> @@ -1,30 +1,48 @@
>  #!/usr/bin/env python
>  # Copyright (C) 2008 Michael Homer <=mwh>
>  # Gives information about the state of use flags
> -# Distributed under the GNU GPLv3+
> +# This program is free software: you can redistribute it and/or modify
> +# it under the terms of the GNU General Public License as published by
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +# GNU General Public License for more details.
> from GetAvailable import getGoboVariable
>  import sys, os.path
>+# A frozen set of the global set of flags (program=None, or any program with 
>no special flags specified)
>  global_use_flags_cache = None
> +# A dict of program=>set of flags for each program that has been evaluated
>  global_program_use_flags_cache = None
> def UseFlags(program=None):
> -     """Return the set of flags enabled for program, or whether or not flag 
> is enabled if specified"""
> +     """Return the set of flags enabled for program"""
>       global global_use_flags_cache, global_program_use_flags_cache
> +     # When program is specified and a cached set is available, use it.
>       if program and global_program_use_flags_cache and program in 
> global_program_use_flags_cache:
>               return global_program_use_flags_cache[program]
> +     # When a program is *not* specified and a cached global set exists, use 
> it.
>       elif global_use_flags_cache is not None and not program:
>               return global_use_flags_cache
> +     # Otherwise, generate the set of flags now.
>       else:
>               goboSettings = getGoboVariable('goboSettings')
>               flags = set()
> +             # Import site-specific use flags
>               if os.path.exists(goboSettings + '/UseFlags.conf'):
>                       f = open(goboSettings + '/UseFlags.conf')
>                       mergeFlags(flags, f, program)
>                       f.close()
> +             # Flags set in the environment for a specific run of Compile 
> are merged,
> +             # and overwrite any previous specifications for the same flag.
>               if 'USE' in os.environ:
>                       mergeFlags(flags, os.environ['USE'].split(), program)
> +             # If program is specified, the flags should be saved in the 
> program cache.
> +             # Otherwise they are the global flags and can be saved there.
>               if program:
>                       if not global_program_use_flags_cache: 
> global_program_use_flags_cache = dict()
>                       flags = frozenset(flags)
Does this mean that per-program useflags are supported? Will the used
flags be saved in Resources then? That way users will/can get the same
useflags when they recompile a program. However, which should have the
highest precedence, environment, command prompt or per-program flags?

-- 
/Jonas

Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to