diff options
Diffstat (limited to 'cmake/modules/FindXMLLINT.cmake')
-rw-r--r-- | cmake/modules/FindXMLLINT.cmake | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cmake/modules/FindXMLLINT.cmake b/cmake/modules/FindXMLLINT.cmake new file mode 100644 index 0000000000..f5ac6459e2 --- /dev/null +++ b/cmake/modules/FindXMLLINT.cmake @@ -0,0 +1,48 @@ +# +# $Id$ +# +# - Find unix commands from cygwin +# This module looks for some usual Unix commands. +# + +INCLUDE(FindCygwin) + +FIND_PROGRAM(XMLLINT_EXECUTABLE + NAMES + xmllint + PATHS + ${CYGWIN_INSTALL_PATH}/bin + /bin + /usr/bin + /usr/local/bin + /sbin +) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(XMLLINT DEFAULT_MSG XMLLINT_EXECUTABLE) + +MARK_AS_ADVANCED(XMLLINT_EXECUTABLE) + +# Validate XML +MACRO(VALIDATE_XML _validated _sources) + message(STATUS "Source(s): ${${_sources}}") + # FIXME: How do I extract the first element of a variable containing a + # list of values? Isn't there a "cleaner" solution? + FOREACH(_source ${${_sources}}) + BREAK() + ENDFOREACH() + ADD_CUSTOM_COMMAND( + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/${_validated} + COMMAND ${XMLLINT_EXECUTABLE} + --valid + --noout + --path "${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}" + ${_source} + COMMAND touch + ${CMAKE_CURRENT_BINARY_DIR}/${_validated} + DEPENDS + ${_source} + svn_version.xml + ) +ENDMACRO(VALIDATE_XML) |