diff options
author | Markus Rickert <rickert@fortiss.org> | 2020-12-07 16:53:49 +0100 |
---|---|---|
committer | Markus Rickert <rickert@fortiss.org> | 2020-12-07 16:53:49 +0100 |
commit | d1d96281c72e920960862446a399d2e34fbafea6 (patch) | |
tree | 21df1bc2375dbb712196aaf648137bdf4ba69321 | |
parent | f2083247704b0c809eada0cd588203b16fd272ea (diff) | |
download | libxslt-d1d96281c72e920960862446a399d2e34fbafea6.tar.gz |
Generate lbxslt-config.cmake with autotools
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | libxslt-config.cmake.in | 121 |
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() |