Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
CMake/Modules/FindBZip2.cmake
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
122 lines (94 sloc)
3.83 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| # file Copyright.txt or https://cmake.org/licensing for details. | |
| #[=======================================================================[.rst: | |
| FindBZip2 | |
| --------- | |
| Try to find BZip2 | |
| IMPORTED Targets | |
| ^^^^^^^^^^^^^^^^ | |
| .. versionadded:: 3.12 | |
| This module defines :prop_tgt:`IMPORTED` target ``BZip2::BZip2``, if | |
| BZip2 has been found. | |
| Result Variables | |
| ^^^^^^^^^^^^^^^^ | |
| This module defines the following variables: | |
| ``BZIP2_FOUND`` | |
| system has BZip2 | |
| ``BZIP2_INCLUDE_DIRS`` | |
| .. versionadded:: 3.12 | |
| the BZip2 include directories | |
| ``BZIP2_LIBRARIES`` | |
| Link these to use BZip2 | |
| ``BZIP2_NEED_PREFIX`` | |
| this is set if the functions are prefixed with ``BZ2_`` | |
| ``BZIP2_VERSION`` | |
| .. versionadded:: 3.26 | |
| the version of BZip2 found. | |
| See also legacy variable ``BZIP2_VERSION_STRING``. | |
| Cache variables | |
| ^^^^^^^^^^^^^^^ | |
| The following cache variables may also be set: | |
| ``BZIP2_INCLUDE_DIR`` | |
| the BZip2 include directory | |
| Legacy Variables | |
| ^^^^^^^^^^^^^^^^ | |
| The following variables are provided for backward compatibility: | |
| ``BZIP2_VERSION_STRING`` | |
| the version of BZip2 found. | |
| .. versionchanged:: 3.26 | |
| Superseded by ``BZIP2_VERSION``. | |
| #]=======================================================================] | |
| set(_BZIP2_PATHS PATHS | |
| "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Bzip2;InstallPath]" | |
| ) | |
| find_path(BZIP2_INCLUDE_DIR bzlib.h ${_BZIP2_PATHS} PATH_SUFFIXES include) | |
| if (NOT BZIP2_LIBRARIES) | |
| find_library(BZIP2_LIBRARY_RELEASE NAMES bz2 bzip2 libbz2 libbzip2 NAMES_PER_DIR ${_BZIP2_PATHS} PATH_SUFFIXES lib) | |
| find_library(BZIP2_LIBRARY_DEBUG NAMES bz2d bzip2d libbz2d libbzip2d NAMES_PER_DIR ${_BZIP2_PATHS} PATH_SUFFIXES lib) | |
| include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) | |
| SELECT_LIBRARY_CONFIGURATIONS(BZIP2) | |
| else () | |
| file(TO_CMAKE_PATH "${BZIP2_LIBRARIES}" BZIP2_LIBRARIES) | |
| endif () | |
| 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}") | |
| set(BZIP2_VERSION ${BZIP2_VERSION_STRING}) | |
| endif () | |
| include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) | |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS(BZip2 | |
| REQUIRED_VARS BZIP2_LIBRARIES BZIP2_INCLUDE_DIR | |
| VERSION_VAR BZIP2_VERSION) | |
| if (BZIP2_FOUND) | |
| set(BZIP2_INCLUDE_DIRS ${BZIP2_INCLUDE_DIR}) | |
| include(${CMAKE_CURRENT_LIST_DIR}/CheckSymbolExists.cmake) | |
| include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake) | |
| cmake_push_check_state() | |
| set(CMAKE_REQUIRED_QUIET ${BZip2_FIND_QUIETLY}) | |
| set(CMAKE_REQUIRED_INCLUDES ${BZIP2_INCLUDE_DIR}) | |
| set(CMAKE_REQUIRED_LIBRARIES ${BZIP2_LIBRARIES}) | |
| CHECK_SYMBOL_EXISTS(BZ2_bzCompressInit "bzlib.h" BZIP2_NEED_PREFIX) | |
| cmake_pop_check_state() | |
| if(NOT TARGET BZip2::BZip2) | |
| add_library(BZip2::BZip2 UNKNOWN IMPORTED) | |
| set_target_properties(BZip2::BZip2 PROPERTIES | |
| INTERFACE_INCLUDE_DIRECTORIES "${BZIP2_INCLUDE_DIRS}") | |
| if(BZIP2_LIBRARY_RELEASE) | |
| set_property(TARGET BZip2::BZip2 APPEND PROPERTY | |
| IMPORTED_CONFIGURATIONS RELEASE) | |
| set_target_properties(BZip2::BZip2 PROPERTIES | |
| IMPORTED_LOCATION_RELEASE "${BZIP2_LIBRARY_RELEASE}") | |
| endif() | |
| if(BZIP2_LIBRARY_DEBUG) | |
| set_property(TARGET BZip2::BZip2 APPEND PROPERTY | |
| IMPORTED_CONFIGURATIONS DEBUG) | |
| set_target_properties(BZip2::BZip2 PROPERTIES | |
| IMPORTED_LOCATION_DEBUG "${BZIP2_LIBRARY_DEBUG}") | |
| endif() | |
| if(NOT BZIP2_LIBRARY_RELEASE AND NOT BZIP2_LIBRARY_DEBUG) | |
| set_property(TARGET BZip2::BZip2 APPEND PROPERTY | |
| IMPORTED_LOCATION "${BZIP2_LIBRARY}") | |
| endif() | |
| endif() | |
| endif () | |
| mark_as_advanced(BZIP2_INCLUDE_DIR) |