Dyn
view release on metacpan or search on metacpan
dyncall/buildsys/cmake/Modules/UseLATEX.cmake view on Meta::CPAN
MACRO(LATEX_CAR var)
SET(${var} ${ARGV1})
ENDMACRO(LATEX_CAR)
MACRO(LATEX_CDR var junk)
SET(${var} ${ARGN})
ENDMACRO(LATEX_CDR)
MACRO(LATEX_LIST_CONTAINS var value)
SET(${var})
FOREACH (value2 ${ARGN})
IF (${value} STREQUAL ${value2})
SET(${var} TRUE)
ENDIF (${value} STREQUAL ${value2})
ENDFOREACH (value2)
ENDMACRO(LATEX_LIST_CONTAINS)
# Parse macro arguments.
MACRO(LATEX_PARSE_ARGUMENTS prefix arg_names option_names)
SET(DEFAULT_ARGS)
FOREACH(arg_name ${arg_names})
SET(${prefix}_${arg_name})
ENDFOREACH(arg_name)
FOREACH(option ${option_names})
SET(${prefix}_${option})
ENDFOREACH(option)
SET(current_arg_name DEFAULT_ARGS)
SET(current_arg_list)
FOREACH(arg ${ARGN})
LATEX_LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
IF (is_arg_name)
SET(${prefix}_${current_arg_name} ${current_arg_list})
SET(current_arg_name ${arg})
SET(current_arg_list)
ELSE (is_arg_name)
LATEX_LIST_CONTAINS(is_option ${arg} ${option_names})
IF (is_option)
SET(${prefix}_${arg} TRUE)
ELSE (is_option)
SET(current_arg_list ${current_arg_list} ${arg})
ENDIF (is_option)
ENDIF (is_arg_name)
ENDFOREACH(arg)
SET(${prefix}_${current_arg_name} ${current_arg_list})
ENDMACRO(LATEX_PARSE_ARGUMENTS)
# Match the contents of a file to a regular expression.
MACRO(LATEX_FILE_MATCH variable filename regexp default)
# The FILE STRINGS command would be a bit better, but it's not supported on
# older versions of CMake.
FILE(READ ${filename} file_contents)
STRING(REGEX MATCHALL "${regexp}"
${variable} ${file_contents}
)
IF (NOT ${variable})
SET(${variable} "${default}")
ENDIF (NOT ${variable})
ENDMACRO(LATEX_FILE_MATCH)
#############################################################################
# Macros that perform processing during a LaTeX build.
#############################################################################
MACRO(LATEX_MAKEGLOSSARIES)
MESSAGE("**************************** In makeglossaries")
IF (NOT LATEX_TARGET)
MESSAGE(SEND_ERROR "Need to define LATEX_TARGET")
ENDIF (NOT LATEX_TARGET)
IF (NOT MAKEINDEX_COMPILER)
MESSAGE(SEND_ERROR "Need to define MAKEINDEX_COMPILER")
ENDIF (NOT MAKEINDEX_COMPILER)
SET(aux_file ${LATEX_TARGET}.aux)
IF (NOT EXISTS ${aux_file})
MESSAGE(SEND_ERROR "${aux_file} does not exist. Run latex on your target file.")
ENDIF (NOT EXISTS ${aux_file})
LATEX_FILE_MATCH(newglossary_lines ${aux_file}
"@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
"@newglossary{main}{glg}{gls}{glo}"
)
LATEX_FILE_MATCH(istfile_line ${aux_file}
"@istfilename[ \t]*{([^}]*)}"
"@istfilename{${LATEX_TARGET}.ist}"
)
STRING(REGEX REPLACE "@istfilename[ \t]*{([^}]*)}" "\\1"
istfile ${istfile_line}
)
FOREACH(newglossary ${newglossary_lines})
STRING(REGEX REPLACE
"@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
"\\1" glossary_name ${newglossary}
)
STRING(REGEX REPLACE
"@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
"${LATEX_TARGET}.\\2" glossary_log ${newglossary}
)
STRING(REGEX REPLACE
"@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
"${LATEX_TARGET}.\\3" glossary_out ${newglossary}
)
STRING(REGEX REPLACE
"@newglossary[ \t]*{([^}]*)}{([^}]*)}{([^}]*)}{([^}]*)}"
"${LATEX_TARGET}.\\4" glossary_in ${newglossary}
)
MESSAGE("${MAKEINDEX_COMPILER} ${MAKEGLOSSARIES_COMPILER_FLAGS} -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}")
EXEC_PROGRAM(${MAKEINDEX_COMPILER} ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS}
-s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}
)
ENDFOREACH(newglossary)
ENDMACRO(LATEX_MAKEGLOSSARIES)
#############################################################################
# Helper macros for establishing LaTeX build.
#############################################################################
MACRO(LATEX_NEEDIT VAR NAME)
IF (NOT ${VAR})
( run in 0.712 second using v1.01-cache-2.11-cpan-d8267643d1d )