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 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
|
# This FindTIFF.cmake has been contributed by us to upstream CMake.
# It is expected to be released with CMake 3.19.
# See https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4934.
# Therefore we shall delete this file from BornAgain in a couple of years
# when our minimum required CMake version has been incremented to 3.19.
# - JWu, jun2020.
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindTIFF
--------
Find the TIFF library (``libtiff``, https://libtiff.gitlab.io/libtiff/).
Optional COMPONENTS
^^^^^^^^^^^^^^^^^^^
This module supports the optional component `CXX`, for use with the COMPONENTS
argument of the :command:`find_package` command. This component has an associated
imported target, as described below.
Imported targets
^^^^^^^^^^^^^^^^
This module defines the following :prop_tgt:`IMPORTED` targets:
``TIFF::TIFF``
The TIFF library, if found.
``TIFF::CXX``
The C++ wrapper libtiffxx, if requested by the `COMPONENTS CXX` option,
if the compiler is not MSVC (which includes the C++ wrapper in libtiff),
and if found.
Result variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``TIFF_FOUND``
true if the TIFF headers and libraries were found
``TIFF_INCLUDE_DIR``
the directory containing the TIFF headers
``TIFF_INCLUDE_DIRS``
the directory containing the TIFF headers
``TIFF_LIBRARIES``
TIFF libraries to be linked
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``TIFF_INCLUDE_DIR``
the directory containing the TIFF headers
``TIFF_LIBRARY_RELEASE``
the path to the TIFF library for release configurations
``TIFF_LIBRARY_DEBUG``
the path to the TIFF library for debug configurations
``TIFFXX_LIBRARY_RELEASE``
the path to the TIFFXX library for release configurations
``TIFFXX_LIBRARY_DEBUG``
the path to the TIFFXX library for debug configurations
#]=======================================================================]
cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW)
find_path(TIFF_INCLUDE_DIR tiff.h PATH_SUFFIXES libtiff) # patched with respect to my CMake contrib
set(TIFF_NAMES ${TIFF_NAMES} tiff libtiff tiff3 libtiff3)
foreach(name ${TIFF_NAMES})
list(APPEND TIFF_NAMES_DEBUG "${name}d")
endforeach()
if(NOT TIFF_LIBRARY)
find_library(TIFF_LIBRARY_RELEASE NAMES ${TIFF_NAMES})
find_library(TIFF_LIBRARY_DEBUG NAMES ${TIFF_NAMES_DEBUG})
include(SelectLibraryConfigurations) # patched because we are outside CMake
select_library_configurations(TIFF)
mark_as_advanced(TIFF_LIBRARY_RELEASE TIFF_LIBRARY_DEBUG)
endif()
if(TIFF_INCLUDE_DIR AND EXISTS "${TIFF_INCLUDE_DIR}/tiffvers.h")
file(STRINGS "${TIFF_INCLUDE_DIR}/tiffvers.h" tiff_version_str
REGEX "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version .*")
string(REGEX REPLACE "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version +([^ \\n]*).*"
"\\1" TIFF_VERSION_STRING "${tiff_version_str}")
unset(tiff_version_str)
endif()
foreach(_comp IN LISTS TIFF_FIND_COMPONENTS)
if(_comp STREQUAL "CXX")
if(MSVC)
# C++ bindings are built into the main tiff library.
set(TIFF_CXX_FOUND 1)
else()
foreach(name ${TIFF_NAMES})
list(APPEND TIFFXX_NAMES "${name}xx")
list(APPEND TIFFXX_NAMES_DEBUG "${name}xxd")
endforeach()
find_library(TIFFXX_LIBRARY_RELEASE NAMES ${TIFFXX_NAMES})
find_library(TIFFXX_LIBRARY_DEBUG NAMES ${TIFFXX_NAMES_DEBUG})
include(SelectLibraryConfigurations) # patched because we are outside CMake
select_library_configurations(TIFFXX)
mark_as_advanced(TIFFXX_LIBRARY_RELEASE TIFFXX_LIBRARY_DEBUG)
unset(TIFFXX_NAMES)
unset(TIFFXX_NAMES_DEBUG)
if(TIFFXX_LIBRARY)
set(TIFF_CXX_FOUND 1)
endif()
endif()
endif()
endforeach()
unset(_comp)
unset(TIFF_NAMES)
unset(TIFF_NAMES_DEBUG)
include(FindPackageHandleStandardArgs) # patched because we are outside CMake
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TIFF
HANDLE_COMPONENTS
REQUIRED_VARS TIFF_LIBRARY TIFF_INCLUDE_DIR
VERSION_VAR TIFF_VERSION_STRING)
if(TIFF_FOUND)
set(TIFF_LIBRARIES ${TIFF_LIBRARY})
if("CXX" IN_LIST TIFF_FIND_COMPONENTS AND NOT MSVC)
list(APPEND TIFF_LIBRARIES ${TIFFXX_LIBRARY})
endif()
set(TIFF_INCLUDE_DIRS "${TIFF_INCLUDE_DIR}")
if(NOT TARGET TIFF::TIFF)
add_library(TIFF::TIFF UNKNOWN IMPORTED)
if(TIFF_INCLUDE_DIRS)
set_target_properties(TIFF::TIFF PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${TIFF_INCLUDE_DIRS}")
endif()
if(EXISTS "${TIFF_LIBRARY}")
set_target_properties(TIFF::TIFF PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${TIFF_LIBRARY}")
endif()
if(EXISTS "${TIFF_LIBRARY_RELEASE}")
set_property(TARGET TIFF::TIFF APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(TIFF::TIFF PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
IMPORTED_LOCATION_RELEASE "${TIFF_LIBRARY_RELEASE}")
endif()
if(EXISTS "${TIFF_LIBRARY_DEBUG}")
set_property(TARGET TIFF::TIFF APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(TIFF::TIFF PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
IMPORTED_LOCATION_DEBUG "${TIFF_LIBRARY_DEBUG}")
endif()
endif()
if(NOT TARGET TIFF::CXX)
if(MSVC)
add_library(TIFF::CXX INTERFACE IMPORTED)
set_property(TARGET TIFF::CXX PROPERTY INTERFACE_LINK_LIBRARIES TIFF::TIFF)
else()
add_library(TIFF::CXX UNKNOWN IMPORTED)
set_property(TARGET TIFF::CXX PROPERTY INTERFACE_LINK_LIBRARIES TIFF::TIFF)
if(TIFF_INCLUDE_DIRS)
set_target_properties(TIFF::CXX PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${TIFF_INCLUDE_DIRS}")
endif()
if(EXISTS "${TIFFXX_LIBRARY}")
set_target_properties(TIFF::CXX PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${TIFFXX_LIBRARY}")
endif()
if(EXISTS "${TIFFXX_LIBRARY_RELEASE}")
set_property(TARGET TIFF::CXX APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(TIFF::CXX PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
IMPORTED_LOCATION_RELEASE "${TIFFXX_LIBRARY_RELEASE}")
endif()
if(EXISTS "${TIFFXX_LIBRARY_DEBUG}")
set_property(TARGET TIFF::CXX APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(TIFF::CXX PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
IMPORTED_LOCATION_DEBUG "${TIFFXX_LIBRARY_DEBUG}")
endif()
endif()
endif()
endif()
mark_as_advanced(TIFF_INCLUDE_DIR)
cmake_policy(POP)
|