summaryrefslogtreecommitdiff
path: root/src/engine/SCons/Tool/docbook
diff options
context:
space:
mode:
authorDirk Baechle <dl9obn@darc.de>2014-01-05 13:27:10 +0100
committerDirk Baechle <dl9obn@darc.de>2014-01-05 13:27:10 +0100
commitf78a5612498648257400084a47dab9d94936eb11 (patch)
tree781ecb9cdb5d31dae26d17c1c8a68ae10d001686 /src/engine/SCons/Tool/docbook
parent093702c094cb6b5dcfc1e904d49beaacc83ab7be (diff)
downloadscons-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__.py27
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