Merge pull request #283 from afh/pull/builddocs

Improve building and installing ledger documentation files
This commit is contained in:
Craig Earls 2014-05-05 06:37:30 -07:00
commit 8c78712258
3 changed files with 33 additions and 8 deletions

View file

@ -20,7 +20,7 @@ option(DISABLE_ASSERTS "Build without any internal consistency checks" OFF)
option(BUILD_DEBUG "Build support for runtime debugging" OFF) option(BUILD_DEBUG "Build support for runtime debugging" OFF)
option(BUILD_LIBRARY "Build and install Ledger as a library" ON) option(BUILD_LIBRARY "Build and install Ledger as a library" ON)
option(BUILD_DOCS "Build and install documentation" ON) option(BUILD_DOCS "Build and install documentation" OFF)
option(BUILD_WEB_DOCS "Build version of documentation suitable for viewing online" OFF) option(BUILD_WEB_DOCS "Build version of documentation suitable for viewing online" OFF)
option(BUILD_EMACSLISP "Build and install ledger-mode for Emacs" OFF) option(BUILD_EMACSLISP "Build and install ledger-mode for Emacs" OFF)

5
acprep
View file

@ -875,6 +875,9 @@ class PrepareBuild(CommandLineApp):
if self.options.boost_include: if self.options.boost_include:
conf_args.append('-DBOOST_INCLUDEDIR=%s' % conf_args.append('-DBOOST_INCLUDEDIR=%s' %
self.options.boost_include) self.options.boost_include)
if self.options.build_dir:
conf_args.append('-DBUILD_DIR=%s' %
self.options.build_dir)
if self.prefix_directory(): if self.prefix_directory():
conf_args.append('-DCMAKE_INSTALL_PREFIX=%s' % self.prefix_directory()) conf_args.append('-DCMAKE_INSTALL_PREFIX=%s' % self.prefix_directory())
@ -942,7 +945,7 @@ class PrepareBuild(CommandLineApp):
make_args.append('-j%d' % self.options.jobs) make_args.append('-j%d' % self.options.jobs)
if self.options.verbose: if self.options.verbose:
make_args.append('VERBOSE=1') make_args.append('-v' if self.options.use_ninja else 'VERBOSE=1')
self.log.debug('Configure arguments => ' + str(config_args)) self.log.debug('Configure arguments => ' + str(config_args))
self.log.debug('Makefile arguments => ' + str(make_args)) self.log.debug('Makefile arguments => ' + str(make_args))

View file

@ -36,6 +36,7 @@ set(info_files ledger3.texi ledger-mode.texi)
find_program(MAKEINFO makeinfo) find_program(MAKEINFO makeinfo)
find_program(TEXI2PDF texi2pdf) find_program(TEXI2PDF texi2pdf)
find_program(TEX tex)
find_program(MAN2HTML man2html) find_program(MAN2HTML man2html)
find_program(GROFF groff) find_program(GROFF groff)
@ -43,11 +44,21 @@ find_program(GROFF groff)
foreach(file ${info_files}) foreach(file ${info_files})
get_filename_component(file_base ${file} NAME_WE) get_filename_component(file_base ${file} NAME_WE)
if(NOT MAKEINFO)
message(WARNING "Could not find makeinfo. Info version of documentation cannot be built.")
else()
add_custom_command(OUTPUT ${file_base}.info
COMMAND makeinfo --force --no-split -o ${file_base}.info ${CMAKE_CURRENT_SOURCE_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
VERBATIM)
list(APPEND ledger_doc_files ${file_base}.info)
endif()
if(BUILD_WEB_DOCS) if(BUILD_WEB_DOCS)
if(NOT MAKEINFO) if(NOT MAKEINFO)
message(FATAL_ERROR "Could not find makeinfo. HTML version of documentation cannot be built.") message(WARNING "Could not find makeinfo. HTML version of documentation cannot be built.")
endif() endif()
add_custom_command(OUTPUT ${file_base}.html add_custom_command(OUTPUT ${file_base}.html
COMMAND makeinfo --force --html --no-split -o ${file_base}.html ${CMAKE_CURRENT_SOURCE_DIR}/${file} COMMAND makeinfo --force --html --no-split -o ${file_base}.html ${CMAKE_CURRENT_SOURCE_DIR}/${file}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}
@ -55,8 +66,8 @@ foreach(file ${info_files})
list(APPEND ledger_doc_files ${file_base}.html) list(APPEND ledger_doc_files ${file_base}.html)
endif(BUILD_WEB_DOCS) endif(BUILD_WEB_DOCS)
if(NOT TEXI2PDF) if(NOT TEXI2PDF OR NOT TEX)
message(WARNING "Could not find texi2pdf. PDF version of documentation will not be built.") message(WARNING "Could not find texi2pdf or tex. PDF version of documentation will not be built.")
else() else()
if(BUILD_A4_PDF) if(BUILD_A4_PDF)
set(papersize --texinfo=@afourpaper) set(papersize --texinfo=@afourpaper)
@ -109,8 +120,19 @@ endif(CMAKE_INSTALL_MANDIR)
foreach(file ${info_files}) foreach(file ${info_files})
get_filename_component(file_base ${file} NAME_WE) get_filename_component(file_base ${file} NAME_WE)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file} if (CMAKE_SOURCE_DIR STREQUAL BUILD_DIR)
set(doc_dir CMAKE_CURRENT_SOURCE_DIR)
else()
get_filename_component(dir_base ${CMAKE_CURRENT_SOURCE_DIR} NAME_WE)
set(doc_dir "${CMAKE_SOURCE_DIR}/${BUILD_DIR}/${dir_base}")
endif()
install(FILES ${doc_dir}/${file_base}.info
DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc) DESTINATION ${CMAKE_INSTALL_INFODIR} COMPONENT doc)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${file_base}.pdf install(FILES ${doc_dir}/${file_base}.pdf
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc OPTIONAL) DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc OPTIONAL)
if (BUILD_WEB_DOCS)
install(FILES ${doc_dir}/${file_base}.html
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)
endif(BUILD_WEB_DOCS)
endforeach() endforeach()