aboutsummaryrefslogtreecommitdiff
path: root/modules/FindDocBookXML.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/FindDocBookXML.cmake')
-rw-r--r--modules/FindDocBookXML.cmake67
1 files changed, 67 insertions, 0 deletions
diff --git a/modules/FindDocBookXML.cmake b/modules/FindDocBookXML.cmake
new file mode 100644
index 00000000..26053bfd
--- /dev/null
+++ b/modules/FindDocBookXML.cmake
@@ -0,0 +1,67 @@
+# Try to find DocBook XML DTDs
+# Once done, it will define:
+#
+# DOCBOOKXML_FOUND - system has the required DocBook XML DTDs
+# DOCBOOKXML_CURRENTDTD_VERSION - the version of currently used DocBook XML
+# DTD
+# DOCBOOKXML_CURRENTDTD_DIR - the directory containing the definition of
+# the currently used DocBook XML version
+
+# Copyright (c) 2010, Luigi Toscano, <luigi.toscano@tiscali.it>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+set (DOCBOOKXML_CURRENTDTD_VERSION "4.2"
+ CACHE INTERNAL "Required version of XML DTDs")
+
+set (DTD_PATH_LIST
+ share/xml/docbook/schema/dtd/${DOCBOOKXML_CURRENTDTD_VERSION}
+ share/xml/docbook/xml-dtd-${DOCBOOKXML_CURRENTDTD_VERSION}
+ share/sgml/docbook/xml-dtd-${DOCBOOKXML_CURRENTDTD_VERSION}
+ share/xml/docbook/${DOCBOOKXML_CURRENTDTD_VERSION}
+)
+
+find_path (DOCBOOKXML_CURRENTDTD_DIR docbookx.dtd
+ PATHS ${CMAKE_SYSTEM_PREFIX_PATH}
+ PATH_SUFFIXES ${DTD_PATH_LIST}
+)
+
+if (NOT DOCBOOKXML_CURRENTDTD_DIR)
+ # hacks for systems that use the package version in the DTD dirs,
+ # e.g. Fedora, OpenSolaris
+ set (DTD_PATH_LIST)
+ foreach (DTD_PREFIX_ITER ${CMAKE_SYSTEM_PREFIX_PATH})
+ file(GLOB DTD_SUFFIX_ITER RELATIVE ${DTD_PREFIX_ITER}
+ ${DTD_PREFIX_ITER}/share/sgml/docbook/xml-dtd-${DOCBOOKXML_CURRENTDTD_VERSION}-*
+ )
+ if (DTD_SUFFIX_ITER)
+ list (APPEND DTD_PATH_LIST ${DTD_SUFFIX_ITER})
+ endif ()
+ endforeach ()
+
+ find_path (DOCBOOKXML_CURRENTDTD_DIR docbookx.dtd
+ PATHS ${CMAKE_SYSTEM_PREFIX_PATH}
+ PATH_SUFFIXES ${DTD_PATH_LIST}
+ )
+endif (NOT DOCBOOKXML_CURRENTDTD_DIR)
+
+#set (DOCBOOKXML_OLDDTD_DIR ${DOCBOOKXML_CURRENTDTD_DIR})
+#set (DOCBOOKXML_OLDDTD_VERSION "4.1.2")
+#set (DTD_PATH_LIST)
+# share/xml/docbook/schema/dtd/${DOCBOOKXML_OLDDTD_VERSION}
+# share/xml/docbook/xml-dtd-${DOCBOOKXML_OLDDTD_VERSION}
+# share/sgml/docbook/xml-dtd-${DOCBOOKXML_OLDDTD_VERSION}
+# share/xml/docbook/${DOCBOOKXML_OLDDTD_VERSION}
+#)
+#find_path (DOCBOOKXML_OLDDTD_DIR docbookx.dtd
+# PATHS ${CMAKE_SYSTEM_PREFIX_PATH}
+# PATH_SUFFIXES ${DTD_PATH_LIST}
+#)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args (DocBookXML
+ "Could NOT find DocBook XML DTDs (v${DOCBOOKXML_CURRENTDTD_VERSION})"
+ DOCBOOKXML_CURRENTDTD_DIR DOCBOOKXML_CURRENTDTD_VERSION)
+
+mark_as_advanced (DOCBOOKXML_CURRENTDTD_DIR DOCBOOKXML_CURRENTDTD_VERSION)