1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindJasper
----------
Finds the JasPer Image Coding Toolkit for handling image data in a variety of
formats, such as the JPEG-2000.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following :ref:`Imported Targets`:
``Jasper::Jasper``
.. versionadded:: 3.22
Target encapsulating the JasPer library usage requirements, available only if
the library is found.
Result Variables
^^^^^^^^^^^^^^^^
This module defines the following variables:
``Jasper_FOUND``
Boolean indicating whether the JasPer is found. For backward compatibility,
the ``JASPER_FOUND`` variable is also set to the same value.
``JASPER_INCLUDE_DIRS``
.. versionadded:: 3.22
The include directories needed to use the JasPer library.
``JASPER_LIBRARIES``
The libraries needed to use JasPer.
``JASPER_VERSION_STRING``
The version of JasPer found.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``JASPER_INCLUDE_DIR``
The directory containing the ``jasper/jasper.h`` and other headers needed to
use the JasPer library.
``JASPER_LIBRARY_RELEASE``
The path to the release (optimized) variant of the JasPer library.
``JASPER_LIBRARY_DEBUG``
The path to the debug variant of the JasPer library.
Examples
^^^^^^^^
Finding the JasPer library and linking it to a project target:
.. code-block:: cmake
find_package(Jasper)
target_link_libraries(project_target PRIVATE Jasper::Jasper)
#]=======================================================================]
cmake_policy(PUSH)
cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
find_path(JASPER_INCLUDE_DIR jasper/jasper.h)
mark_as_advanced(JASPER_INCLUDE_DIR)
if(NOT JASPER_LIBRARIES)
find_package(JPEG QUIET)
find_library(JASPER_LIBRARY_RELEASE NAMES jasper libjasper)
find_library(JASPER_LIBRARY_DEBUG NAMES jasperd)
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
select_library_configurations(JASPER)
endif()
if(JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
file(STRINGS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" jasper_version_str REGEX "^#define[\t ]+JAS_VERSION[\t ]+\".*\".*")
string(REGEX REPLACE "^#define[\t ]+JAS_VERSION[\t ]+\"([^\"]+)\".*" "\\1" JASPER_VERSION_STRING "${jasper_version_str}")
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Jasper
REQUIRED_VARS JASPER_LIBRARIES JASPER_INCLUDE_DIR
VERSION_VAR JASPER_VERSION_STRING)
if(Jasper_FOUND)
set(JASPER_LIBRARIES ${JASPER_LIBRARIES})
if(JPEG_FOUND)
list(APPEND JASPER_LIBRARIES ${JPEG_LIBRARIES})
endif()
set(JASPER_INCLUDE_DIRS ${JASPER_INCLUDE_DIR})
if(NOT TARGET Jasper::Jasper)
add_library(Jasper::Jasper UNKNOWN IMPORTED)
if(JASPER_INCLUDE_DIRS)
set_target_properties(Jasper::Jasper PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${JASPER_INCLUDE_DIRS}")
endif()
if(EXISTS "${JASPER_LIBRARY_RELEASE}")
set_property(TARGET Jasper::Jasper APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(Jasper::Jasper PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION_RELEASE "${JASPER_LIBRARY_RELEASE}")
endif()
if(EXISTS "${JASPER_LIBRARY_DEBUG}")
set_property(TARGET Jasper::Jasper APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(Jasper::Jasper PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
IMPORTED_LOCATION_DEBUG "${JASPER_LIBRARY_DEBUG}")
endif()
endif()
endif()
cmake_policy(POP)
|