Import( 'env' ) import os.path if 'doxygen' in env['TOOLS']: doc_topdir = env['ROOTBUILD_DIR'] doxyfile = env.SubstInFile( '#doc/doxyfile', 'doxyfile.in', SUBST_DICT = { '%JSONCPP_VERSION%' : env['JSONCPP_VERSION'], '%TOPDIR%' : env.Dir('#').abspath, '%DOC_TOPDIR%' : str(doc_topdir) } ) doc_cmd = env.Doxygen( doxyfile ) alias_doc_cmd = env.Alias('doc', doc_cmd ) env.AlwaysBuild(alias_doc_cmd) for dir in doc_cmd: env.Alias('doc', env.Install( '#' + dir.path, '#README.txt' ) ) filename = os.path.split(dir.path)[1] targz_path = os.path.join( env['DIST_DIR'], '%s.tar.gz' % filename ) zip_doc_cmd = env.TarGz( targz_path, [env.Dir(dir)], TARGZ_BASEDIR = doc_topdir ) env.Depends( zip_doc_cmd, alias_doc_cmd ) env.Alias( 'doc-dist', zip_doc_cmd ) # When doxyfile gets updated, I get errors on the first pass. # I have to run scons twice. Something is wrong with the dependencies # here, but I avoid it by running "scons doc/doxyfile" first.