aboutsummaryrefslogtreecommitdiff
path: root/modules/FindDocBookXML.cmake
blob: 510018772ac8ac38d7279ec7c1199a07b80e0864 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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
#  DOCBOOKXML_CURRENTDTD_VERSION - if defined, the version of previously used
#     DocBook XML DTD
#  DOCBOOKXML_OLDDTD_DIR - if defined and different from
#     DOCBOOKXML_CURRENTDTD_DIR, the directory containing the definition of
#     previously 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}
)

# hacks for systems that use the package version in the DTD dirs,
# e.g. Fedora, OpenSolaris
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}
)

#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_VERSION DOCBOOKXML_CURRENTDTD_DIR)

mark_as_advanced (DOCBOOKXML_CURRENTDTD_DIR DOCBOOKXML_CURRENTDTD_VERSION)