summaryrefslogtreecommitdiffstats
path: root/project/cmake/modules/FindTinyXML.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'project/cmake/modules/FindTinyXML.cmake')
-rw-r--r--project/cmake/modules/FindTinyXML.cmake68
1 files changed, 68 insertions, 0 deletions
diff --git a/project/cmake/modules/FindTinyXML.cmake b/project/cmake/modules/FindTinyXML.cmake
new file mode 100644
index 0000000..0168f40
--- /dev/null
+++ b/project/cmake/modules/FindTinyXML.cmake
@@ -0,0 +1,68 @@
1#.rst:
2# FindTinyXML
3# -----------
4# Finds the TinyXML library
5#
6# This will will define the following variables::
7#
8# TINYXML_FOUND - system has TinyXML
9# TINYXML_INCLUDE_DIRS - the TinyXML include directory
10# TINYXML_LIBRARIES - the TinyXML libraries
11# TINYXML_DEFINITIONS - the TinyXML definitions
12#
13# and the following imported targets::
14#
15# TinyXML::TinyXML - The TinyXML library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_TINYXML tinyxml QUIET)
19endif()
20
21find_path(TINYXML_INCLUDE_DIR tinyxml.h
22 PATH_SUFFIXES tinyxml
23 PATHS ${PC_TINYXML_INCLUDEDIR})
24find_library(TINYXML_LIBRARY_RELEASE NAMES tinyxml tinyxmlSTL
25 PATH_SUFFIXES tinyxml ${CONFIGURATION_LIBDIR_RELEASE}
26 PATHS ${PC_TINYXML_LIBDIR})
27find_library(TINYXML_LIBRARY_DEBUG NAMES tinyxml tinyxmlSTL
28 PATH_SUFFIXES tinyxml ${CONFIGURATION_LIBDIR_DEBUG}
29 PATHS ${PC_TINYXML_LIBDIR})
30set(TINYXML_VERSION ${PC_TINYXML_VERSION})
31
32include(SelectLibraryConfigurations)
33select_library_configurations(TINYXML)
34
35include(FindPackageHandleStandardArgs)
36find_package_handle_standard_args(TINYXML
37 REQUIRED_VARS TINYXML_LIBRARY TINYXML_INCLUDE_DIR
38 VERSION_VAR TINYXML_VERSION)
39
40if(TINYXML_FOUND)
41 set(TINYXML_LIBRARIES ${TINYXML_LIBRARY})
42 set(TINYXML_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR})
43 if(WIN32)
44 set(TINYXML_DEFINITIONS -DTIXML_USE_STL=1)
45 endif()
46
47 if(NOT TARGET TinyXML::TinyXML)
48 add_library(TinyXML::TinyXML UNKNOWN IMPORTED)
49 if(TINYXML_LIBRARY_RELEASE)
50 set_target_properties(TinyXML::TinyXML PROPERTIES
51 IMPORTED_CONFIGURATIONS RELEASE
52 IMPORTED_LOCATION "${TINYXML_LIBRARY_RELEASE}")
53 endif()
54 if(TINYXML_LIBRARY_DEBUG)
55 set_target_properties(TinyXML::TinyXML PROPERTIES
56 IMPORTED_CONFIGURATIONS DEBUG
57 IMPORTED_LOCATION "${TINYXML_LIBRARY_DEBUG}")
58 endif()
59 set_target_properties(TinyXML::TinyXML PROPERTIES
60 INTERFACE_INCLUDE_DIRECTORIES "${TINYXML_INCLUDE_DIR}")
61 if(WIN32)
62 set_target_properties(TinyXML::TinyXML PROPERTIES
63 INTERFACE_COMPILE_DEFINITIONS TIXML_USE_STL=1)
64 endif()
65 endif()
66endif()
67
68mark_as_advanced(TINYXML_INCLUDE_DIR TINYXML_LIBRARY)