1# Copyright (c) 2015, Intel Corporation 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without modification, 5# are permitted provided that the following conditions are met: 6# 7# 1. Redistributions of source code must retain the above copyright notice, this 8# list of conditions and the following disclaimer. 9# 10# 2. Redistributions in binary form must reproduce the above copyright notice, 11# this list of conditions and the following disclaimer in the documentation and/or 12# other materials provided with the distribution. 13# 14# 3. Neither the name of the copyright holder nor the names of its contributors 15# may be used to endorse or promote products derived from this software without 16# specific prior written permission. 17# 18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 19# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 22# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 25# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 29# Wrapper around the official FindLibXml2.cmake in order to provide imported targets. 30# This has the advantage of propagating Transitive Usage Requirements to consumers. 31# See: https://cmake.org/cmake/help/git-master/manual/cmake-developer.7.html#find-modules 32# See: https://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/FindGLUT.cmake 33# for a modern Find<package>.cmake example 34# TODO: make a real FindLibXml2.cmake in order to upstream it. 35 36# More info on how to write Find*.cmake on: 37# https://cmake.org/cmake/help/git-master/manual/cmake-developer.7.html#find-modules 38 39# Remove this directory from CMAKE_MODULE_PATH for the call to the original FindLibXml2.cmake 40set(CMAKE_MODULE_PATH_BACKUP "${CMAKE_MODULE_PATH}") 41list(REMOVE_ITEM CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") 42find_package(LibXml2) 43set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_BACKUP}") 44unset(CMAKE_MODULE_PATH_BACKUP) 45 46add_library(LibXml2::libxml2 UNKNOWN IMPORTED) 47 48set_target_properties(LibXml2::libxml2 PROPERTIES 49 IMPORTED_LOCATION "${LIBXML2_LIBRARIES}" 50 INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIR}" 51 INTERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}" 52 IMPORTED_LINK_INTERFACE_LANGUAGES "C" 53 INTERFACE_COMPILE_DEFINITIONS "${LIBXML2_DEFINITIONS}") 54 55# Do not call find_package_handle_standard_args as this has already been done 56# in find_package(LibXml2) 57