28
28
########################################################################
31
add_custom_target(doc DEPENDS doc.doxygen)
31
find_program(MAKEINFO makeinfo)
32
find_program(TEXI2PDF texi2pdf)
34
find_program(MAN2HTML man2html)
35
find_program(GROFF groff)
36
set(ledger_info_files ledger3.texi ledger-mode.texi)
39
message(WARNING "Could not find makeinfo. Info version of documentation cannot be built.")
42
if (NOT TEXI2PDF OR NOT TEX)
43
message(WARNING "Could not find texi2pdf or tex. PDF version of documentation will not be built.")
35
set(info_files ledger3.texi ledger-mode.texi)
37
find_program(MAKEINFO makeinfo)
38
find_program(TEXI2PDF texi2pdf)
39
find_program(MAN2HTML man2html)
41
47
########################################################################
43
foreach(file ${info_files})
49
foreach(file ${ledger_info_files})
44
50
get_filename_component(file_base ${file} NAME_WE)
47
message(FATAL_ERROR "Could not find makeinfo. HTML version of documentation cannot be built.")
53
add_custom_command(OUTPUT ${file_base}.info
54
COMMAND makeinfo --force --no-split -o ${file_base}.info ${CMAKE_CURRENT_SOURCE_DIR}/${file}
55
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
57
list(APPEND ledger_doc_files ${file_base}.info)
60
if (BUILD_WEB_DOCS AND MAKEINFO)
50
61
add_custom_command(OUTPUT ${file_base}.html
51
62
COMMAND makeinfo --force --html --no-split -o ${file_base}.html ${CMAKE_CURRENT_SOURCE_DIR}/${file}
52
63
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
54
65
list(APPEND ledger_doc_files ${file_base}.html)
58
message(WARNING "Could not find texi2pdf. PDF version of documentation will not be built.")
70
set(papersize --texinfo=@afourpaper)
60
72
add_custom_command(OUTPUT ${file_base}.pdf
61
COMMAND texi2pdf -q --tidy -b -o ${file_base}.pdf ${CMAKE_CURRENT_SOURCE_DIR}/${file}
73
COMMAND texi2pdf --tidy ${papersize} -b -q -o ${file_base}.pdf ${CMAKE_CURRENT_SOURCE_DIR}/${file}
62
74
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
64
76
list(APPEND ledger_doc_files ${file_base}.pdf)
68
80
########################################################################
71
83
include(FindUnixCommands)
73
85
message(FATAL_ERROR "Could not find bash. Unable to build documentation.")
76
message(FATAL_ERROR "Could not find man2html. HTML version of man page cannot be built.")
88
add_custom_command(OUTPUT ledger.1.html
89
COMMAND ${BASH} -c "man2html ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1 | tail -n+3 > ledger.1.html"
90
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1
92
list(APPEND ledger_doc_files ledger.1.html)
94
add_custom_command(OUTPUT ledger.1.html
95
COMMAND ${BASH} -c "groff -mandoc -Thtml ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1 > ledger.1.html"
96
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1
98
list(APPEND ledger_doc_files ledger.1.html)
100
message(FATAL_ERROR "Could not find man2html or groff. HTML version of man page cannot be built.")
79
add_custom_command(OUTPUT ledger.1.html
80
COMMAND ${BASH} -c "man2html ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1 | tail -n+3 > ledger.1.html"
81
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1
83
list(APPEND ledger_doc_files ledger.1.html)
84
102
endif(BUILD_WEB_DOCS)
86
104
########################################################################
92
110
include(GNUInstallDirs)
94
if(CMAKE_INSTALL_MANDIR)
112
if (CMAKE_INSTALL_MANDIR)
95
113
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/ledger.1
96
114
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT doc)
97
115
endif(CMAKE_INSTALL_MANDIR)
99
foreach(file ${info_files})
100
get_filename_component(file_base ${file} NAME_WE)
117
foreach(file ${ledger_doc_files})
118
get_filename_component(file_ext ${file} EXT)
102
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file}
103
DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc)
104
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file_base}.pdf
105
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc OPTIONAL)
120
if(file_ext STREQUAL ".info")
121
if(CMAKE_INSTALL_INFODIR)
122
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}
123
DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc)
125
elseif(CMAKE_INSTALL_DOCDIR)
126
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file}
127
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)