1# - Try to find db2pdf, and define a custom command to turn docbook into pdf 2# 3# Once done, this will define: 4# DB2PDF_FOUND - system has LyX 5# DB2PDF_COMMAND - the command to run 6# 7# and the following function: 8# docbook_to_pdf(<output-variable> <docbook files>) 9# 10# Useful configuration variables you might want to add to your cache: 11# DB2PDF_ROOT_DIR - A directory prefix to search 12# 13# Original Author: 14# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net> 15# http://academic.cleardefinition.com 16# Iowa State University HCI Graduate Program/VRAC 17# 18# Copyright Iowa State University 2009-2010. 19# Distributed under the Boost Software License, Version 1.0. 20# (See accompanying file LICENSE_1_0.txt or copy at 21# http://www.boost.org/LICENSE_1_0.txt) 22 23 24set(DB2PDF_ROOT_DIR 25 "${DB2PDF_ROOT_DIR}" 26 CACHE 27 PATH 28 "Directory to start our search in") 29 30find_program(DB2PDF_COMMAND 31 NAMES 32 db2pdf 33 HINTS 34 "${DB2PDF_ROOT_DIR}" 35 PATH_SUFFIXES 36 bin) 37 38# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if 39# all listed variables are TRUE 40include(FindPackageHandleStandardArgs) 41find_package_handle_standard_args(db2pdf DEFAULT_MSG DB2PDF_COMMAND) 42 43if(DB2PDF_FOUND) 44 mark_as_advanced(DB2PDF_ROOT_DIR) 45endif() 46 47mark_as_advanced(DB2PDF_COMMAND) 48 49function(docbook_to_pdf _outvar) 50 set(INPUT ${ARGN}) 51 set(_out) 52 set(_outname) 53 54 foreach(_file ${INPUT}) 55 get_filename_component(_base "${_file}" NAME_WE) 56 set(_outname "${CMAKE_CURRENT_BINARY_DIR}/${_base}.pdf") 57 list(APPEND _out "${_outname}") 58 if(DB2PDF_COMMAND) 59 add_custom_command(OUTPUT 60 "${_outname}" 61 COMMAND 62 ${DB2PDF_COMMAND} 63 -o 64 "${CMAKE_CURRENT_BINARY_DIR}" 65 "${_file}" 66 WORKING_DIRECTORY 67 "${CMAKE_CURRENT_SOURCE_DIR}" 68 MAIN_DEPENDENCY 69 "${_file}") 70 endif() 71 endforeach() 72 set(${_outvar} ${_out} PARENT_SCOPE) 73endfunction() 74