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)