~ubuntu-branches/ubuntu/saucy/darktable/saucy

« back to all changes in this revision

Viewing changes to doc/usermanual/CMakeLists.txt

  • Committer: Bazaar Package Importer
  • Author(s): David Bremner
  • Date: 2011-04-14 23:42:12 UTC
  • Revision ID: james.westby@ubuntu.com-20110414234212-kuffcz5wiu18v6ra
Tags: upstream-0.8
ImportĀ upstreamĀ versionĀ 0.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# FIXME: Tell CMake to cache the pdf files so they are not regenerated each time.
 
2
cmake_minimum_required(VERSION 2.6)
 
3
 
 
4
if(BUILD_USERMANUAL)
 
5
        add_custom_target(usermanual ALL)
 
6
else(BUILD_USERMANUAL)
 
7
        add_custom_target(usermanual)
 
8
endif(BUILD_USERMANUAL)
 
9
 
 
10
set(can_build_usermanual ON)
 
11
 
 
12
find_program(Fop_BIN fop)
 
13
find_program(Xsltproc_BIN xsltproc)
 
14
find_program(Xml2po_BIN xml2po)
 
15
 
 
16
if(${Fop_BIN} STREQUAL "Fop_BIN-NOTFOUND")
 
17
        message("Missing fop")
 
18
        set(can_build_usermanual OFF)
 
19
endif()
 
20
 
 
21
if(${Xsltproc_BIN} STREQUAL "Xsltproc_BIN-NOTFOUND")
 
22
        message("Missing xsltproc")
 
23
        set(can_build_usermanual OFF)
 
24
endif()
 
25
 
 
26
if(${Xml2po_BIN} STREQUAL "Xml2po_BIN-NOTFOUND")
 
27
        message("Missing xml2po. No localized usermanuals are build")
 
28
#       set(can_build_usermanual OFF)
 
29
endif()
 
30
 
 
31
if(can_build_usermanual)
 
32
 
 
33
        # regular usermanual
 
34
        add_custom_command(
 
35
                OUTPUT darktable-usermanual.pdf
 
36
                COMMAND xsltproc --output ${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual.fo xsl/darktable_fo.xsl darktable.xml
 
37
                COMMAND fop -c fopconfig.xml ${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual.fo -pdf darktable-usermanual.pdf
 
38
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 
39
                DEPENDS darktable.xml
 
40
                COMMENT "Building usermanual" VERBATIM
 
41
        )
 
42
        add_custom_target(darktable-usermanual DEPENDS darktable-usermanual.pdf)
 
43
        add_dependencies(usermanual darktable-usermanual)
 
44
        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/darktable-usermanual.pdf DESTINATION ./share/doc/darktable/usermanual OPTIONAL)
 
45
 
 
46
        # final usermanual
 
47
        add_custom_command(
 
48
                OUTPUT darktable-usermanual-final.pdf
 
49
                COMMAND xsltproc --output ${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual_profiled_final.xml xsl/darktable_profile.xsl darktable.xml 
 
50
                COMMAND xsltproc --output ${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual_profiled_final.fo xsl/darktable_fo.xsl ${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual_profiled_final.xml
 
51
                COMMAND fop -c fopconfig.xml ${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual_profiled_final.fo -pdf darktable-usermanual-final.pdf
 
52
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 
53
                DEPENDS darktable.xml
 
54
                COMMENT "Building final usermanual" VERBATIM
 
55
        )
 
56
        add_custom_target(darktable-usermanual-final DEPENDS darktable-usermanual-final.pdf)
 
57
        add_dependencies(usermanual darktable-usermanual-final)
 
58
        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/darktable-usermanual-final.pdf DESTINATION ./share/doc/darktable/usermanual OPTIONAL)
 
59
 
 
60
        if(NOT ${Xml2po_BIN} STREQUAL "Xml2po_BIN-NOTFOUND")
 
61
                # localized final usermanuals
 
62
                file(GLOB LANGUAGES po/*.po)
 
63
                foreach(language ${LANGUAGES})
 
64
                        set(pofile ${language})
 
65
                        string(REGEX REPLACE "(.+(\\\\|/))+" "" language ${language})
 
66
                        string(REGEX REPLACE "\\.po$" "" language ${language})
 
67
                        set(pdffile "darktable-usermanual-${language}.pdf")
 
68
                        set(fofile "${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual-${language}.fo")
 
69
                        set(xmlfile "${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual_profiled_final.xml")
 
70
                        set(xmllangfile "${CMAKE_CURRENT_BINARY_DIR}/darktable-usermanual_profiled_final-${language}.xml")
 
71
                        add_custom_command(
 
72
                                OUTPUT ${pdffile}
 
73
                                COMMAND xsltproc --output ${xmlfile} xsl/darktable_profile.xsl darktable.xml
 
74
                                COMMAND xml2po -e -p ${pofile} -l ${language} ${xmlfile} > ${xmllangfile}
 
75
                                COMMAND xsltproc --output ${fofile} xsl/darktable_fo.xsl ${xmllangfile}
 
76
                                COMMAND fop -c fopconfig.xml ${fofile} -pdf ${pdffile}
 
77
                                DEPENDS ${pofile} darktable.xml
 
78
                                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 
79
                                COMMENT "Building ${language} usermanual" VERBATIM
 
80
                        )
 
81
                        add_custom_target(darktable-usermanual-${language} DEPENDS ${pdffile})
 
82
                        add_dependencies(usermanual darktable-usermanual-${language})
 
83
                        install(FILES ${pdffile} DESTINATION ./share/doc/darktable/usermanual OPTIONAL)
 
84
                endforeach(language)
 
85
        endif()
 
86
 
 
87
else(can_build_usermanual)
 
88
        message("Can NOT build usermanual")
 
89
endif(can_build_usermanual)
 
90
 
 
91
add_subdirectory(po)
 
92