FindXercesC: Add imported targets and unit test
This commit is contained in:
parent
e45e503f14
commit
5dcc833b28
|
@ -0,0 +1,4 @@
|
||||||
|
FindXercesC-imported-targets
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
* The :module:`FindXercesC` module now provides imported targets.
|
|
@ -4,23 +4,42 @@
|
||||||
#
|
#
|
||||||
# Find the Apache Xerces-C++ validating XML parser headers and libraries.
|
# Find the Apache Xerces-C++ validating XML parser headers and libraries.
|
||||||
#
|
#
|
||||||
# This module reports information about the Xerces installation in
|
# Imported targets
|
||||||
# several variables. General variables::
|
# ^^^^^^^^^^^^^^^^
|
||||||
#
|
#
|
||||||
# XercesC_FOUND - true if the Xerces headers and libraries were found
|
# This module defines the following :prop_tgt:`IMPORTED` targets:
|
||||||
# XercesC_VERSION - Xerces release version
|
|
||||||
# XercesC_INCLUDE_DIRS - the directory containing the Xerces headers
|
|
||||||
# XercesC_LIBRARIES - Xerces libraries to be linked
|
|
||||||
#
|
#
|
||||||
# The following cache variables may also be set::
|
# ``XercesC::XercesC``
|
||||||
|
# The Xerces-C++ ``xerces-c`` library, if found.
|
||||||
#
|
#
|
||||||
# XercesC_INCLUDE_DIR - the directory containing the Xerces headers
|
# Result variables
|
||||||
# XercesC_LIBRARY - the Xerces library
|
# ^^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# This module will set the following variables in your project:
|
||||||
|
#
|
||||||
|
# ``XercesC_FOUND``
|
||||||
|
# true if the Xerces headers and libraries were found
|
||||||
|
# ``XercesC_VERSION``
|
||||||
|
# Xerces release version
|
||||||
|
# ``XercesC_INCLUDE_DIRS``
|
||||||
|
# the directory containing the Xerces headers
|
||||||
|
# ``XercesC_LIBRARIES``
|
||||||
|
# Xerces libraries to be linked
|
||||||
|
#
|
||||||
|
# Cache variables
|
||||||
|
# ^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# The following cache variables may also be set:
|
||||||
|
#
|
||||||
|
# ``XercesC_INCLUDE_DIR``
|
||||||
|
# the directory containing the Xerces headers
|
||||||
|
# ``XercesC_LIBRARY``
|
||||||
|
# the Xerces library
|
||||||
|
|
||||||
# Written by Roger Leigh <rleigh@codelibre.net>
|
# Written by Roger Leigh <rleigh@codelibre.net>
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2014 University of Dundee
|
# Copyright 2014-2015 University of Dundee
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD License (the "License");
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file Copyright.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
@ -90,4 +109,32 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(XercesC
|
||||||
if(XercesC_FOUND)
|
if(XercesC_FOUND)
|
||||||
set(XercesC_INCLUDE_DIRS "${XercesC_INCLUDE_DIR}")
|
set(XercesC_INCLUDE_DIRS "${XercesC_INCLUDE_DIR}")
|
||||||
set(XercesC_LIBRARIES "${XercesC_LIBRARY}")
|
set(XercesC_LIBRARIES "${XercesC_LIBRARY}")
|
||||||
|
|
||||||
|
# For header-only libraries
|
||||||
|
if(NOT TARGET XercesC::XercesC)
|
||||||
|
add_library(XercesC::XercesC UNKNOWN IMPORTED)
|
||||||
|
if(XercesC_INCLUDE_DIRS)
|
||||||
|
set_target_properties(XercesC::XercesC PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${XercesC_INCLUDE_DIRS}")
|
||||||
|
endif()
|
||||||
|
if(EXISTS "${XercesC_LIBRARY}")
|
||||||
|
set_target_properties(XercesC::XercesC PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||||
|
IMPORTED_LOCATION "${XercesC_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
if(EXISTS "${XercesC_LIBRARY_DEBUG}")
|
||||||
|
set_property(TARGET XercesC::XercesC APPEND PROPERTY
|
||||||
|
IMPORTED_CONFIGURATIONS DEBUG)
|
||||||
|
set_target_properties(XercesC::XercesC PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
|
||||||
|
IMPORTED_LOCATION_DEBUG "${XercesC_LIBRARY_DEBUG}")
|
||||||
|
endif()
|
||||||
|
if(EXISTS "${XercesC_LIBRARY_RELEASE}")
|
||||||
|
set_property(TARGET XercesC::XercesC APPEND PROPERTY
|
||||||
|
IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(XercesC::XercesC PROPERTIES
|
||||||
|
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
||||||
|
IMPORTED_LOCATION_RELEASE "${XercesC_LIBRARY_RELEASE}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -1367,6 +1367,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
||||||
add_subdirectory(FindOpenSSL)
|
add_subdirectory(FindOpenSSL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMake_TEST_FindXercesC)
|
||||||
|
add_subdirectory(FindXercesC)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(FindThreads)
|
add_subdirectory(FindThreads)
|
||||||
|
|
||||||
# Matlab module
|
# Matlab module
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
add_test(NAME FindXercesC.Test COMMAND
|
||||||
|
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||||
|
--build-and-test
|
||||||
|
"${CMake_SOURCE_DIR}/Tests/FindXercesC/Test"
|
||||||
|
"${CMake_BINARY_DIR}/Tests/FindXercesC/Test"
|
||||||
|
${build_generator_args}
|
||||||
|
--build-project TestFindXercesC
|
||||||
|
--build-options ${build_options}
|
||||||
|
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||||
|
)
|
|
@ -0,0 +1,17 @@
|
||||||
|
cmake_minimum_required(VERSION 3.1)
|
||||||
|
project(TestFindXercesC CXX)
|
||||||
|
include(CTest)
|
||||||
|
|
||||||
|
# CMake does not actually provide FindXercesC publicly.
|
||||||
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../Source/Modules)
|
||||||
|
|
||||||
|
find_package(XercesC REQUIRED)
|
||||||
|
|
||||||
|
add_executable(test_xercesc_tgt main.cxx)
|
||||||
|
target_link_libraries(test_xercesc_tgt XercesC::XercesC)
|
||||||
|
add_test(NAME test_xercesc_tgt COMMAND test_xercesc_tgt)
|
||||||
|
|
||||||
|
add_executable(test_xercesc_var main.cxx)
|
||||||
|
target_include_directories(test_xercesc_var PRIVATE ${XercesC_INCLUDE_DIRS})
|
||||||
|
target_link_libraries(test_xercesc_var PRIVATE ${XercesC_LIBRARIES})
|
||||||
|
add_test(NAME test_xercesc_var COMMAND test_xercesc_var)
|
|
@ -0,0 +1,7 @@
|
||||||
|
#include <xercesc/util/PlatformUtils.hpp>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
xercesc::XMLPlatformUtils::Initialize();
|
||||||
|
xercesc::XMLPlatformUtils::Terminate();
|
||||||
|
}
|
Loading…
Reference in New Issue