# Run Doxygen and XSLT to create an xml file describing the SimTK API find_package(Doxygen REQUIRED) find_package(SimTK REQUIRED) find_package(Java REQUIRED) ### Create SimTK_headers.xml ### # Step 1 - Create Doxyfile to point to SimTK headers configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY ) # Step 2 - Run doxygen in non-package area add_custom_command( OUTPUT "xml/index.xml" "xml/combine.xslt" COMMAND "${DOXYGEN_EXECUTABLE}" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" COMMENT "Parsing SimTK header files with doxygen..." ) # Step 3 - Run xslt to create combined xml file add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/SimTK_headers.xml" COMMAND ${JAVA_RUNTIME} -jar "${CMAKE_CURRENT_SOURCE_DIR}/saxonb9-1-0-7j/saxon9.jar" -t -s:"${CMAKE_CURRENT_BINARY_DIR}/xml/index.xml" -xsl:"${CMAKE_CURRENT_BINARY_DIR}/xml/combine.xslt" -o:SimTK_headers.xml DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/xml/index.xml" "${CMAKE_CURRENT_BINARY_DIR}/xml/combine.xslt" COMMENT "Creating combined SimTK API xml file..." ) add_custom_target(DoxygenXml ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/SimTK_headers.xml")