Unverified Commit e0b86842 authored by Stephan Lachnit's avatar Stephan Lachnit
Browse files

cmake: add targets for latexmk, lualatex, biber and pygmentize

parent 11535c51
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
# SPDX-FileCopyrightText: 2022 CERN and the Allpix Squared authors
# SPDX-License-Identifier: MIT

# CMake script to find the biber executable and export it as Biber::biber target

FIND_PROGRAM(
    BIBER_EXECUTABLE
    NAMES biber
)
MARK_AS_ADVANCED(BIBER_EXECUTABLE)

IF(BIBER_EXECUTABLE)
    EXECUTE_PROCESS(
        COMMAND "${BIBER_EXECUTABLE}" "-v"
        OUTPUT_VARIABLE _Biber_version
        OUTPUT_STRIP_TRAILING_WHITESPACE
        RESULT_VARIABLE _Biber_version_result
        ERROR_QUIET)

    IF(_Biber_version_result)
        MESSAGE(WARNING "Unable to determine biber version: ${_Biber_version_result}")
    ELSE()
        STRING(REGEX REPLACE "^.+ version: ([^\n]+)" "\\1" BIBER_VERSION "${_Biber_version}")
    ENDIF()

    IF(NOT TARGET Biber::biber)
        ADD_EXECUTABLE(Biber::biber IMPORTED GLOBAL)
        SET_TARGET_PROPERTIES(Biber::biber PROPERTIES
            IMPORTED_LOCATION "${BIBER_EXECUTABLE}")
    ENDIF()
ENDIF()

IF(TARGET Biber::biber)
    SET(BIBER_FOUND TRUE)
ENDIF()

INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
    Biber
    REQUIRED_VARS BIBER_EXECUTABLE
    VERSION_VAR BIBER_VERSION)
+41 −0
Original line number Diff line number Diff line
# SPDX-FileCopyrightText: 2022 CERN and the Allpix Squared authors
# SPDX-License-Identifier: MIT

# CMake script to find the latexmk executable and export it as Latexmk::latexmk target

FIND_PROGRAM(
    LATEXMK_EXECUTABLE
    NAMES latexmk
)
MARK_AS_ADVANCED(LATEXMK_EXECUTABLE)

IF(LATEXMK_EXECUTABLE)
    EXECUTE_PROCESS(
        COMMAND "${LATEXMK_EXECUTABLE}" "-v"
        OUTPUT_VARIABLE _Latexmk_version
        OUTPUT_STRIP_TRAILING_WHITESPACE
        RESULT_VARIABLE _Latexmk_version_result
        ERROR_QUIET)

    IF(_Latexmk_version_result)
        MESSAGE(WARNING "Unable to determine latexmk version: ${_Latexmk_version_result}")
    ELSE()
        STRING(REGEX REPLACE "^.+Version ([^\n]+)" "\\1" LATEXMK_VERSION "${_Latexmk_version}")
    ENDIF()

    IF(NOT TARGET Latexmk::latexmk)
        ADD_EXECUTABLE(Latexmk::latexmk IMPORTED GLOBAL)
        SET_TARGET_PROPERTIES(Latexmk::latexmk PROPERTIES
            IMPORTED_LOCATION "${LATEXMK_EXECUTABLE}")
    ENDIF()
ENDIF()

IF(TARGET Latexmk::latexmk)
    SET(LATEXMK_FOUND TRUE)
ENDIF()

INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
    Latexmk
    REQUIRED_VARS LATEXMK_EXECUTABLE
    VERSION_VAR LATEXMK_VERSION)
+41 −0
Original line number Diff line number Diff line
# SPDX-FileCopyrightText: 2022 CERN and the Allpix Squared authors
# SPDX-License-Identifier: MIT

# CMake script to find the lualatex executable and export it as Lualatex::lualatex target

FIND_PROGRAM(
    LUALATEX_EXECUTABLE
    NAMES lualatex
)
MARK_AS_ADVANCED(LUALATEX_EXECUTABLE)

IF(LUALATEX_EXECUTABLE)
    EXECUTE_PROCESS(
        COMMAND "${LUALATEX_EXECUTABLE}" "-v"
        OUTPUT_VARIABLE _Lualatex_version
        OUTPUT_STRIP_TRAILING_WHITESPACE
        RESULT_VARIABLE _Lualatex_version_result
        ERROR_QUIET)

    IF(_Lualatex_version_result)
        MESSAGE(WARNING "Unable to determine lualatex version: ${_Lualatex_version_result}")
    ELSE()
        STRING(REGEX REPLACE "^.+ Version ([^\n ]+) .+\n.*" "\\1" LUALATEX_VERSION "${_Lualatex_version}")
    ENDIF()

    IF(NOT TARGET Lualatex::lualatex)
        ADD_EXECUTABLE(Lualatex::lualatex IMPORTED GLOBAL)
        SET_TARGET_PROPERTIES(Lualatex::lualatex PROPERTIES
            IMPORTED_LOCATION "${LUALATEX_EXECUTABLE}")
    ENDIF()
ENDIF()

IF(TARGET Lualatex::lualatex)
    SET(LUALATEX_FOUND TRUE)
ENDIF()

INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
    Lualatex
    REQUIRED_VARS LUALATEX_EXECUTABLE
    VERSION_VAR LUALATEX_VERSION)
+41 −0
Original line number Diff line number Diff line
# SPDX-FileCopyrightText: 2022 CERN and the Allpix Squared authors
# SPDX-License-Identifier: MIT

# CMake script to find the pygmentize executable and export it as Pygmentize::pygmentize target

FIND_PROGRAM(
    PYGMENTIZE_EXECUTABLE
    NAMES pygmentize
)
MARK_AS_ADVANCED(PYGMENTIZE_EXECUTABLE)

IF(PYGMENTIZE_EXECUTABLE)
    EXECUTE_PROCESS(
        COMMAND "${PYGMENTIZE_EXECUTABLE}" "-V"
        OUTPUT_VARIABLE _Pygmentize_version
        OUTPUT_STRIP_TRAILING_WHITESPACE
        RESULT_VARIABLE _Pygmentize_version_result
        ERROR_QUIET)

    IF(_Pygmentize_version_result)
        MESSAGE(WARNING "Unable to determine pygmentize version: ${_Pygmentize_version_result}")
    ELSE()
        STRING(REGEX REPLACE "^.+ version ([^\n,]+),.*" "\\1" PYGMENTIZE_VERSION "${_Pygmentize_version}")
    ENDIF()

    IF(NOT TARGET Pygmentize::pygmentize)
        ADD_EXECUTABLE(Pygmentize::pygmentize IMPORTED GLOBAL)
        SET_TARGET_PROPERTIES(Pygmentize::pygmentize PROPERTIES
            IMPORTED_LOCATION "${PYGMENTIZE_EXECUTABLE}")
    ENDIF()
ENDIF()

IF(TARGET Pygmentize::pygmentize)
    SET(PYGMENTIZE_FOUND TRUE)
ENDIF()

INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
    Pygmentize
    REQUIRED_VARS PYGMENTIZE_EXECUTABLE
    VERSION_VAR PYGMENTIZE_VERSION)
+6 −3
Original line number Diff line number Diff line
@@ -99,7 +99,10 @@ ADD_CUSTOM_TARGET(

SET(DOCS_PDF_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/usermanual_pdf")

# FIXME: Find Lualatex + Biber + Latexmk and add targets
FIND_PACKAGE(Latexmk)
FIND_PACKAGE(Lualatex)
FIND_PACKAGE(Biber)
FIND_PACKAGE(Pygmentize)

SET(LATEXMK_COMPILER_FLAGS "-pdflua" "-cd" "-shell-escape")

@@ -119,8 +122,8 @@ ADD_CUSTOM_TARGET(
    COMMAND
        ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/frontmatter.tex" "${DOCS_PDF_BINARY_DIR}"
    COMMAND
        latexmk ${LATEXMK_COMPILER_FLAGS} "${DOCS_PDF_BINARY_DIR}/allpix-manual.tex"
    DEPENDS Python::Interpreter apsq_docs_latex
        Latexmk::latexmk ${LATEXMK_COMPILER_FLAGS} "${DOCS_PDF_BINARY_DIR}/allpix-manual.tex"
    DEPENDS Python::Interpreter Latexmk::latexmk Lualatex::lualatex Biber::biber Pygmentize::pygmentize apsq_docs_latex
    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/convert"
    COMMENT "Generating the PDF documentation"
    VERBATIM)