# Pandoc is optional until the doc/install/release target actually needs it. set(CPSC_LOCAL_BIN_DIRS "@CPSC_LOCAL_BIN_DIRS@") include("@CPSC_DEPS_MODULE_DIR@/FindDependency.cmake") cpsc_find_dependency(PROGRAM pandoc NAMES pandoc REQUIRED) message(STATUS "Using Pandoc: ${pandoc}") set(arguments --standalone --from=markdown --to=@cpsc_manual_format@) if("@cpsc_manual_format@" STREQUAL "html5") get_filename_component(title "${CPSC_MANUAL_SOURCE}" NAME) string(REGEX REPLACE "\\.[17]\\.md$" "" title "${title}") list(APPEND arguments --metadata "title=${title}") endif() if(pandoc_LOCAL AND IS_DIRECTORY "@CPSC_DEPS_ROOT@/usr/share/pandoc/data") list(APPEND arguments "--data-dir=@CPSC_DEPS_ROOT@/usr/share/pandoc/data") endif() if(pandoc_LOCAL AND WIN32) set(ENV{PATH} "${CPSC_LOCAL_BIN_DIRS};$ENV{PATH}") elseif(pandoc_LOCAL AND UNIX AND NOT APPLE) string(REPLACE ";" ":" libraries "@CPSC_LOCAL_LIBRARY_DIRS@") if(NOT "$ENV{LD_LIBRARY_PATH}" STREQUAL "") string(APPEND libraries ":$ENV{LD_LIBRARY_PATH}") endif() set(ENV{LD_LIBRARY_PATH} "${libraries}") endif() get_filename_component(output_dir "${CPSC_MANUAL_OUTPUT}" DIRECTORY) file(MAKE_DIRECTORY "${output_dir}") list(APPEND arguments "--lua-filter=@CMAKE_CURRENT_SOURCE_DIR@/cmake/ManualLinks.lua") execute_process( COMMAND "${pandoc}" ${arguments} "${CPSC_MANUAL_SOURCE}" --output "${CPSC_MANUAL_OUTPUT}" RESULT_VARIABLE result ) if(NOT result EQUAL 0) message(FATAL_ERROR "Pandoc failed to generate ${CPSC_MANUAL_OUTPUT} (${result})") endif()