From 8b46841b6d5570423ed4e649eff96e794b85bd57 Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Tue, 19 Sep 2006 16:11:53 -0400 Subject: ENH: add cmake modules for some common libraries: aspell, hspell, bzip2, jasper (jpeg2000), libxml2 and libxslt and openssl and the accompanying license (BSD) Alex --- Modules/COPYING-CMAKE-SCRIPTS | 22 ++++++++++++++ Modules/FindASPELL.cmake | 40 +++++++++++++++++++++++++ Modules/FindBZip2.cmake | 43 ++++++++++++++++++++++++++ Modules/FindHSPELL.cmake | 42 ++++++++++++++++++++++++++ Modules/FindJasper.cmake | 43 ++++++++++++++++++++++++++ Modules/FindLibXml2.cmake | 59 ++++++++++++++++++++++++++++++++++++ Modules/FindLibXslt.cmake | 54 +++++++++++++++++++++++++++++++++ Modules/FindOpenSSL.cmake | 70 +++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 373 insertions(+) create mode 100644 Modules/COPYING-CMAKE-SCRIPTS create mode 100644 Modules/FindASPELL.cmake create mode 100644 Modules/FindBZip2.cmake create mode 100644 Modules/FindHSPELL.cmake create mode 100644 Modules/FindJasper.cmake create mode 100644 Modules/FindLibXml2.cmake create mode 100644 Modules/FindLibXslt.cmake create mode 100644 Modules/FindOpenSSL.cmake diff --git a/Modules/COPYING-CMAKE-SCRIPTS b/Modules/COPYING-CMAKE-SCRIPTS new file mode 100644 index 0000000..4b41776 --- /dev/null +++ b/Modules/COPYING-CMAKE-SCRIPTS @@ -0,0 +1,22 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Modules/FindASPELL.cmake b/Modules/FindASPELL.cmake new file mode 100644 index 0000000..978407d --- /dev/null +++ b/Modules/FindASPELL.cmake @@ -0,0 +1,40 @@ +# - Try to find ASPELL +# Once done this will define +# +# ASPELL_FOUND - system has ASPELL +# ASPELL_INCLUDE_DIR - the ASPELL include directory +# ASPELL_LIBRARIES - The libraries needed to use ASPELL +# ASPELL_DEFINITIONS - Compiler switches required for using ASPELL + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (ASPELL_INCLUDE_DIR AND ASPELL_LIBRARIES) + # Already in cache, be silent + SET(ASPELL_FIND_QUIETLY TRUE) +ENDIF (ASPELL_INCLUDE_DIR AND ASPELL_LIBRARIES) + +FIND_PATH(ASPELL_INCLUDE_DIR aspell.h ) + +FIND_LIBRARY(ASPELL_LIBRARIES NAMES aspell aspell-15) + +IF (ASPELL_INCLUDE_DIR AND ASPELL_LIBRARIES) + SET(ASPELL_FOUND TRUE) +ELSE (ASPELL_INCLUDE_DIR AND ASPELL_LIBRARIES) + SET(ASPELL_FOUND FALSE) +ENDIF (ASPELL_INCLUDE_DIR AND ASPELL_LIBRARIES) + +IF (ASPELL_FOUND) + IF (NOT ASPELL_FIND_QUIETLY) + MESSAGE(STATUS "Found ASPELL: ${ASPELL_LIBRARIES}") + ENDIF (NOT ASPELL_FIND_QUIETLY) +ELSE (ASPELL_FOUND) + IF (ASPELL_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find ASPELL") + ENDIF (ASPELL_FIND_REQUIRED) +ENDIF (ASPELL_FOUND) + +MARK_AS_ADVANCED(ASPELL_INCLUDE_DIR ASPELL_LIBRARIES) diff --git a/Modules/FindBZip2.cmake b/Modules/FindBZip2.cmake new file mode 100644 index 0000000..c846424 --- /dev/null +++ b/Modules/FindBZip2.cmake @@ -0,0 +1,43 @@ +# - Try to find BZip2 +# Once done this will define +# +# BZIP2_FOUND - system has BZip2 +# BZIP2_INCLUDE_DIR - the BZip2 include directory +# BZIP2_LIBRARIES - Link these to use BZip2 +# BZIP2_DEFINITIONS - Compiler switches required for using BZip2 +# BZIP2_NEED_PREFIX - this is set if the functions are prefixed with BZ2_ + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) + SET(BZip2_FIND_QUIETLY TRUE) +ENDIF (BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) + +FIND_PATH(BZIP2_INCLUDE_DIR bzlib.h ) + +FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2 ) + +IF (BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) + SET(BZIP2_FOUND TRUE) + INCLUDE(CheckLibraryExists) + CHECK_LIBRARY_EXISTS(${BZIP2_LIBRARIES} BZ2_bzCompressInit "" BZIP2_NEED_PREFIX) +ELSE (BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) + SET(BZIP2_FOUND FALSE) +ENDIF (BZIP2_INCLUDE_DIR AND BZIP2_LIBRARIES) + +IF (BZIP2_FOUND) + IF (NOT BZip2_FIND_QUIETLY) + MESSAGE(STATUS "Found BZip2: ${BZIP2_LIBRARIES}") + ENDIF (NOT BZip2_FIND_QUIETLY) +ELSE (BZIP2_FOUND) + IF (BZip2_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find BZip2") + ENDIF (BZip2_FIND_REQUIRED) +ENDIF (BZIP2_FOUND) + +MARK_AS_ADVANCED(BZIP2_INCLUDE_DIR BZIP2_LIBRARIES) + diff --git a/Modules/FindHSPELL.cmake b/Modules/FindHSPELL.cmake new file mode 100644 index 0000000..a2b93a7 --- /dev/null +++ b/Modules/FindHSPELL.cmake @@ -0,0 +1,42 @@ +# - Try to find HSPELL +# Once done this will define +# +# HSPELL_FOUND - system has HSPELL +# HSPELL_INCLUDE_DIR - the HSPELL include directory +# HSPELL_LIBRARIES - The libraries needed to use HSPELL +# HSPELL_DEFINITIONS - Compiler switches required for using HSPELL + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (HSPELL_INCLUDE_DIR AND HSPELL_LIBRARIES) + # Already in cache, be silent + SET(HSPELL_FIND_QUIETLY TRUE) +ENDIF (HSPELL_INCLUDE_DIR AND HSPELL_LIBRARIES) + + +FIND_PATH(HSPELL_INCLUDE_DIR hspell.h ) + +FIND_LIBRARY(HSPELL_LIBRARIES NAMES hspell ) + +IF (HSPELL_INCLUDE_DIR AND HSPELL_LIBRARIES) + SET(HSPELL_FOUND TRUE) +ELSE (HSPELL_INCLUDE_DIR AND HSPELL_LIBRARIES) + SET(HSPELL_FOUND FALSE) +ENDIF (HSPELL_INCLUDE_DIR AND HSPELL_LIBRARIES) + +IF (HSPELL_FOUND) + IF (NOT HSPELL_FIND_QUIETLY) + MESSAGE(STATUS "Found HSPELL: ${HSPELL_LIBRARIES}") + ENDIF (NOT HSPELL_FIND_QUIETLY) +ELSE (HSPELL_FOUND) + IF (HSPELL_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find HSPELL") + ENDIF (HSPELL_FIND_REQUIRED) +ENDIF (HSPELL_FOUND) + +MARK_AS_ADVANCED(HSPELL_INCLUDE_DIR HSPELL_LIBRARIES) + diff --git a/Modules/FindJasper.cmake b/Modules/FindJasper.cmake new file mode 100644 index 0000000..ac284c3 --- /dev/null +++ b/Modules/FindJasper.cmake @@ -0,0 +1,43 @@ +# - Try to find the Jasper JPEG2000 library +# Once done this will define +# +# JASPER_FOUND - system has Jasper +# JASPER_INCLUDE_DIR - the Jasper include directory +# JASPER_LIBRARIES - The libraries needed to use Jasper + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +FIND_PACKAGE(JPEG) + +IF (JASPER_INCLUDE_DIR AND JASPER_LIBRARIES AND JPEG_LIBRARIES) + # Already in cache, be silent + SET(Jasper_FIND_QUIETLY TRUE) +ENDIF (JASPER_INCLUDE_DIR AND JASPER_LIBRARIES AND JPEG_LIBRARIES) + +FIND_PATH(JASPER_INCLUDE_DIR jasper/jasper.h) + +FIND_LIBRARY(JASPER_LIBRARY NAMES jasper libjasper) + +IF (JASPER_INCLUDE_DIR AND JASPER_LIBRARY AND JPEG_LIBRARIES) + SET(JASPER_FOUND TRUE) + SET(JASPER_LIBRARIES ${JASPER_LIBRARY} ${JPEG_LIBRARIES} ) +ELSE (JASPER_INCLUDE_DIR AND JASPER_LIBRARY AND JPEG_LIBRARIES) + SET(JASPER_FOUND FALSE) +ENDIF (JASPER_INCLUDE_DIR AND JASPER_LIBRARY AND JPEG_LIBRARIES) + + +IF (JASPER_FOUND) + IF (NOT Jasper_FIND_QUIETLY) + MESSAGE(STATUS "Found jasper: ${JASPER_LIBRARIES}") + ENDIF (NOT Jasper_FIND_QUIETLY) +ELSE (JASPER_FOUND) + IF (Jasper_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find jasper library") + ENDIF (Jasper_FIND_REQUIRED) +ENDIF (JASPER_FOUND) + +MARK_AS_ADVANCED(JASPER_INCLUDE_DIR JASPER_LIBRARIES JASPER_LIBRARY) diff --git a/Modules/FindLibXml2.cmake b/Modules/FindLibXml2.cmake new file mode 100644 index 0000000..b45d729 --- /dev/null +++ b/Modules/FindLibXml2.cmake @@ -0,0 +1,59 @@ +# - Try to find LibXml2 +# Once done this will define +# +# LIBXML2_FOUND - system has LibXml2 +# LIBXML2_INCLUDE_DIR - the LibXml2 include directory +# LIBXML2_LIBRARIES - the libraries needed to use LibXml2 +# LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2 +# +# Copyright (c) 2006, Alexander Neundorf +# This code is available under the BSD license, see licenses/BSD for details. + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + # in cache already + SET(LibXml2_FIND_QUIETLY TRUE) +ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + +IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + INCLUDE(UsePkgConfig) + PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2Cflags) + SET(LIBXML2_DEFINITIONS ${_LibXml2Cflags}) +ENDIF (NOT WIN32) + +FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h + PATHS + ${_LibXml2IncDir} + PATH_SUFFIXES libxml2 + ) + +FIND_LIBRARY(LIBXML2_LIBRARIES NAMES xml2 libxml2 + PATHS + ${_LibXml2LinkDir} + ) + +IF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + SET(LIBXML2_FOUND TRUE) +ELSE (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + SET(LIBXML2_FOUND FALSE) +ENDIF (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + +IF (LIBXML2_FOUND) + IF (NOT LibXml2_FIND_QUIETLY) + MESSAGE(STATUS "Found LibXml2: ${LIBXML2_LIBRARIES}") + ENDIF (NOT LibXml2_FIND_QUIETLY) +ELSE (LIBXML2_FOUND) + IF (LibXml2_FIND_REQUIRED) + MESSAGE(SEND_ERROR "Could NOT find LibXml2") + ENDIF (LibXml2_FIND_REQUIRED) +ENDIF (LIBXML2_FOUND) + +MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES) + diff --git a/Modules/FindLibXslt.cmake b/Modules/FindLibXslt.cmake new file mode 100644 index 0000000..fcebd0c --- /dev/null +++ b/Modules/FindLibXslt.cmake @@ -0,0 +1,54 @@ +# - Try to find LibXslt +# Once done this will define +# +# LIBXSLT_FOUND - system has LibXslt +# LIBXSLT_INCLUDE_DIR - the LibXslt include directory +# LIBXSLT_LIBRARIES - Link these to LibXslt +# LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + # in cache already + SET(LibXslt_FIND_QUIETLY TRUE) +ENDIF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + +IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + INCLUDE(UsePkgConfig) + PKGCONFIG(libxslt _LibXsltIncDir _LibXsltLinkDir _LibXsltLinkFlags _LibXsltCflags) + SET(LIBXSLT_DEFINITIONS ${_LibXsltCflags}) +ENDIF (NOT WIN32) + +FIND_PATH(LIBXSLT_INCLUDE_DIR libxslt/xslt.h + ${_LibXsltIncDir} + ) + +FIND_LIBRARY(LIBXSLT_LIBRARIES NAMES xslt libxslt + PATHS + ${_LibXsltLinkDir} + ) + +IF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + SET(LIBXSLT_FOUND TRUE) +ELSE (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + SET(LIBXSLT_FOUND FALSE) +ENDIF (LIBXSLT_INCLUDE_DIR AND LIBXSLT_LIBRARIES) + +IF (LIBXSLT_FOUND) + IF (NOT LibXslt_FIND_QUIETLY) + MESSAGE(STATUS "Found LibXslt: ${LIBXSLT_LIBRARIES}") + ENDIF (NOT LibXslt_FIND_QUIETLY) +ELSE (LIBXSLT_FOUND) + IF (LibXslt_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find LibXslt") + ENDIF (LibXslt_FIND_REQUIRED) +ENDIF (LIBXSLT_FOUND) + +MARK_AS_ADVANCED(LIBXSLT_INCLUDE_DIR LIBXSLT_LIBRARIES) + diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake new file mode 100644 index 0000000..0172df8 --- /dev/null +++ b/Modules/FindOpenSSL.cmake @@ -0,0 +1,70 @@ +# - Try to find the OpenSSL encryption library +# Once done this will define +# +# OPENSSL_FOUND - system has the OpenSSL library +# OPENSSL_INCLUDE_DIR - the OpenSSL include directory +# OPENSSL_LIBRARIES - The libraries needed to use OpenSSL + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +IF(OPENSSL_LIBRARIES) + SET(OpenSSL_FIND_QUIETLY TRUE) +ENDIF(OPENSSL_LIBRARIES) + +IF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + SET(LIB_FOUND 1) +ENDIF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + +FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h ) + +IF(WIN32 AND MSVC) + # /MD and /MDd are the standard values - if somone wants to use + # others, the libnames have to change here too + # use also ssl and ssleay32 in debug as fallback for openssl < 0.9.8b + + FIND_LIBRARY(SSL_EAY_DEBUG NAMES ssleay32MDd ssl ssleay32) + FIND_LIBRARY(SSL_EAY_RELEASE NAMES ssleay32MD ssl ssleay32) + + IF(MSVC_IDE) + IF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + SET(OPENSSL_LIBRARIES optimized ${SSL_EAY_RELEASE} debug ${SSL_EAY_DEBUG}) + ELSE(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + MESSAGE(FATAL_ERROR "Could not find the debug and release version of openssl") + ENDIF(SSL_EAY_DEBUG AND SSL_EAY_RELEASE) + ELSE(MSVC_IDE) + STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_TOLOWER) + IF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) + SET(OPENSSL_LIBRARIES ${SSL_EAY_DEBUG}) + ELSE(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) + SET(OPENSSL_LIBRARIES ${SSL_EAY_RELEASE}) + ENDIF(CMAKE_BUILD_TYPE_TOLOWER MATCHES debug) + ENDIF(MSVC_IDE) + MARK_AS_ADVANCED(SSL_EAY_DEBUG SSL_EAY_RELEASE) +ELSE(WIN32 AND MSVC) + + FIND_LIBRARY(OPENSSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD ) + +ENDIF(WIN32 AND MSVC) + +IF(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) + SET(OPENSSL_FOUND TRUE) +ELSE(OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) + SET(OPENSSL_FOUND FALSE) +ENDIF (OPENSSL_INCLUDE_DIR AND OPENSSL_LIBRARIES) + +IF (OPENSSL_FOUND) + IF (NOT OpenSSL_FIND_QUIETLY) + MESSAGE(STATUS "Found OpenSSL: ${OPENSSL_LIBRARIES}") + ENDIF (NOT OpenSSL_FIND_QUIETLY) +ELSE (OPENSSL_FOUND) + IF (OpenSSL_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could NOT find OpenSSL") + ENDIF (OpenSSL_FIND_REQUIRED) +ENDIF (OPENSSL_FOUND) + +MARK_AS_ADVANCED(OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES) + -- cgit v0.12