mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-30 10:20:56 -06:00
This marks all `<PACKAGENAME>_FOUND` result variables as deprecated where possible (for `<PackageName>` find modules) to make it clearer which variable to use. In CMake 3.3, the FindPackageHandleStandardArgs module was refactored to set both `<PackageName>_FOUND` and uppercase `<PACKAGENAME>_FOUND` result variables to the same values. Before that, the FOUND_VAR argument could be used to set the result variable. * FindMatlab: Uppercased MATLAB_FOUND is not mentioned as it was never documented. * Documentation for FindPythonInterp and FindPythonLibs modules synced accordingly to their deprecation (3.12 instead of 4.2). * OPENGL_FOUND: deprecation version synced with other find modules. * DevIL_FOUND was introduced in CMake 3.8. The uppercased variant not mentioned as it was previously never documented. Fixes: #27242
184 lines
5.3 KiB
CMake
184 lines
5.3 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file LICENSE.rst or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindBZip2
|
|
---------
|
|
|
|
Finds the BZip2 data compression library (libbz2):
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(BZip2 [<version>] [...])
|
|
|
|
Imported Targets
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module provides the following :ref:`Imported Targets`:
|
|
|
|
``BZip2::BZip2``
|
|
.. versionadded:: 3.12
|
|
|
|
Target encapsulating the usage requirements of BZip2 library. This target is
|
|
available only when BZip2 is found.
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following variables:
|
|
|
|
``BZip2_FOUND``
|
|
.. versionadded:: 3.3
|
|
|
|
Boolean indicating whether the (requested version of) BZip2 library was
|
|
found.
|
|
|
|
``BZip2_VERSION``
|
|
.. versionadded:: 4.2
|
|
|
|
The version of BZip2 found.
|
|
|
|
``BZIP2_INCLUDE_DIRS``
|
|
.. versionadded:: 3.12
|
|
|
|
Include directories needed to use BZip2 library.
|
|
|
|
``BZIP2_LIBRARIES``
|
|
Libraries needed for linking to use BZip2.
|
|
|
|
Cache Variables
|
|
^^^^^^^^^^^^^^^
|
|
|
|
The following cache variables may also be set:
|
|
|
|
``BZIP2_INCLUDE_DIR``
|
|
The directory containing the BZip2 headers.
|
|
|
|
``BZIP2_LIBRARY_RELEASE``
|
|
The path to the BZip2 library for release configurations.
|
|
|
|
``BZIP2_LIBRARY_DEBUG``
|
|
The path to the BZip2 library for debug configurations.
|
|
|
|
``BZIP2_NEED_PREFIX``
|
|
Boolean indicating whether BZip2 functions are prefixed with ``BZ2_``
|
|
(e.g., ``BZ2_bzCompressInit()``). Versions of BZip2 prior to 1.0.0 used
|
|
unprefixed function names (e.g., ``bzCompressInit()``).
|
|
|
|
Deprecated Variables
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The following variables are provided for backward compatibility:
|
|
|
|
``BZIP2_FOUND``
|
|
.. deprecated:: 4.2
|
|
Use ``BZip2_FOUND``, which has the same value.
|
|
|
|
Boolean indicating whether the (requested version of) BZip2 library was
|
|
found.
|
|
|
|
``BZIP2_VERSION_STRING``
|
|
.. deprecated:: 3.26
|
|
Superseded by the ``BZIP2_VERSION`` (and ``BZip2_VERSION``).
|
|
|
|
The version of BZip2 found.
|
|
|
|
``BZIP2_VERSION``
|
|
.. versionadded:: 3.26
|
|
|
|
.. deprecated:: 4.2
|
|
Superseded by the ``BZip2_VERSION``.
|
|
|
|
The version of BZip2 found.
|
|
|
|
Examples
|
|
^^^^^^^^
|
|
|
|
Finding BZip2 library and linking it to a project target:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(BZip2)
|
|
target_link_libraries(project_target PRIVATE BZip2::BZip2)
|
|
#]=======================================================================]
|
|
|
|
cmake_policy(PUSH)
|
|
cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
|
|
|
|
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})
|
|
set(BZip2_VERSION ${BZIP2_VERSION_STRING})
|
|
endif ()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
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})
|
|
|
|
# Versions before 1.0.2 required <stdio.h> for the FILE definition.
|
|
set(BZip2_headers "bzlib.h")
|
|
if(BZip2_VERSION VERSION_LESS "1.0.2")
|
|
list(PREPEND BZip2_headers "stdio.h")
|
|
endif()
|
|
check_symbol_exists(BZ2_bzCompressInit "${BZip2_headers}" BZIP2_NEED_PREFIX)
|
|
unset(BZip2_headers)
|
|
|
|
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)
|
|
|
|
cmake_policy(POP)
|