1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
function (add_epub_target targetbase lang entities figures xslt_file)
set(docname "gnucash-${targetbase}")
set(epubfile "${docname}.epub")
set(EPUB_TMPDIR "${CMAKE_CURRENT_BINARY_DIR}/epub")
set(BUILD_DIR "${DOCDIR_BUILD}/${lang}")
if (NOT IS_ABSOLUTE ${xslt_file})
set(xslt_file "${CMAKE_CURRENT_SOURCE_DIR}/${xslt_file}")
endif()
add_custom_command(
OUTPUT "${BUILD_DIR}/${epubfile}"
COMMAND rm -fr "${EPUB_TMPDIR}"
COMMAND mkdir "${EPUB_TMPDIR}"
COMMAND echo "application/epub+zip" > "${EPUB_TMPDIR}/mimetype"
COMMAND ${XSLTPROC} ${XSLTPROCFLAGS}
-o "${EPUB_TMPDIR}/"
--stringparam base.dir OEBPS/
--stringparam epub.metainf.dir META-INF/
--stringparam epub.oebps.dir OEBPS/
--stringparam fop1.extensions 1
"${xslt_file}"
"${CMAKE_CURRENT_SOURCE_DIR}/index.docbook"
COMMAND cmake -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/figures" "${EPUB_TMPDIR}/OEBPS/figures"
COMMAND ${CMAKE_COMMAND} -E make_directory "${BUILD_DIR}"
COMMAND cd "${EPUB_TMPDIR}" && zip -X -r "${BUILD_DIR}/${epubfile}" mimetype META-INF OEBPS
DEPENDS ${entities} "index.docbook" "${CMAKE_SOURCE_DIR}/docbook/gnc-docbookx.dtd" ${figures})
add_custom_target("${lang}-${targetbase}-epub"
DEPENDS "${BUILD_DIR}/${epubfile}")
add_dependencies(${lang}-epub "${lang}-${targetbase}-epub")
endfunction()
function (add_mobi_target targetbase lang)
set(docname "gnucash-${targetbase}")
set(BUILD_DIR "${DOCDIR_BUILD}/${lang}")
file(MAKE_DIRECTORY "${BUILD_DIR}")
set(epubfile "${BUILD_DIR}/${docname}.epub")
set(mobifile "${BUILD_DIR}/${docname}.mobi")
add_custom_command(
OUTPUT "${mobifile}"
COMMAND ${EBOOK_CONVERT} "${epubfile}" "${mobifile}"
DEPENDS "${epubfile}")
add_custom_target("${lang}-${targetbase}-mobi"
DEPENDS "${mobifile}")
add_dependencies(${lang}-mobi "${lang}-${targetbase}-mobi")
endfunction()
|