- doc is now generated in dist/doxygen
- makerelease now decompress the tarball, download and install scons, run scons check on provided platforms, decompress doc tarball and upload the doc on the project web
diff --git a/doxybuild.py b/doxybuild.py
index 792bff7..0a2a6c7 100644
--- a/doxybuild.py
+++ b/doxybuild.py
@@ -8,22 +8,19 @@
import shutil
from devtools import tarball
-def find_program(filename):
+def find_program(*filenames):
"""find a program in folders path_lst, and sets env[var]
- @param env: environmentA
- @param filename: name of the program to search for
- @param path_list: list of directories to search for filename
- @param var: environment value to be checked for in env or os.environ
- @return: either the value that is referenced with [var] in env or os.environ
- or the first occurrence filename or '' if filename could not be found
+ @param filenames: a list of possible names of the program to search for
+ @return: the full path of the filename if found, or '' if filename could not be found
"""
paths = os.environ.get('PATH', '').split(os.pathsep)
suffixes = ('win32' in sys.platform ) and '.exe .com .bat .cmd' or ''
- for name in [filename+ext for ext in suffixes.split()]:
- for directory in paths:
- full_path = os.path.join(directory, name)
- if os.path.isfile(full_path):
- return full_path
+ for filename in filenames:
+ for name in [filename+ext for ext in suffixes.split()]:
+ for directory in paths:
+ full_path = os.path.join(directory, name)
+ if os.path.isfile(full_path):
+ return full_path
return ''
def do_subst_in_file(targetfile, sourcefile, dict):
@@ -87,36 +84,38 @@
options.silent = True
version = open('version','rt').read().strip()
- output_dir = '../build/doxygen' # relative to doc/doxyfile location.
+ output_dir = 'dist/doxygen' # relative to doc/doxyfile location.
+ if not os.path.isdir( output_dir ):
+ os.makedirs( output_dir )
top_dir = os.path.abspath( '.' )
html_output_dirname = 'jsoncpp-api-html-' + version
tarball_path = os.path.join( 'dist', html_output_dirname + '.tar.gz' )
warning_log_path = os.path.join( output_dir, '../jsoncpp-doxygen-warning.log' )
+ html_output_path = os.path.join( output_dir, html_output_dirname )
def yesno( bool ):
return bool and 'YES' or 'NO'
subst_keys = {
'%JSONCPP_VERSION%': version,
'%DOC_TOPDIR%': '',
'%TOPDIR%': top_dir,
- '%HTML_OUTPUT%': os.path.join( output_dir, html_output_dirname ),
+ '%HTML_OUTPUT%': os.path.join( '..', output_dir, html_output_dirname ),
'%HAVE_DOT%': yesno(options.with_dot),
'%DOT_PATH%': os.path.split(options.dot_path)[0],
'%HTML_HELP%': yesno(options.with_html_help),
'%UML_LOOK%': yesno(options.with_uml_look),
- '%WARNING_LOG_PATH%': warning_log_path
+ '%WARNING_LOG_PATH%': os.path.join( '..', warning_log_path )
}
- full_output_dir = os.path.join( 'doc', output_dir )
- if os.path.isdir( full_output_dir ):
- print 'Deleting directory:', full_output_dir
- shutil.rmtree( full_output_dir )
- if not os.path.isdir( full_output_dir ):
- os.makedirs( full_output_dir )
+ if os.path.isdir( output_dir ):
+ print 'Deleting directory:', output_dir
+ shutil.rmtree( output_dir )
+ if not os.path.isdir( output_dir ):
+ os.makedirs( output_dir )
do_subst_in_file( 'doc/doxyfile', 'doc/doxyfile.in', subst_keys )
ok = run_doxygen( options.doxygen_path, 'doc/doxyfile', 'doc', is_silent=options.silent )
if not options.silent:
- print open(os.path.join('doc', warning_log_path), 'rb').read()
+ print open(warning_log_path, 'rb').read()
index_path = os.path.abspath(os.path.join(subst_keys['%HTML_OUTPUT%'], 'index.html'))
print 'Generated documentation can be found in:'
print index_path
@@ -126,12 +125,13 @@
if options.make_tarball:
print 'Generating doc tarball to', tarball_path
tarball_sources = [
- full_output_dir,
+ output_dir,
'README.txt',
'version'
]
- tarball_basedir = os.path.join( full_output_dir, html_output_dirname )
+ tarball_basedir = os.path.join( output_dir, html_output_dirname )
tarball.make_tarball( tarball_path, tarball_sources, tarball_basedir, html_output_dirname )
+ return tarball_path, html_output_dirname
def main():
usage = """%prog