105 lines
4.4 KiB
CMake
105 lines
4.4 KiB
CMake
################################################################################
|
|
## Configure Pandoc to use
|
|
## Usage:
|
|
## 1º Include Module:
|
|
## LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/cmake-pandocology")
|
|
## INCLUDE(pandocology)
|
|
## INCLUDE(cmspandoc)
|
|
## 2º Call macro CONFIGUREPANDOCOLOGY() to configure
|
|
################################################################################
|
|
|
|
MACRO(CONFIGUREPANDOCOLOGY)
|
|
MESSAGE(STATUS "Configuring pandoc variables...")
|
|
|
|
# Set predefined options
|
|
SET(PANDOC_OUTPUT_FORMAT pdf CACHE STRING "Choose final document")
|
|
SET(PANDOC_STANDALONE YES CACHE BOOL "Produce output with an appropriate header and footer (e.g. a standalone HTML, LaTeX, TEI,
|
|
or RTF file, not a fragment). This option is set automatically for pdf, epub, epub3, fb2, docx, and odt output.")
|
|
SET(PANDOC_DOCUMENTCLASS "report" CACHE STRING "Document class with Latex")
|
|
SET(PANDOC_LANGUAGE en CACHE STRING "Language with BCP 47 identifier")
|
|
SET(PANDOC_LATEX_ENGINE xelatex CACHE STRING "Latex engine")
|
|
SET(PANDOC_FONT_SIZE 12pt CACHE STRING "Font size")
|
|
SET(PANDOC_PAPER_SIZE a4 CACHE STRING "Paper size")
|
|
SET(PANDOC_MARGIN_LEFT 3cm CACHE STRING "Margin left")
|
|
SET(PANDOC_MARGIN_RIGHT 3cm CACHE STRING "Margin right")
|
|
SET(PANDOC_MARGIN_TOP 3cm CACHE STRING "Margin top")
|
|
SET(PANDOC_MARGIN_BOTTOM 3cm CACHE STRING "Margin bottom")
|
|
SET(PANDOC_FONT_MAIN "Liberation Sans" CACHE STRING "Font")
|
|
SET(PANDOC_FONT_MONO "Liberation Sans" CACHE STRING "Font")
|
|
SET(PANDOC_INCLUDE_CONTENT TRUE CACHE BOOL "Choose if you want include Tables of content (toc)")
|
|
SET(PANDOC_INCLUDE_FIGURE FALSE CACHE BOOL "Choose if you want include Tables of content (lof)")
|
|
SET(PANDOC_INCLUDE_TABLE FALSE CACHE BOOL "Choose if you want include Tables of content (lot)")
|
|
#SET(PANDOC_SECTION_NUMBERS en CACHE STRING "Add section numbers")
|
|
|
|
# Set multiple options in cache variables
|
|
SET_PROPERTY(CACHE PANDOC_DOCUMENTCLASS PROPERTY STRINGS article report book letter slides)
|
|
SET_PROPERTY(CACHE PANDOC_OUTPUT_FORMAT PROPERTY STRINGS pdf doc odt html)
|
|
SET_PROPERTY(CACHE PANDOC_LANGUAGE PROPERTY STRINGS en es)
|
|
SET_PROPERTY(CACHE PANDOC_LATEX_ENGINE PROPERTY STRINGS pdflatex xelatex lualatex)
|
|
SET_PROPERTY(CACHE PANDOC_FONT_SIZE PROPERTY STRINGS 10pt 12pt 14pt 16pt 18pt 20pt 30pt 35pt 40pt)
|
|
SET_PROPERTY(CACHE PANDOC_PAPER_SIZE PROPERTY STRINGS a4 a3)
|
|
LIST(APPEND PANDOC_FONTS "Liberation Sans" "Inconsolata" "FreeMono" "Palatino")
|
|
SET_PROPERTY(CACHE PANDOC_FONT_MAIN PROPERTY STRINGS ${PANDOC_FONTS})
|
|
SET_PROPERTY(CACHE PANDOC_FONT_MONO PROPERTY STRINGS ${PANDOC_FONTS})
|
|
#SET_PROPERTY(CACHE PANDOC_SECTION_NUMBERS PROPERTY STRINGS yes no)
|
|
|
|
# CMake Options
|
|
SET(CMAKE_BUILD_TYPE
|
|
Release
|
|
CACHE STRING "Release" FORCE)
|
|
SET(CMAKE_INSTALL_PREFIX
|
|
${PROJECT_BINARY_DIR}/install
|
|
CACHE STRING "Build path" FORCE)
|
|
|
|
# FORMAT Options
|
|
|
|
# Pdf Options
|
|
SET(IMG_EXT_PDF pdf)
|
|
#LIST(APPEND PARAMS_PDF "-V babel-lang=$(LANG)")
|
|
|
|
# Others
|
|
# odt TODO
|
|
# doc TODO
|
|
# html TODO
|
|
# presentation TODO
|
|
|
|
# Condition
|
|
IF(PANDOC_STANDALONE)
|
|
SET(PANDOC_STANDALONE_VAR -s)
|
|
ELSE()
|
|
SET(PANDOC_STANDALONE_VAR )
|
|
ENDIF()
|
|
|
|
# Configure pandoc for all projects, you can use your own variable into different modules
|
|
SET(PANDOC_PDF_CONFIG
|
|
${PANDOC_STANDALONE_VAR}
|
|
--variable documentclass=${PANDOC_DOCUMENTCLASS}
|
|
--latex-engine=${PANDOC_LATEX_ENGINE}
|
|
--default-image-extension=${IMG_EXT_PDF}
|
|
--variable lang=${PANDOC_LANGUAGE}
|
|
--variable fontsize=${PANDOC_FONT_SIZE}
|
|
--variable papersize=${PANDOC_PAPER_SIZE}
|
|
#--variable fontfamily=${PANDOC_FONT_FAMILY} # only pdflatex
|
|
--variable mainfont=${PANDOC_FONT_MAIN}
|
|
--variable monofont=${PANDOC_FONT_MONO}
|
|
--variable margin-left=${PANDOC_MARGIN_LEFT}
|
|
--variable margin-right=${PANDOC_MARGIN_RIGHT}
|
|
--variable margin-top=${PANDOC_MARGIN_TOP}
|
|
--variable margin-bottom=${PANDOC_MARGIN_BOTTOM}
|
|
)
|
|
|
|
# Add extra includes
|
|
IF(PANDOC_INCLUDE_CONTENT)
|
|
SET(PANDOC_PDF_CONFIG ${PANDOC_PDF_CONFIG} --variable toc)
|
|
ENDIF()
|
|
|
|
IF(PANDOC_INCLUDE_FIGURE)
|
|
SET(PANDOC_PDF_CONFIG ${PANDOC_PDF_CONFIG} --variable lof)
|
|
ENDIF()
|
|
|
|
IF(PANDOC_INCLUDE_TABLE)
|
|
SET(PANDOC_PDF_CONFIG ${PANDOC_PDF_CONFIG} --variable lot)
|
|
ENDIF()
|
|
|
|
MESSAGE(STATUS "pandoc variables configured!")
|
|
ENDMACRO()
|