From 40fb00512a95dd5b07f8e767a5e2b713c7299d5f Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Tue, 10 Jan 2012 14:00:52 +0100 Subject: FindBZip2: add support for version checking --- Modules/FindBZip2.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Modules/FindBZip2.cmake b/Modules/FindBZip2.cmake index 679c129..de1c9ec 100644 --- a/Modules/FindBZip2.cmake +++ b/Modules/FindBZip2.cmake @@ -5,6 +5,7 @@ # BZIP2_INCLUDE_DIR - the BZip2 include directory # BZIP2_LIBRARIES - Link these to use BZip2 # BZIP2_NEED_PREFIX - this is set if the functions are prefixed with BZ2_ +# BZIP2_VERSION_STRING - the version of BZip2 found (since CMake 2.8.8) #============================================================================= # Copyright 2006-2009 Kitware, Inc. @@ -24,10 +25,17 @@ FIND_PATH(BZIP2_INCLUDE_DIR bzlib.h ) FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2 ) +IF (BZIP2_INCLUDE_DIR AND EXISTS "${BZIP2_INCLUDE_DIR}/bzlib.h") + FILE(STRINGS "${BZIP2_INCLUDE_DIR}/bzlib.h" BZLIB_H REGEX "bzip2/libbzip2 version [0-9]+\\.[^ ]+ of [0-9]+ ") + STRING(REGEX REPLACE ".* bzip2/libbzip2 version ([0-9]+\\.[^ ]+) of [0-9]+ .*" "\\1" BZIP2_VERSION_STRING "${BZLIB_H}") +ENDIF (BZIP2_INCLUDE_DIR AND EXISTS "${BZIP2_INCLUDE_DIR}/bzlib.h") + # handle the QUIETLY and REQUIRED arguments and set BZip2_FOUND to TRUE if # all listed variables are TRUE INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(BZip2 DEFAULT_MSG BZIP2_LIBRARIES BZIP2_INCLUDE_DIR) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(BZip2 + REQUIRED_VARS BZIP2_LIBRARIES BZIP2_INCLUDE_DIR + VERSION_VAR BZIP2_VERSION_STRING) IF (BZIP2_FOUND) INCLUDE(CheckLibraryExists) -- cgit v0.12 From 5b6ca9fa3feb4a3c611d496b63cb72149db25cfc Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Tue, 10 Jan 2012 14:12:09 +0100 Subject: FindBZip2: add support for debug libraries (#12867) The debug library has a different name on Windows. Make sure both versions work. Thanks to Patrick Spendrin for testing this. --- Modules/FindBZip2.cmake | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Modules/FindBZip2.cmake b/Modules/FindBZip2.cmake index de1c9ec..7130192 100644 --- a/Modules/FindBZip2.cmake +++ b/Modules/FindBZip2.cmake @@ -8,8 +8,9 @@ # BZIP2_VERSION_STRING - the version of BZip2 found (since CMake 2.8.8) #============================================================================= -# Copyright 2006-2009 Kitware, Inc. +# Copyright 2006-2012 Kitware, Inc. # Copyright 2006 Alexander Neundorf +# Copyright 2012 Rolf Eike Beer # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. @@ -23,7 +24,13 @@ FIND_PATH(BZIP2_INCLUDE_DIR bzlib.h ) -FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2 ) +IF (NOT BZIP2_LIBRARIES) + FIND_LIBRARY(BZIP2_LIBRARY_RELEASE NAMES bz2 bzip2 ) + FIND_LIBRARY(BZIP2_LIBRARY_DEBUG NAMES bzip2d ) + + INCLUDE(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) + SELECT_LIBRARY_CONFIGURATIONS(BZIP2) +ENDIF (NOT BZIP2_LIBRARIES) IF (BZIP2_INCLUDE_DIR AND EXISTS "${BZIP2_INCLUDE_DIR}/bzlib.h") FILE(STRINGS "${BZIP2_INCLUDE_DIR}/bzlib.h" BZLIB_H REGEX "bzip2/libbzip2 version [0-9]+\\.[^ ]+ of [0-9]+ ") @@ -39,8 +46,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(BZip2 IF (BZIP2_FOUND) INCLUDE(CheckLibraryExists) - CHECK_LIBRARY_EXISTS(${BZIP2_LIBRARIES} BZ2_bzCompressInit "" BZIP2_NEED_PREFIX) + CHECK_LIBRARY_EXISTS("${BZIP2_LIBRARIES}" BZ2_bzCompressInit "" BZIP2_NEED_PREFIX) ENDIF (BZIP2_FOUND) -MARK_AS_ADVANCED(BZIP2_INCLUDE_DIR BZIP2_LIBRARIES) - +MARK_AS_ADVANCED(BZIP2_INCLUDE_DIR) -- cgit v0.12