summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindXSLT.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindXSLT.cmake')
-rw-r--r--cmake/modules/FindXSLT.cmake50
1 files changed, 50 insertions, 0 deletions
diff --git a/cmake/modules/FindXSLT.cmake b/cmake/modules/FindXSLT.cmake
new file mode 100644
index 0000000..3637214
--- /dev/null
+++ b/cmake/modules/FindXSLT.cmake
@@ -0,0 +1,50 @@
+#.rst:
+# FindXSLT
+# --------
+# Finds the XSLT library
+#
+# This will define the following variables::
+#
+# XSLT_FOUND - system has XSLT
+# XSLT_INCLUDE_DIRS - the XSLT include directory
+# XSLT_LIBRARIES - the XSLT libraries
+# XSLT_DEFINITIONS - the XSLT definitions
+#
+# and the following imported targets::
+#
+# XSLT::XSLT - The XSLT library
+
+find_package(LibXml2 REQUIRED)
+
+if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_XSLT libxslt QUIET)
+endif()
+
+find_path(XSLT_INCLUDE_DIR NAMES libxslt/xslt.h
+ PATHS ${PC_XSLT_INCLUDEDIR})
+find_library(XSLT_LIBRARY NAMES xslt libxslt
+ PATHS ${PC_XSLT_LIBDIR})
+
+set(XSLT_VERSION ${PC_XSLT_VERSION})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(XSLT
+ REQUIRED_VARS XSLT_LIBRARY XSLT_INCLUDE_DIR
+ VERSION_VAR XSLT_VERSION)
+
+if(XSLT_FOUND)
+ set(XSLT_LIBRARIES ${XSLT_LIBRARY} ${LIBXML2_LIBRARIES})
+ set(XSLT_INCLUDE_DIRS ${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
+ set(XSLT_DEFINITIONS -DHAVE_LIBXSLT=1)
+
+ if(NOT TARGET XSLT::XSLT)
+ add_library(XSLT::XSLT UNKNOWN IMPORTED)
+ set_target_properties(XSLT::XSLT PROPERTIES
+ IMPORTED_LOCATION "${XSLT_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}"
+ INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXSLT=1
+ INTERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}")
+ endif()
+endif()
+
+mark_as_advanced(XSLT_INCLUDE_DIR XSLT_LIBRARY)