# TODO FIXME extra files should be targets too, so they're rebuilt in case they're gone buts = Split(""" config.but intro.but tutorial.but usage.but script.but var.but labels.but jumps.but pages.but sections.but usection.but functions.but callback.but attributes.but compilerflags.but basic.but registry.but generalpurpose.but flowcontrol.but file.but uninstall.but misc.but string.but stack.but int.but reboot.but log.but sec.but ui.but langs.but plugin.but silent.but compiler.but defines.but modernui.but library.but usefulfunc.but usefulinfos.but headers.but history.but build.but credits.but license.but """) chapters = 5 appendices = 9 htmls = Split('IndexPage.html Contents.html') \ + map(lambda ch: 'Chapter' + str(ch + 1) + '.html', range(chapters)) \ + map(lambda ap: 'Appendix' + chr(ord('A') + ap) + '.html', range(appendices)) docsdefault_install_basepath = 'Docs' DOCS_CONFIG = { 'chm' : { 'NSISDOCCONFIG' : 'config_chm.but', 'NSISDOCEXTRAFILES' : File(Split('#Docs/style.css chmlink.js nsis.hhp')), 'NSISDOCEXTRAACTION' : Action('cd $BUILDDIR && "$HHC" nsis.hhp'), 'NSISDOCHTMLFIXES' : { }, 'NSISDOCTARGET' : 'NSIS.chm', 'NSISDOCINSTALLBASEPATH' : '', }, 'html' : { 'NSISDOCCONFIG' : 'config_html.but', 'NSISDOCEXTRAFILES' : File(Split('#Docs/style.css')), 'NSISDOCEXTRAACTION' : '', 'NSISDOCHTMLFIXES' : { }, 'NSISDOCTARGET' : htmls, 'NSISDOCINSTALLBASEPATH' : docsdefault_install_basepath, }, 'htmlsingle' : { 'NSISDOCCONFIG' : 'config_htmlsingle.but', 'NSISDOCEXTRAFILES' : [], 'NSISDOCEXTRAACTION' : '', 'NSISDOCHTMLFIXES' : { '---HTML:HEAD:STYLE:CSS---' : File('#/Docs/style.css').get_contents(), }, 'NSISDOCTARGET' : 'Manual.html', 'NSISDOCINSTALLBASEPATH' : docsdefault_install_basepath, }, } import os import re Import('halibut env build_doctype') # set up environment env['HHC'] = env.WhereIs('hhc', os.environ['PATH']) env['HALIBUT'] = halibut env['BUILDDIR'] = build_dir = Dir(GetBuildPath('.')).abspath env.Replace(**DOCS_CONFIG[build_doctype]) if not env['PLATFORM'] == 'win32': env['NSISDOCHTMLFIXES']['