diff options
author | Dirk Baechle <dl9obn@darc.de> | 2014-01-05 13:27:10 +0100 |
---|---|---|
committer | Dirk Baechle <dl9obn@darc.de> | 2014-01-05 13:27:10 +0100 |
commit | f78a5612498648257400084a47dab9d94936eb11 (patch) | |
tree | 781ecb9cdb5d31dae26d17c1c8a68ae10d001686 /src/engine/SCons/Tool/docbook | |
parent | 093702c094cb6b5dcfc1e904d49beaacc83ab7be (diff) | |
download | scons-f78a5612498648257400084a47dab9d94936eb11.tar.gz |
- corrected dependencies for EPUB builder (docbook)
- added a proper test for EPUB with xsltproc
Diffstat (limited to 'src/engine/SCons/Tool/docbook')
-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 d14d60bb..72ea1758 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 |