macro(CheckDTD VARIABLE title docbookb_ss_dtd style_spec_use
external_specification docbook_dtd jade_output_type
origin_package)
if(NOT DEFINED ${VARIABLE})
set(CONFTEST "testdtd")
file(WRITE ${CMAKE_BINARY_DIR}/${CONFTEST}.dsl
"
(define %root-filename% \"${CONFTEST}\")
${external_specification}
"
)
file(WRITE ${CMAKE_BINARY_DIR}/${CONFTEST}.xml
"
"
)
execute_process(
COMMAND ${OPENJADE} ${SGML_CATALOGS}
-d ${CMAKE_BINARY_DIR}/${CONFTEST}.dsl
-t ${jade_output_type}
-o ${CMAKE_BINARY_DIR}/${CONFTEST}.out
${XML_DECL} ${CMAKE_BINARY_DIR}/${CONFTEST}.xml
OUTPUT_FILE "${JADELOG}.x"
ERROR_FILE "${JADELOG}.x"
)
file(READ "${CMAKE_BINARY_DIR}/${JADELOG}.x" RESULT)
if("${RESULT}" MATCHES ":E:")
set(${VARIABLE} OFF CACHE BOOL "Checking for ${title}" FORCE)
message(STATUS "WARNING: ${title} not found")
else("${RESULT}" MATCHES ":E:")
set(${VARIABLE} ON CACHE BOOL "Checking for ${title}" FORCE)
message(STATUS "${title} found")
endif("${RESULT}" MATCHES ":E:")
endif(NOT DEFINED ${VARIABLE})
endmacro(CheckDTD)