diff options
author | Dirk Baechle <dl9obn@darc.de> | 2014-01-05 12:27:10 (GMT) |
---|---|---|
committer | Dirk Baechle <dl9obn@darc.de> | 2014-01-05 12:27:10 (GMT) |
commit | cb44210566c28d16c1e2c91d898306ad539fa9f5 (patch) | |
tree | 781ecb9cdb5d31dae26d17c1c8a68ae10d001686 /src/engine/SCons | |
parent | 8a2bb84c2c11449ec5a9e49fc4e9777655978854 (diff) | |
download | SCons-cb44210566c28d16c1e2c91d898306ad539fa9f5.zip SCons-cb44210566c28d16c1e2c91d898306ad539fa9f5.tar.gz SCons-cb44210566c28d16c1e2c91d898306ad539fa9f5.tar.bz2 |
- corrected dependencies for EPUB builder (docbook)
- added a proper test for EPUB with xsltproc
Diffstat (limited to 'src/engine/SCons')
-rw-r--r-- | src/engine/SCons/Tool/docbook/__init__.py | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/engine/SCons/Tool/docbook/__init__.py b/src/engine/SCons/Tool/docbook/__init__.py index d14d60b..72ea175 100644 --- a/src/engine/SCons/Tool/docbook/__init__.py +++ b/src/engine/SCons/Tool/docbook/__init__.py @@ -501,20 +501,29 @@ def DocbookEpub(env, target, source=None, *args, **kw): # Create targets result = [] - tlist = ['OEBPS/toc.ncx', 'META-INF/container.xml'] - dirs = [SCons.Script.Dir('OEBPS'), SCons.Script.Dir('META-INF')] - r = __builder.__call__(env, tlist, source[0], **kw) + if not env.GetOption('clean'): + # Ensure that the folders OEBPS and META-INF exist + __create_output_dir('OEBPS/') + __create_output_dir('META-INF/') + dirs = env.Dir(['OEBPS', 'META-INF']) - env.Depends(r, kw['DOCBOOK_XSL']) - result.extend(r) + # Set the fixed base_dir + kw['base_dir'] = 'OEBPS/' + tocncx = __builder.__call__(env, 'toc.ncx', source[0], **kw) + cxml = env.File('META-INF/container.xml') + env.SideEffect(cxml, tocncx) + + env.Depends(tocncx, kw['DOCBOOK_XSL']) + result.extend(tocncx+[cxml]) container = env.Command(__ensure_suffix(str(target[0]), '.epub'), - tlist, [add_resources, build_open_container]) - - env.Depends(container, r) + tocncx+[cxml], [add_resources, build_open_container]) + mimetype = env.File('mimetype') + env.SideEffect(mimetype, container) + result.extend(container) # Add supporting files for cleanup - env.Clean(r, dirs + [SCons.Script.File('mimetype')]) + env.Clean(tocncx, dirs) return result |