Merge commit 'c1d65c7f1f6836d4fe961c0a54ea11ff8fdfc62d' as 'cmake'
This commit is contained in:
146
cmake/FindLyX.cmake
Normal file
146
cmake/FindLyX.cmake
Normal file
@@ -0,0 +1,146 @@
|
||||
# - Try to find LyX, and define some custom commands to export from LyX
|
||||
#
|
||||
# Once done, this will define:
|
||||
# LYX_FOUND - system has LyX
|
||||
# LYX_COMMAND - the command to run
|
||||
#
|
||||
# and the following new functions:
|
||||
# lyx_export(<format> <extension-without-leading-dot> <output-variable>
|
||||
# INPUT <lyx-file> [...]
|
||||
# [OUTPUT_TO_SOURCE_DIR]
|
||||
# [ EXTRA_DEPS <bibtex-or-other-file> [...] ]) - the base function
|
||||
#
|
||||
# These shortcut functions all have the same syntax:
|
||||
# lyx_export_to_XXX(<output-variable>
|
||||
# INPUT <lyx-file> [...]
|
||||
# [OUTPUT_TO_SOURCE_DIR]
|
||||
# [ EXTRA_DEPS <bibtex-or-other-file> [...] ])
|
||||
#
|
||||
# Available shortcuts:
|
||||
# lyx_export_to_docbook_xml
|
||||
# lyx_export_to_docbook
|
||||
# lyx_export_to_pdf
|
||||
# lyx_export_to_pdf_via_pdflatex
|
||||
# lyx_export_to_pdf_via_dvi
|
||||
#
|
||||
# Useful configuration variables you might want to add to your cache:
|
||||
# LYX_ROOT_DIR - A directory prefix to search
|
||||
#
|
||||
# Original Author:
|
||||
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
|
||||
# http://academic.cleardefinition.com
|
||||
# Iowa State University HCI Graduate Program/VRAC
|
||||
#
|
||||
# Copyright Iowa State University 2009-2010
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
set(LYX_ROOT_DIR
|
||||
"${LYX_ROOT_DIR}"
|
||||
CACHE
|
||||
PATH
|
||||
"Directory to start our search in")
|
||||
|
||||
find_program(LYX_COMMAND
|
||||
NAMES
|
||||
lyx
|
||||
HINTS
|
||||
"${LYX_ROOT_DIR}"
|
||||
PATH_SUFFIXES
|
||||
bin)
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(LyX DEFAULT_MSG LYX_COMMAND)
|
||||
|
||||
if(LYX_FOUND)
|
||||
mark_as_advanced(LYX_ROOT_DIR)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(LYX_COMMAND)
|
||||
|
||||
function(lyx_export _format _extension _outvar)
|
||||
set(_nowhere)
|
||||
set(_curdest _nowhere)
|
||||
set(_val_args
|
||||
EXTRA_DEPS
|
||||
INPUT)
|
||||
set(_bool_args OUTPUT_TO_SOURCE_DIR)
|
||||
foreach(_arg ${_val_args} ${_bool_args})
|
||||
set(${_arg})
|
||||
endforeach()
|
||||
foreach(_element ${ARGN})
|
||||
list(FIND _val_args "${_element}" _val_arg_find)
|
||||
list(FIND _bool_args "${_element}" _bool_arg_find)
|
||||
if("${_val_arg_find}" GREATER "-1")
|
||||
set(_curdest "${_element}")
|
||||
elseif("${_bool_arg_find}" GREATER "-1")
|
||||
set("${_element}" ON)
|
||||
set(_curdest _nowhere)
|
||||
else()
|
||||
list(APPEND ${_curdest} "${_element}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(_nowhere)
|
||||
message(FATAL_ERROR "Syntax error in use of a lyx_export command!")
|
||||
endif()
|
||||
|
||||
set(_out)
|
||||
set(_outname)
|
||||
foreach(_file ${INPUT})
|
||||
get_filename_component(_base "${_file}" NAME_WE)
|
||||
|
||||
if(NOT OUTPUT_TO_SOURCE_DIR)
|
||||
set(_outname "${CMAKE_CURRENT_BINARY_DIR}/${_base}.${_extension}")
|
||||
else()
|
||||
set(_outname "${CMAKE_CURRENT_SOURCE_DIR}/${_base}.${_extension}")
|
||||
endif()
|
||||
|
||||
list(APPEND _out "${_outname}")
|
||||
if(LYX_COMMAND)
|
||||
add_custom_command(OUTPUT "${_outname}"
|
||||
COMMAND ${CMAKE_COMMAND} -E remove "${_outname}"
|
||||
#COMMAND ${LYX_COMMAND} "${_file}" --export ${_format}
|
||||
COMMAND ${LYX_COMMAND} "${_file}"
|
||||
--execute
|
||||
"buffer-export-custom ${_format} ${CMAKE_COMMAND} -E copy '$$$$FName' '${_outname}'"
|
||||
--execute
|
||||
"lyx-quit"
|
||||
MAIN_DEPENDENCY "${_file}"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
DEPENDS "${_file}" ${EXTRA_DEPS}
|
||||
COMMENT "Exporting ${_file} to ${_format}...")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(${_outvar} ${_out} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(lyx_export_to_docbook_xml _outvar)
|
||||
lyx_export(docbook-xml xml ${_outvar} ${ARGN})
|
||||
set(${_outvar} ${${_outvar}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(lyx_export_to_docbook _outvar)
|
||||
lyx_export(docbook sgml ${_outvar} ${ARGN})
|
||||
set(${_outvar} ${${_outvar}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(lyx_export_to_pdf _outvar)
|
||||
lyx_export(pdf pdf ${_outvar} ${ARGN})
|
||||
set(${_outvar} ${${_outvar}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(lyx_export_to_pdf_via_pdflatex _outvar)
|
||||
lyx_export(pdf2 pdf ${_outvar} ${ARGN})
|
||||
set(${_outvar} ${${_outvar}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(lyx_export_to_pdf_via_dvi _outvar)
|
||||
lyx_export(pdf3 pdf ${_outvar} ${ARGN})
|
||||
set(${_outvar} ${${_outvar}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user