X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senfscons%2FDoxygen.py;h=69fa2c0402d50c449bea4598a738978b93513ffb;hb=f2f5d59e83863f3b513950173baee1b6da2aee3c;hp=0e8dd2435f3c7750c2fc630015f243191f71c0af;hpb=9035ae419b1dc9dc537e00d0f7ffc4b22e19422a;p=senf.git diff --git a/senfscons/Doxygen.py b/senfscons/Doxygen.py index 0e8dd24..69fa2c0 100644 --- a/senfscons/Doxygen.py +++ b/senfscons/Doxygen.py @@ -18,8 +18,8 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # The Modifications are Copyright (C) 2006,2007 -# Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -# Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +# Fraunhofer Institute for Open Communication Systems (FOKUS) +# Competence Center NETwork research (NET), St. Augustin, GERMANY # Stefan Bund ## \file @@ -234,7 +234,7 @@ class DoxyfileParser: for d in [ self._dir ] + self._include_path: p = os.path.join(d,value[0]) if os.path.exists(p): - self._items.setdefault('@INCLDUE',[]).append(p) + self._items.setdefault('@INCLUDE',[]).append(p) parser = DoxyfileParser(p, self._env, self._include_path, self._items) parser.parse() return @@ -248,6 +248,10 @@ class DoxyfileParser: return self._items def DoxyfileParse(env,file): + # We don't parse source files which do not contain the word 'doxyfile'. SCons will + # pass other dependencies to DoxyfileParse which are not doxyfiles ... grmpf ... + if not 'doxyfile' in file.lower(): + return {} ENV = {} ENV.update(env.get("ENV",{})) ENV['TOPDIR'] = env.Dir('#').abspath @@ -301,10 +305,8 @@ def DoxySourceScan(node, env, path): for root, dirs, files in entries: for f in files: filename = os.path.normpath(os.path.join(root, f)) - if ( reduce(lambda x, y: x or fnmatch(f, y), - file_patterns, False) - and not reduce(lambda x, y: x or fnmatch(f, y), - exclude_patterns, False) ): + if ( reduce(lambda x, y: x or fnmatch(f, y), file_patterns, False) + and not reduce(lambda x, y: x or fnmatch(f, y), exclude_patterns, False) ): sources.append(filename) for key in dep_add_keys: @@ -339,7 +341,9 @@ def DoxyEmitter(source, target, env): out_dir = data["OUTPUT_DIRECTORY"] dir = env.Dir( os.path.join(source[0].dir.abspath, out_dir) ) dir.sources = source - if env.GetOption('clean'): targets.append(dir) + if env.GetOption('clean'): + targets.append(dir) + return (targets, source) else: out_dir = '.' @@ -390,8 +394,8 @@ def DoxyGenerator(source, target, env, for_signature): data = DoxyfileParse(env, source[0].abspath) - actions = [ SCons.Action.Action("cd ${SOURCE.dir} && TOPDIR=%s ${DOXYGEN} ${SOURCE.file}" - % (relpath(source[0].dir.abspath, env.Dir('#').abspath),)) ] + actions = [ SCons.Action.Action("cd ${SOURCE.dir} && TOPDIR=%s ${DOXYGEN} ${SOURCE.file}" + % env.Dir('#').abspath) ] # This will add automatic 'installdox' calls. # @@ -460,7 +464,7 @@ def generate(env): 'Doxygen': doxyfile_builder, }) - env.AppendUnique( + env.SetDefault( DOXYGEN = 'doxygen', )