[libxslt] Generate lbxslt-config.cmake with autotools



commit d1d96281c72e920960862446a399d2e34fbafea6
Author: Markus Rickert <rickert fortiss org>
Date:   Mon Dec 7 16:53:49 2020 +0100

    Generate lbxslt-config.cmake with autotools

 Makefile.am             |   3 ++
 configure.ac            |   4 ++
 libxslt-config.cmake.in | 121 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 128 insertions(+)
---
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()


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]