blob: 8874c8228bb263329367edafbed23a8da85e3816 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# 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()
|