diff options
Diffstat (limited to 'Modules/FindLATEX.cmake')
-rw-r--r-- | Modules/FindLATEX.cmake | 204 |
1 files changed, 178 insertions, 26 deletions
diff --git a/Modules/FindLATEX.cmake b/Modules/FindLATEX.cmake index bc752a95a..d1f4fa497 100644 --- a/Modules/FindLATEX.cmake +++ b/Modules/FindLATEX.cmake @@ -1,33 +1,59 @@ -# - Find Latex -# This module finds if Latex is installed and determines where the -# executables are. This code sets the following variables: +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#.rst: +# FindLATEX +# --------- # -# LATEX_COMPILER: path to the LaTeX compiler -# PDFLATEX_COMPILER: path to the PdfLaTeX compiler -# BIBTEX_COMPILER: path to the BibTeX compiler -# MAKEINDEX_COMPILER: path to the MakeIndex compiler -# DVIPS_CONVERTER: path to the DVIPS converter -# PS2PDF_CONVERTER: path to the PS2PDF converter -# LATEX2HTML_CONVERTER: path to the LaTeX2Html converter +# Find Latex # - -#============================================================================= -# Copyright 2002-2009 Kitware, Inc. +# This module finds an installed Latex and determines the location +# of the compiler. Additionally the module looks for Latex-related +# software like BibTeX. +# +# This module sets the following result variables:: +# +# LATEX_FOUND: whether found Latex and requested components +# LATEX_<component>_FOUND: whether found <component> +# LATEX_COMPILER: path to the LaTeX compiler +# PDFLATEX_COMPILER: path to the PdfLaTeX compiler +# XELATEX_COMPILER: path to the XeLaTeX compiler +# LUALATEX_COMPILER: path to the LuaLaTeX compiler +# BIBTEX_COMPILER: path to the BibTeX compiler +# BIBER_COMPILER: path to the Biber compiler +# MAKEINDEX_COMPILER: path to the MakeIndex compiler +# XINDY_COMPILER: path to the xindy compiler +# DVIPS_CONVERTER: path to the DVIPS converter +# DVIPDF_CONVERTER: path to the DVIPDF converter +# PS2PDF_CONVERTER: path to the PS2PDF converter +# PDFTOPS_CONVERTER: path to the pdftops converter +# LATEX2HTML_CONVERTER: path to the LaTeX2Html converter +# HTLATEX_COMPILER: path to the htlatex compiler +# +# Possible components are:: # -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. +# PDFLATEX +# XELATEX +# LUALATEX +# BIBTEX +# BIBER +# MAKEINDEX +# XINDY +# DVIPS +# DVIPDF +# PS2PDF +# PDFTOPS +# LATEX2HTML +# HTLATEX # -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) +# Example Usages:: +# +# find_package(LATEX) +# find_package(LATEX COMPONENTS PDFLATEX) +# find_package(LATEX COMPONENTS BIBTEX PS2PDF) if (WIN32) - # Try to find the MikTex binary path (look for its package manager). - find_path(MIKTEX_BINARY_PATH mpm.exe "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MiK\\MiKTeX\\CurrentVersion\\MiKTeX;Install Root]/miktex/bin" DOC @@ -36,7 +62,6 @@ if (WIN32) mark_as_advanced(MIKTEX_BINARY_PATH) # Try to find the GhostScript binary path (look for gswin32). - get_filename_component(GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_8_00 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\AFPL Ghostscript\\8.00;GS_DLL]" PATH ) @@ -57,70 +82,197 @@ if (WIN32) DOC "Path to the GhostScript library directory." ) mark_as_advanced(GHOSTSCRIPT_LIBRARY_PATH) - endif () +# try to find Latex and the related programs find_program(LATEX_COMPILER NAMES latex PATHS ${MIKTEX_BINARY_PATH} /usr/bin ) +# find pdflatex find_program(PDFLATEX_COMPILER NAMES pdflatex PATHS ${MIKTEX_BINARY_PATH} /usr/bin ) +if (PDFLATEX_COMPILER) + set(LATEX_PDFLATEX_FOUND TRUE) +else() + set(LATEX_PDFLATEX_FOUND FALSE) +endif() + +# find xelatex +find_program(XELATEX_COMPILER + NAMES xelatex + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) +if (XELATEX_COMPILER) + set(LATEX_XELATEX_FOUND TRUE) +else() + set(LATEX_XELATEX_FOUND FALSE) +endif() + +# find lualatex +find_program(LUALATEX_COMPILER + NAMES lualatex + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) +if (LUALATEX_COMPILER) + set(LATEX_LUALATEX_FOUND TRUE) +else() + set(LATEX_LUALATEX_FOUND FALSE) +endif() +# find bibtex find_program(BIBTEX_COMPILER NAMES bibtex PATHS ${MIKTEX_BINARY_PATH} /usr/bin ) +if (BIBTEX_COMPILER) + set(LATEX_BIBTEX_FOUND TRUE) +else() + set(LATEX_BIBTEX_FOUND FALSE) +endif() +# find biber +find_program(BIBER_COMPILER + NAMES biber + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) +if (BIBER_COMPILER) + set(LATEX_BIBER_FOUND TRUE) +else() + set(LATEX_BIBER_FOUND FALSE) +endif() + +# find makeindex find_program(MAKEINDEX_COMPILER NAMES makeindex PATHS ${MIKTEX_BINARY_PATH} /usr/bin ) +if (MAKEINDEX_COMPILER) + set(LATEX_MAKEINDEX_FOUND TRUE) +else() + set(LATEX_MAKEINDEX_FOUND FALSE) +endif() +# find xindy +find_program(XINDY_COMPILER + NAMES xindy + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) +if (XINDY_COMPILER) + set(LATEX_XINDY_FOUND TRUE) +else() + set(LATEX_XINDY_FOUND FALSE) +endif() + +# find dvips find_program(DVIPS_CONVERTER NAMES dvips PATHS ${MIKTEX_BINARY_PATH} /usr/bin ) +if (DVIPS_CONVERTER) + set(LATEX_DVIPS_FOUND TRUE) +else() + set(LATEX_DVIPS_FOUND FALSE) +endif() +# find dvipdf find_program(DVIPDF_CONVERTER NAMES dvipdfm dvipdft dvipdf PATHS ${MIKTEX_BINARY_PATH} /usr/bin ) +if (DVIPDF_CONVERTER) + set(LATEX_DVIPDF_FOUND TRUE) +else() + set(LATEX_DVIPDF_FOUND FALSE) +endif() +# find ps2pdf if (WIN32) find_program(PS2PDF_CONVERTER - NAMES ps2pdf14.bat + NAMES ps2pdf14.bat ps2pdf14 ps2pdf PATHS ${GHOSTSCRIPT_LIBRARY_PATH} + ${MIKTEX_BINARY_PATH} ) else () find_program(PS2PDF_CONVERTER NAMES ps2pdf14 ps2pdf ) endif () +if (PS2PDF_CONVERTER) + set(LATEX_PS2PDF_FOUND TRUE) +else() + set(LATEX_PS2PDF_FOUND FALSE) +endif() + +# find pdftops +find_program(PDFTOPS_CONVERTER + NAMES pdftops + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) +if (PDFTOPS_CONVERTER) + set(LATEX_PDFTOPS_FOUND TRUE) +else() + set(LATEX_PDFTOPS_FOUND FALSE) +endif() +# find latex2html find_program(LATEX2HTML_CONVERTER NAMES latex2html PATHS ${MIKTEX_BINARY_PATH} /usr/bin ) +if (LATEX2HTML_CONVERTER) + set(LATEX_LATEX2HTML_FOUND TRUE) +else() + set(LATEX_LATEX2HTML_FOUND FALSE) +endif() + +# find htlatex +find_program(HTLATEX_COMPILER + NAMES htlatex + PATHS ${MIKTEX_BINARY_PATH} + /usr/bin +) +if (HTLATEX_COMPILER) + set(LATEX_HTLATEX_FOUND TRUE) +else() + set(LATEX_HTLATEX_FOUND FALSE) +endif() mark_as_advanced( LATEX_COMPILER PDFLATEX_COMPILER + XELATEX_COMPILER + LUALATEX_COMPILER BIBTEX_COMPILER + BIBER_COMPILER MAKEINDEX_COMPILER + XINDY_COMPILER DVIPS_CONVERTER DVIPDF_CONVERTER PS2PDF_CONVERTER + PDFTOPS_CONVERTER LATEX2HTML_CONVERTER + HTLATEX_COMPILER +) + +include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) +find_package_handle_standard_args(LATEX + REQUIRED_VARS LATEX_COMPILER + HANDLE_COMPONENTS ) |