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 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
# 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:
.. code-block:: cmake
find_package(Jasper [<version>] [...])
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``
.. versionadded:: 3.3
Boolean indicating whether (the requested version of) JasPer was found.
``Jasper_VERSION``
.. versionadded:: 4.2
The version of JasPer found.
``JASPER_INCLUDE_DIRS``
.. versionadded:: 3.22
The include directories needed to use the JasPer library.
``JASPER_LIBRARIES``
The libraries needed to use JasPer.
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.
Deprecated Variables
^^^^^^^^^^^^^^^^^^^^
The following variables are provided for backward compatibility:
``JASPER_FOUND``
.. deprecated:: 4.2
Use ``Jasper_FOUND``, which has the same value.
Boolean indicating whether (the requested version of) JasPer was found.
``JASPER_VERSION_STRING``
.. deprecated:: 4.2
Superseded by the ``Jasper_VERSION``.
The version of JasPer found.
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 "${jasper_version_str}")
set(JASPER_VERSION_STRING "${Jasper_VERSION}")
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Jasper
REQUIRED_VARS JASPER_LIBRARIES JASPER_INCLUDE_DIR
VERSION_VAR Jasper_VERSION)
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)
|