Warning, /frameworks/kdoctools/cmake/FindDocBookXML4.cmake is written in an unsupported language. File is not indexed.
0001 # Try to find DocBook XML 4.x DTD.
0002 # By default it will find version 4.5. A different version can be specified
0003 # as parameter for find_package().
0004 # Once done, it will define:
0005 #
0006 # DocBookXML4_FOUND - system has the requested DocBook4 XML DTDs
0007 # DocBookXML4_DTD_VERSION - the version of requested DocBook4
0008 # XML DTD
0009 # DocBookXML4_DTD_DIR - the directory containing the definition of
0010 # the DocBook4 XML
0011
0012 # SPDX-FileCopyrightText: 2010, 2014 Luigi Toscano <luigi.toscano@tiscali.it>
0013 #
0014 # SPDX-License-Identifier: BSD-3-Clause
0015
0016 if (NOT DocBookXML_FIND_VERSION)
0017 set(DocBookXML_FIND_VERSION "4.5")
0018 endif ()
0019
0020 set (DocBookXML4_DTD_VERSION ${DocBookXML_FIND_VERSION}
0021 CACHE INTERNAL "Required version of DocBook4 XML DTDs")
0022
0023 include(FeatureSummary)
0024 set_package_properties(DocBookXML4 PROPERTIES DESCRIPTION "DocBook XML 4"
0025 URL "http://www.oasis-open.org/docbook/xml/${DocBookXML4_DTD_VERSION}"
0026 )
0027
0028 function (locate_version version found_dir)
0029
0030 set (DTD_PATH_LIST
0031 ${CMAKE_INSTALL_DATAROOTDIR}/xml/docbook/schema/dtd/${version}
0032 ${CMAKE_INSTALL_DATAROOTDIR}/xml/docbook/xml-dtd-${version}
0033 ${CMAKE_INSTALL_DATAROOTDIR}/sgml/docbook/xml-dtd-${version}
0034 ${CMAKE_INSTALL_DATAROOTDIR}/xml/docbook/${version}
0035 # for building on Mac with docbook installed by homebrew
0036 opt/docbook/docbook/xml/${version}
0037 # for building with Nix package manager
0038 xml/dtd/docbook
0039 )
0040
0041 find_path (searched_dir docbookx.dtd
0042 PATHS ${CMAKE_SYSTEM_PREFIX_PATH}
0043 PATH_SUFFIXES ${DTD_PATH_LIST}
0044 )
0045
0046 if (NOT searched_dir)
0047 # hacks for systems that use the package version in the DTD dirs,
0048 # e.g. Fedora, OpenSolaris
0049 set (DTD_PATH_LIST)
0050 foreach (DTD_PREFIX_ITER ${CMAKE_SYSTEM_PREFIX_PATH})
0051 file(GLOB DTD_SUFFIX_ITER RELATIVE ${DTD_PREFIX_ITER}
0052 ${DTD_PREFIX_ITER}/share/sgml/docbook/xml-dtd-${version}-*
0053 )
0054 if (DTD_SUFFIX_ITER)
0055 list (APPEND DTD_PATH_LIST ${DTD_SUFFIX_ITER})
0056 endif ()
0057 endforeach ()
0058
0059 find_path (searched_dir docbookx.dtd
0060 PATHS ${CMAKE_SYSTEM_PREFIX_PATH}
0061 PATH_SUFFIXES ${DTD_PATH_LIST}
0062 )
0063 endif ()
0064 if (searched_dir)
0065 set (${found_dir} ${searched_dir} PARENT_SCOPE)
0066 else()
0067 message(WARNING "${found_dir}: Could not find docbookx.dtd in ${CMAKE_SYSTEM_PREFIX_PATH} with suffixes ${DTD_PATH_LIST}")
0068 endif()
0069 endfunction()
0070
0071
0072 locate_version (${DocBookXML4_DTD_VERSION} DocBookXML4_DTD_DIR)
0073
0074 include(FindPackageHandleStandardArgs)
0075 find_package_handle_standard_args (DocBookXML4
0076 REQUIRED_VARS DocBookXML4_DTD_DIR DocBookXML4_DTD_VERSION
0077 FOUND_VAR DocBookXML4_FOUND)
0078
0079 mark_as_advanced (DocBookXML4_DTD_DIR DocBookXML4_DTD_VERSION)