diff --git a/Modules/FindLATEX.cmake b/Modules/FindLATEX.cmake index ba00965688..e0ef805c05 100644 --- a/Modules/FindLATEX.cmake +++ b/Modules/FindLATEX.cmake @@ -2,35 +2,91 @@ # This module finds if Latex is installed and determines where the # executables are. This code sets the following variables: # -# LATEX_COMPILE = the full path to the LaTeX compiler -# BIBTEX_COMPILE = the full path to the BibTeX compiler -# DVIPDF_COMPILE = the full path to the DVIPDF converter -# PS2PDF_COMPILE = the full path to the PS2PDF converter -# DVIPS_COMPILE = the full path to the DVIPS converter -# MAKEINDEX_COMPILE = the full path to the MakeIndex compiler +# LATEX_COMPILER = the full path to the LaTeX compiler +# BIBTEX_COMPILER = the full path to the BibTeX compiler +# MAKEINDEX_COMPILER = the full path to the MakeIndex compiler +# DVIPS_CONVERTER = the full path to the DVIPS converter +# DVIPDF_CONVERTER = the full path to the DVIPDF converter +# PS2PDF_CONVERTER = the full path to the PS2PDF converter # -FIND_PROGRAM(LATEX_COMPILE +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 (WIN32) + +FIND_PROGRAM(LATEX_COMPILER NAMES latex + PATHS ${MIKTEX_BINARY_PATH} ) -FIND_PROGRAM(BIBTEX_COMPILE +FIND_PROGRAM(BIBTEX_COMPILER NAMES bibtex + PATHS ${MIKTEX_BINARY_PATH} ) -FIND_PROGRAM(DVIPDF_COMPILE - NAMES dvipdf -) - -FIND_PROGRAM(DVIPS_COMPILE - NAMES dvips -) - -FIND_PROGRAM(MAKEINDEX_COMPILE +FIND_PROGRAM(MAKEINDEX_COMPILER NAMES makeindex + PATHS ${MIKTEX_BINARY_PATH} ) -FIND_PROGRAM(PS2PDF_COMPILE - NAMES ps2pdf +FIND_PROGRAM(DVIPS_CONVERTER + NAMES dvips + PATHS ${MIKTEX_BINARY_PATH} ) +FIND_PROGRAM(DVIPDF_CONVERTER + NAMES dvipdf + PATHS ${GHOSTSCRIPT_LIBRARY_PATH} +) + +IF (WIN32) + FIND_PROGRAM(PS2PDF_CONVERTER + NAMES ps2pdf13.bat + PATHS ${GHOSTSCRIPT_LIBRARY_PATH} + ) +ELSE (WIN32) + FIND_PROGRAM(PS2PDF_CONVERTER + NAMES ps2pdf + ) +ENDIF (WIN32) + +MARK_AS_ADVANCED( + LATEX_COMPILER + BIBTEX_COMPILER + MAKEINDEX_COMPILER + DVIPDF_CONVERTER + DVIPS_CONVERTER + PS2PDF_CONVERTER +)