| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| # file Copyright.txt or https://cmake.org/licensing for details. |
| |
| #[=======================================================================[.rst: |
| FindJPEG |
| -------- |
| |
| Find the Joint Photographic Experts Group (JPEG) library (``libjpeg``) |
| |
| Imported targets |
| ^^^^^^^^^^^^^^^^ |
| |
| .. versionadded:: 3.12 |
| |
| This module defines the following :prop_tgt:`IMPORTED` targets: |
| |
| ``JPEG::JPEG`` |
| The JPEG library, if found. |
| |
| Result variables |
| ^^^^^^^^^^^^^^^^ |
| |
| This module will set the following variables in your project: |
| |
| ``JPEG_FOUND`` |
| If false, do not try to use JPEG. |
| ``JPEG_INCLUDE_DIRS`` |
| where to find jpeglib.h, etc. |
| ``JPEG_LIBRARIES`` |
| the libraries needed to use JPEG. |
| ``JPEG_VERSION`` |
| .. versionadded:: 3.12 |
| the version of the JPEG library found |
| |
| Cache variables |
| ^^^^^^^^^^^^^^^ |
| |
| The following cache variables may also be set: |
| |
| ``JPEG_INCLUDE_DIRS`` |
| where to find jpeglib.h, etc. |
| ``JPEG_LIBRARY_RELEASE`` |
| where to find the JPEG library (optimized). |
| ``JPEG_LIBRARY_DEBUG`` |
| where to find the JPEG library (debug). |
| |
| .. versionadded:: 3.12 |
| Debug and Release variand are found separately. |
| |
| Obsolete variables |
| ^^^^^^^^^^^^^^^^^^ |
| |
| ``JPEG_INCLUDE_DIR`` |
| where to find jpeglib.h, etc. (same as JPEG_INCLUDE_DIRS) |
| ``JPEG_LIBRARY`` |
| where to find the JPEG library. |
| #]=======================================================================] |
| |
| find_path(JPEG_INCLUDE_DIR jpeglib.h) |
| |
| set(jpeg_names ${JPEG_NAMES} jpeg jpeg-static libjpeg libjpeg-static) |
| foreach(name ${jpeg_names}) |
| list(APPEND jpeg_names_debug "${name}d") |
| endforeach() |
| |
| if(NOT JPEG_LIBRARY) |
| find_library(JPEG_LIBRARY_RELEASE NAMES ${jpeg_names} NAMES_PER_DIR) |
| find_library(JPEG_LIBRARY_DEBUG NAMES ${jpeg_names_debug} NAMES_PER_DIR) |
| include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) |
| select_library_configurations(JPEG) |
| mark_as_advanced(JPEG_LIBRARY_RELEASE JPEG_LIBRARY_DEBUG) |
| endif() |
| unset(jpeg_names) |
| unset(jpeg_names_debug) |
| |
| if(JPEG_INCLUDE_DIR) |
| file(GLOB _JPEG_CONFIG_HEADERS_FEDORA "${JPEG_INCLUDE_DIR}/jconfig*.h") |
| file(GLOB _JPEG_CONFIG_HEADERS_DEBIAN "${JPEG_INCLUDE_DIR}/*/jconfig.h") |
| set(_JPEG_CONFIG_HEADERS |
| "${JPEG_INCLUDE_DIR}/jpeglib.h" |
| ${_JPEG_CONFIG_HEADERS_FEDORA} |
| ${_JPEG_CONFIG_HEADERS_DEBIAN}) |
| foreach (_JPEG_CONFIG_HEADER IN LISTS _JPEG_CONFIG_HEADERS) |
| if (NOT EXISTS "${_JPEG_CONFIG_HEADER}") |
| continue () |
| endif () |
| file(STRINGS "${_JPEG_CONFIG_HEADER}" |
| jpeg_lib_version REGEX "^#define[\t ]+JPEG_LIB_VERSION[\t ]+.*") |
| |
| if (NOT jpeg_lib_version) |
| continue () |
| endif () |
| |
| string(REGEX REPLACE "^#define[\t ]+JPEG_LIB_VERSION[\t ]+([0-9]+).*" |
| "\\1" JPEG_VERSION "${jpeg_lib_version}") |
| break () |
| endforeach () |
| unset(jpeg_lib_version) |
| unset(_JPEG_CONFIG_HEADER) |
| unset(_JPEG_CONFIG_HEADERS) |
| unset(_JPEG_CONFIG_HEADERS_FEDORA) |
| unset(_JPEG_CONFIG_HEADERS_DEBIAN) |
| endif() |
| |
| include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) |
| find_package_handle_standard_args(JPEG |
| REQUIRED_VARS JPEG_LIBRARY JPEG_INCLUDE_DIR |
| VERSION_VAR JPEG_VERSION) |
| |
| if(JPEG_FOUND) |
| set(JPEG_LIBRARIES ${JPEG_LIBRARY}) |
| set(JPEG_INCLUDE_DIRS "${JPEG_INCLUDE_DIR}") |
| |
| if(NOT TARGET JPEG::JPEG) |
| add_library(JPEG::JPEG UNKNOWN IMPORTED) |
| if(JPEG_INCLUDE_DIRS) |
| set_target_properties(JPEG::JPEG PROPERTIES |
| INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") |
| endif() |
| if(EXISTS "${JPEG_LIBRARY}") |
| set_target_properties(JPEG::JPEG PROPERTIES |
| IMPORTED_LINK_INTERFACE_LANGUAGES "C" |
| IMPORTED_LOCATION "${JPEG_LIBRARY}") |
| endif() |
| if(EXISTS "${JPEG_LIBRARY_RELEASE}") |
| set_property(TARGET JPEG::JPEG APPEND PROPERTY |
| IMPORTED_CONFIGURATIONS RELEASE) |
| set_target_properties(JPEG::JPEG PROPERTIES |
| IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" |
| IMPORTED_LOCATION_RELEASE "${JPEG_LIBRARY_RELEASE}") |
| endif() |
| if(EXISTS "${JPEG_LIBRARY_DEBUG}") |
| set_property(TARGET JPEG::JPEG APPEND PROPERTY |
| IMPORTED_CONFIGURATIONS DEBUG) |
| set_target_properties(JPEG::JPEG PROPERTIES |
| IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" |
| IMPORTED_LOCATION_DEBUG "${JPEG_LIBRARY_DEBUG}") |
| endif() |
| endif() |
| endif() |
| |
| mark_as_advanced(JPEG_LIBRARY JPEG_INCLUDE_DIR) |