summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/FindLATEX.cmake167
1 files changed, 159 insertions, 8 deletions
diff --git a/Modules/FindLATEX.cmake b/Modules/FindLATEX.cmake
index a935f00..ae83733 100644
--- a/Modules/FindLATEX.cmake
+++ b/Modules/FindLATEX.cmake
@@ -6,20 +6,52 @@
#
# This module finds an installed Latex and determines the location
# of the compiler. Additionally the module looks for Latex-related
-# software like BibTeX. This code sets the following variables:
+# 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::
+#
+# PDFLATEX
+# XELATEX
+# LUALATEX
+# BIBTEX
+# BIBER
+# MAKEINDEX
+# XINDY
+# DVIPS
+# DVIPDF
+# PS2PDF
+# PDFTOPS
+# LATEX2HTML
+# HTLATEX
+#
+# Example Usages::
+#
+# find_package(LATEX)
+# find_package(LATEX COMPONENTS PDFLATEX)
+# find_package(LATEX COMPONENTS BIBTEX PS2PDF)
#=============================================================================
-# Copyright 2002-2014 Kitware, Inc.
+# Copyright 2002-2015 Kitware, Inc.
+# Copyright 2014-2015 Christoph GrĂ¼ninger <foss@grueninger.de>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
@@ -32,9 +64,7 @@
# License text for the above reference.)
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
@@ -43,7 +73,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
)
@@ -64,45 +93,124 @@ 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 ps2pdf14 ps2pdf
@@ -114,26 +222,69 @@ else ()
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
)
+# handle variables for found Latex and its components
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(Latex
+find_package_handle_standard_args(LATEX
REQUIRED_VARS LATEX_COMPILER
+ HANDLE_COMPONENTS
)