mirror of
https://github.com/reactos/CMake.git
synced 2024-12-01 07:20:22 +00:00
745b56f58c
No need to explain this over and over again. While at it, do some other minor cleanups to whitespace and comments (i.e. delete them).
279 lines
6.1 KiB
CMake
279 lines
6.1 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
#.rst:
|
|
# FindLATEX
|
|
# ---------
|
|
#
|
|
# Find Latex
|
|
#
|
|
# 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::
|
|
#
|
|
# 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)
|
|
|
|
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
|
|
"Path to the MikTex binary directory."
|
|
)
|
|
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
|
|
)
|
|
|
|
get_filename_component(GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_7_04
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\AFPL Ghostscript\\7.04;GS_DLL]" PATH
|
|
)
|
|
|
|
find_path(GHOSTSCRIPT_BINARY_PATH gswin32.exe
|
|
${GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_8_00}
|
|
${GHOSTSCRIPT_BINARY_PATH_FROM_REGISTERY_7_04}
|
|
DOC "Path to the GhostScript binary directory."
|
|
)
|
|
mark_as_advanced(GHOSTSCRIPT_BINARY_PATH)
|
|
|
|
find_path(GHOSTSCRIPT_LIBRARY_PATH ps2pdf13.bat
|
|
"${GHOSTSCRIPT_BINARY_PATH}/../lib"
|
|
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
|
|
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
|
|
)
|