summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Rickert <rickert@fortiss.org>2020-12-07 16:53:49 +0100
committerMarkus Rickert <rickert@fortiss.org>2020-12-07 16:53:49 +0100
commitd1d96281c72e920960862446a399d2e34fbafea6 (patch)
tree21df1bc2375dbb712196aaf648137bdf4ba69321
parentf2083247704b0c809eada0cd588203b16fd272ea (diff)
downloadlibxslt-d1d96281c72e920960862446a399d2e34fbafea6.tar.gz
Generate lbxslt-config.cmake with autotools
-rw-r--r--Makefile.am3
-rw-r--r--configure.ac4
-rw-r--r--libxslt-config.cmake.in121
3 files changed, 128 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 2c417d0b..4ebfdd50 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -73,6 +73,9 @@ rpm: cleantar
pkgconfigdir=$(libdir)/pkgconfig
pkgconfig_DATA = libxslt.pc libexslt.pc
+cmakedir = $(libdir)/cmake/libxslt
+cmake_DATA = FindGcrypt.cmake libxslt-config.cmake
+
m4datadir = $(datadir)/aclocal
m4data_DATA = libxslt.m4
diff --git a/configure.ac b/configure.ac
index cf17242b..172423ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -146,15 +146,18 @@ dnl Look for pthread.h, needed for testThreads
case $host in
*-mingw*) ;;
*)
+WITH_THREADS=0
THREAD_LIBS=""
AC_CHECK_HEADER(pthread.h,
AC_CHECK_LIB(pthread, pthread_join,[
AC_DEFINE([HAVE_LIBPTHREAD], [], [Define if pthread library is there (-lpthread)])
AC_DEFINE([HAVE_PTHREAD_H], [], [Define if <pthread.h> is there])
+ WITH_THREADS="1"
THREAD_LIBS="-lpthread"]))
;;
esac
+AC_SUBST(WITH_THREADS)
AC_SUBST(THREAD_LIBS)
dnl
@@ -706,6 +709,7 @@ AC_CONFIG_FILES([
Makefile
libxslt.pc
libexslt.pc
+libxslt-config.cmake
libxslt/Makefile
libxslt/xsltconfig.h
libxslt/xsltwin32config.h
diff --git a/libxslt-config.cmake.in b/libxslt-config.cmake.in
new file mode 100644
index 00000000..89442473
--- /dev/null
+++ b/libxslt-config.cmake.in
@@ -0,0 +1,121 @@
+# libxslt-config.cmake
+# --------------------
+#
+# libxlst CMake module.
+# This module sets the following variables:
+#
+# ::
+#
+# LIBXSLT_INCLUDE_DIR - directory where libxslt headers are located
+# LIBXSLT_INCLUDE_DIRS - list of the include directories needed to use libxslt
+# LIBXSLT_LIBRARY - path to the libxslt library
+# LIBXSLT_LIBRARIES - xslt libraries to link against
+# LIBXSLT_DEFINITIONS - the compiler switches required for using libxslt
+# LIBXSLT_VERSION_MAJOR - the major version of libxslt
+# LIBXSLT_VERSION_MINOR - the minor version of libxslt
+# LIBXSLT_VERSION_PATCH - the patch version of libxslt
+# LIBXSLT_VERSION - libxslt version number as a string (ex: "1.1.34")
+# LIBXSLT_XSLTPROC_EXECUTABLE - path to xsltproc
+#
+# LIBXSLT_EXSLT_INCLUDE_DIR - directory where libexslt headers are located
+# LIBXSLT_EXSLT_INCLUDE_DIRS - list of the include directories needed to use libexslt
+# LIBXSLT_EXSLT_LIBRARY - path to the libexslt library
+# LIBXSLT_EXSLT_LIBRARIES - exslt libraries to link against
+# LIBXSLT_EXSLT_DEFINITIONS - the compiler switches required for using libexslt
+# LIBEXSLT_VERSION_MAJOR - the major version of libexslt
+# LIBEXSLT_VERSION_MINOR - the minor version of libexslt
+# LIBEXSLT_VERSION_PATCH - the patch version of libexslt
+# LIBEXSLT_VERSION - libexslt version number as a string (ex: "0.8.20")
+#
+# The following targets are defined:
+#
+# LibXslt::LibXslt - the libxslt library
+# LibXslt::LibExslt - the libexslt library
+# LibXslt::xsltproc - the xsltproc command-line executable
+
+set(LIBXSLT_VERSION "@VERSION@")
+set(LIBXSLT_VERSION_MAJOR "@LIBXSLT_MAJOR_VERSION@")
+set(LIBXSLT_VERSION_MINOR "@LIBXSLT_MINOR_VERSION@")
+set(LIBXSLT_VERSION_PATCH "@LIBXSLT_MICRO_VERSION@")
+
+set(LIBEXSLT_VERSION "@LIBEXSLT_VERSION@")
+set(LIBEXSLT_VERSION_MAJOR "@LIBEXSLT_MAJOR_VERSION@")
+set(LIBEXSLT_VERSION_MINOR "@LIBEXSLT_MINOR_VERSION@")
+set(LIBEXSLT_VERSION_PATCH "@LIBEXSLT_MICRO_VERSION@")
+
+get_filename_component(PACKAGE_PREFIX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../../ ABSOLUTE)
+
+set(LIBXSLT_DEFINITIONS "")
+set(LIBXSLT_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include")
+set(LIBXSLT_LIBRARY_DIR "${PACKAGE_PREFIX_DIR}/lib")
+set(LIBXSLT_EXSLT_DEFINITIONS "")
+set(LIBXSLT_EXSLT_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include")
+set(LIBXSLT_EXSLT_LIBRARY_DIR "${PACKAGE_PREFIX_DIR}/lib")
+
+find_library(LIBXSLT_LIBRARY NAMES xslt HINTS ${LIBXSLT_LIBRARY_DIR} NO_DEFAULT_PATH)
+find_library(LIBXSLT_EXSLT_LIBRARY NAMES exslt HINTS ${LIBXSLT_EXSLT_LIBRARY_DIR} NO_DEFAULT_PATH)
+find_program(LIBXSLT_XSLTPROC_EXECUTABLE NAMES xsltproc HINTS ${PACKAGE_PREFIX_DIR}/bin NO_DEFAULT_PATH)
+
+set(LIBXSLT_INCLUDE_DIRS ${LIBXSLT_INCLUDE_DIR})
+set(LIBXSLT_LIBRARIES ${LIBXSLT_LIBRARY})
+set(LIBXSLT_EXSLT_INCLUDE_DIRS ${LIBXSLT_EXSLT_INCLUDE_DIR})
+set(LIBXSLT_EXSLT_LIBRARIES ${LIBXSLT_EXSLT_LIBRARY})
+unset(LIBXSLT_INTERFACE_LINK_LIBRARIES)
+unset(LIBXSLT_EXSLT_INTERFACE_LINK_LIBRARIES)
+
+include(CMakeFindDependencyMacro)
+
+find_dependency(LibXml2 CONFIG)
+list(APPEND LIBXSLT_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIRS})
+list(APPEND LIBXSLT_LIBRARIES ${LIBXML2_LIBRARIES})
+list(APPEND LIBXSLT_INTERFACE_LINK_LIBRARIES "LibXml2::LibXml2")
+list(APPEND LIBXSLT_EXSLT_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIRS})
+list(APPEND LIBXSLT_EXSLT_LIBRARIES ${LIBXML2_LIBRARIES})
+list(APPEND LIBXSLT_EXSLT_INTERFACE_LINK_LIBRARIES "LibXml2::LibXml2")
+
+if(@WITH_THREADS@)
+ find_dependency(Threads)
+ list(APPEND LIBXSLT_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+ list(APPEND LIBXSLT_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:Threads::Threads>")
+ list(APPEND LIBXSLT_EXSLT_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
+ list(APPEND LIBXSLT_EXSLT_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:Threads::Threads>")
+endif()
+
+if(@WITH_CRYPTO@)
+ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+ find_dependency(Gcrypt)
+ list(APPEND LIBXSLT_LIBRARIES ${GCRYPT_LIBRARIES})
+ list(APPEND LIBXSLT_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:Gcrypt::Gcrypt>")
+ list(APPEND LIBXSLT_EXSLT_LIBRARIES ${GCRYPT_LIBRARIES})
+ list(APPEND LIBXSLT_EXSLT_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:Gcrypt::Gcrypt>")
+endif()
+
+if(UNIX)
+ list(APPEND LIBXSLT_LIBRARIES m)
+ list(APPEND LIBXSLT_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:m>")
+ list(APPEND LIBXSLT_EXSLT_LIBRARIES m)
+ list(APPEND LIBXSLT_EXSLT_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:m>")
+endif()
+
+mark_as_advanced(LIBXSLT_LIBRARY LIBXSLT_EXSLT_LIBRARY LIBXSLT_XSLTPROC_EXECUTABLE)
+
+if(NOT TARGET LibXslt::LibXslt)
+ add_library(LibXslt::LibXslt UNKNOWN IMPORTED)
+ set_target_properties(LibXslt::LibXslt PROPERTIES IMPORTED_LOCATION "${LIBXSLT_LIBRARY}")
+ set_target_properties(LibXslt::LibXslt PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXSLT_DEFINITIONS}")
+ set_target_properties(LibXslt::LibXslt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXSLT_INCLUDE_DIRS}")
+ set_target_properties(LibXslt::LibXslt PROPERTIES INTERFACE_LINK_LIBRARIES "${LIBXSLT_INTERFACE_LINK_LIBRARIES}")
+endif()
+
+if(NOT TARGET LibXslt::LibExslt)
+ add_library(LibXslt::LibExslt UNKNOWN IMPORTED)
+ set_target_properties(LibXslt::LibExslt PROPERTIES IMPORTED_LOCATION "${LIBXSLT_EXSLT_LIBRARY}")
+ set_target_properties(LibXslt::LibExslt PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXSLT_EXSLT_DEFINITIONS}")
+ set_target_properties(LibXslt::LibExslt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXSLT_EXSLT_INCLUDE_DIRS}")
+ set_target_properties(LibXslt::LibExslt PROPERTIES INTERFACE_LINK_LIBRARIES "${LIBXSLT_EXSLT_INTERFACE_LINK_LIBRARIES}")
+endif()
+
+if(NOT TARGET LibXslt::xsltproc)
+ add_executable(LibXslt::xsltproc IMPORTED)
+ set_target_properties(LibXslt::xsltproc PROPERTIES IMPORTED_LOCATION "${LIBXSLT_XSLTPROC_EXECUTABLE}")
+endif()