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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
# Try to find DocBook XML 4.x DTD.
# By default it will find version 4.5. A different version can be specified
# as parameter for find_package().
# Once done, it will define:
#
# DocBookXML4_FOUND - system has the requested DocBook4 XML DTDs
# DocBookXML4_DTD_VERSION - the version of requested DocBook4
# XML DTD
# DocBookXML4_DTD_DIR - the directory containing the definition of
# the DocBook4 XML
# SPDX-FileCopyrightText: 2010, 2014 Luigi Toscano <luigi.toscano@tiscali.it>
#
# SPDX-License-Identifier: BSD-3-Clause
if (NOT DocBookXML_FIND_VERSION)
set(DocBookXML_FIND_VERSION "4.5")
endif ()
set (DocBookXML4_DTD_VERSION ${DocBookXML_FIND_VERSION}
CACHE INTERNAL "Required version of DocBook4 XML DTDs")
include(FeatureSummary)
set_package_properties(DocBookXML4 PROPERTIES DESCRIPTION "DocBook XML 4"
URL "http://www.oasis-open.org/docbook/xml/${DocBookXML4_DTD_VERSION}"
)
function (locate_version version found_dir)
set (DTD_PATH_LIST
${CMAKE_INSTALL_DATAROOTDIR}/xml/docbook/schema/dtd/${version}
${CMAKE_INSTALL_DATAROOTDIR}/xml/docbook/xml-dtd-${version}
${CMAKE_INSTALL_DATAROOTDIR}/sgml/docbook/xml-dtd-${version}
${CMAKE_INSTALL_DATAROOTDIR}/xml/docbook/${version}
# for building on Mac with docbook installed by homebrew
opt/docbook/docbook/xml/${version}
# for building with Nix package manager
xml/dtd/docbook
)
find_path (searched_dir docbookx.dtd
PATHS ${CMAKE_SYSTEM_PREFIX_PATH}
PATH_SUFFIXES ${DTD_PATH_LIST}
)
if (NOT searched_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-${version}-*
)
if (DTD_SUFFIX_ITER)
list (APPEND DTD_PATH_LIST ${DTD_SUFFIX_ITER})
endif ()
endforeach ()
find_path (searched_dir docbookx.dtd
PATHS ${CMAKE_SYSTEM_PREFIX_PATH}
PATH_SUFFIXES ${DTD_PATH_LIST}
)
endif ()
if (searched_dir)
set (${found_dir} ${searched_dir} PARENT_SCOPE)
else()
message(WARNING "${found_dir}: Could not find docbookx.dtd in ${CMAKE_SYSTEM_PREFIX_PATH} with suffixes ${DTD_PATH_LIST}")
endif()
endfunction()
locate_version (${DocBookXML4_DTD_VERSION} DocBookXML4_DTD_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args (DocBookXML4
REQUIRED_VARS DocBookXML4_DTD_DIR DocBookXML4_DTD_VERSION
FOUND_VAR DocBookXML4_FOUND)
mark_as_advanced (DocBookXML4_DTD_DIR DocBookXML4_DTD_VERSION)
|