mirror of
https://gitlab.com/libtiff/libtiff.git
synced 2026-01-18 21:51:18 +01:00
cmake: Use imported targets for JPEG
This commit is contained in:
@@ -285,9 +285,6 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libtiff-4.pc
|
||||
DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig")
|
||||
|
||||
# Includes used by libtiff (and tests)
|
||||
if(JPEG_INCLUDE_DIR)
|
||||
list(APPEND TIFF_INCLUDES ${JPEG_INCLUDE_DIR})
|
||||
endif()
|
||||
if(JPEG12_INCLUDE_DIR)
|
||||
list(APPEND TIFF_INCLUDES ${JPEG12_INCLUDE_DIR})
|
||||
endif()
|
||||
@@ -309,9 +306,6 @@ set(TIFF_LIBRARY_DEPS)
|
||||
if(NOT MINGW AND M_LIBRARY)
|
||||
list(APPEND TIFF_LIBRARY_DEPS "m")
|
||||
endif()
|
||||
if(JPEG_LIBRARIES)
|
||||
list(APPEND TIFF_LIBRARY_DEPS ${JPEG_LIBRARIES})
|
||||
endif()
|
||||
if(JPEG12_LIBRARIES)
|
||||
list(APPEND TIFF_LIBRARY_DEPS ${JPEG12_LIBRARIES})
|
||||
endif()
|
||||
|
||||
142
cmake/FindJPEG.cmake
Normal file
142
cmake/FindJPEG.cmake
Normal file
@@ -0,0 +1,142 @@
|
||||
# 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 turbojpeg turbojpeg-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(SelectLibraryConfigurations)
|
||||
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(FindPackageHandleStandardArgs)
|
||||
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)
|
||||
40
cmake/JPEGCodec.cmake
Normal file
40
cmake/JPEGCodec.cmake
Normal file
@@ -0,0 +1,40 @@
|
||||
# Checks for JPEG codec support
|
||||
#
|
||||
# Copyright © 2015 Open Microscopy Environment / University of Dundee
|
||||
# Copyright © 2021 Roger Leigh <rleigh@codelibre.net>
|
||||
# Written by Roger Leigh <rleigh@codelibre.net>
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and
|
||||
# its documentation for any purpose is hereby granted without fee, provided
|
||||
# that (i) the above copyright notices and this permission notice appear in
|
||||
# all copies of the software and related documentation, and (ii) the names of
|
||||
# Sam Leffler and Silicon Graphics may not be used in any advertising or
|
||||
# publicity relating to the software without the specific, prior written
|
||||
# permission of Sam Leffler and Silicon Graphics.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
|
||||
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
# OF THIS SOFTWARE.
|
||||
|
||||
|
||||
# JPEG
|
||||
set(JPEG_SUPPORT FALSE)
|
||||
find_package(JPEG)
|
||||
option(jpeg "use libjpeg (required for JPEG compression)" ${JPEG_FOUND})
|
||||
if (jpeg AND JPEG_FOUND)
|
||||
set(JPEG_SUPPORT TRUE)
|
||||
endif()
|
||||
|
||||
# Old-jpeg
|
||||
set(OJPEG_SUPPORT FALSE)
|
||||
option(old-jpeg "support for Old JPEG compression (read-only)" ${JPEG_SUPPORT})
|
||||
if (old-jpeg AND JPEG_SUPPORT)
|
||||
set(OJPEG_SUPPORT TRUE)
|
||||
endif()
|
||||
@@ -111,6 +111,9 @@ endif()
|
||||
if(ZIP_SUPPORT AND LIBDEFLATE_SUPPORT)
|
||||
target_link_libraries(tiff PRIVATE Deflate::Deflate)
|
||||
endif()
|
||||
if(JPEG_SUPPORT)
|
||||
target_link_libraries(tiff PRIVATE JPEG::JPEG)
|
||||
endif()
|
||||
target_link_libraries(tiff PRIVATE ${TIFF_LIBRARY_DEPS})
|
||||
set_target_properties(tiff PROPERTIES SOVERSION ${SO_COMPATVERSION})
|
||||
if(NOT CYGWIN)
|
||||
|
||||
Reference in New Issue
Block a user