FindTIFF: Add imported targets and update documentation
- Add TIFF::TIFF imported target - Document imported target - Add testcase to test the standard variables and the imported target Also: - Add TIFF_INCLUDE_DIRS to match common practice - Update documentation generally, including documenting TIFF_INCLUDE_DIRS
This commit is contained in:
parent
4ffeab0e3c
commit
ebaca6290d
|
@ -0,0 +1,4 @@
|
|||
FindTIFF-imported-targets
|
||||
-------------------------
|
||||
|
||||
* The :module:`FindTIFF` module now provides imported targets.
|
|
@ -2,24 +2,43 @@
|
|||
# FindTIFF
|
||||
# --------
|
||||
#
|
||||
# Find TIFF library
|
||||
# Find the TIFF library (libtiff).
|
||||
#
|
||||
# Find the native TIFF includes and library This module defines
|
||||
# Imported targets
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# ::
|
||||
# This module defines the following :prop_tgt:`IMPORTED` targets:
|
||||
#
|
||||
# TIFF_INCLUDE_DIR, where to find tiff.h, etc.
|
||||
# TIFF_LIBRARIES, libraries to link against to use TIFF.
|
||||
# TIFF_FOUND, If false, do not try to use TIFF.
|
||||
# ``TIFF::TIFF``
|
||||
# The TIFF library, if found.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# Result variables
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# ::
|
||||
# This module will set the following variables in your project:
|
||||
#
|
||||
# TIFF_LIBRARY, where to find the TIFF library.
|
||||
# ``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``
|
||||
# the path to the TIFF library
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2002-2009 Kitware, Inc.
|
||||
# Copyright 2015 University of Dundee
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
|
@ -65,7 +84,35 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(TIFF
|
|||
VERSION_VAR TIFF_VERSION_STRING)
|
||||
|
||||
if(TIFF_FOUND)
|
||||
set( TIFF_LIBRARIES ${TIFF_LIBRARY} )
|
||||
set(TIFF_LIBRARIES ${TIFF_LIBRARY})
|
||||
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_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()
|
||||
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()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(TIFF_INCLUDE_DIR TIFF_LIBRARY)
|
||||
|
|
|
@ -1367,6 +1367,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
|||
add_subdirectory(FindOpenSSL)
|
||||
endif()
|
||||
|
||||
if(CMake_TEST_FindTIFF)
|
||||
add_subdirectory(FindTIFF)
|
||||
endif()
|
||||
|
||||
if(CMake_TEST_FindXercesC)
|
||||
add_subdirectory(FindXercesC)
|
||||
endif()
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
add_test(NAME FindTIFF.Test COMMAND
|
||||
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/FindTIFF/Test"
|
||||
"${CMake_BINARY_DIR}/Tests/FindTIFF/Test"
|
||||
${build_generator_args}
|
||||
--build-project TestFindTIFF
|
||||
--build-options ${build_options}
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||
)
|
|
@ -0,0 +1,17 @@
|
|||
cmake_minimum_required(VERSION 3.1)
|
||||
project(TestFindTIFF C)
|
||||
include(CTest)
|
||||
|
||||
# CMake does not actually provide FindTIFF publicly.
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../Source/Modules)
|
||||
|
||||
find_package(TIFF REQUIRED)
|
||||
|
||||
add_executable(test_xercesc_tgt main.c)
|
||||
target_link_libraries(test_xercesc_tgt TIFF::TIFF)
|
||||
add_test(NAME test_xercesc_tgt COMMAND test_xercesc_tgt)
|
||||
|
||||
add_executable(test_xercesc_var main.c)
|
||||
target_include_directories(test_xercesc_var PRIVATE ${TIFF_INCLUDE_DIRS})
|
||||
target_link_libraries(test_xercesc_var PRIVATE ${TIFF_LIBRARIES})
|
||||
add_test(NAME test_xercesc_var COMMAND test_xercesc_var)
|
|
@ -0,0 +1,12 @@
|
|||
#include <assert.h>
|
||||
#include <tiffio.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
/* Without any TIFF file to open, test that the call fails as
|
||||
expected. This tests that linking worked. */
|
||||
TIFF *tiff = TIFFOpen("invalid.tiff", "r");
|
||||
assert(!tiff);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue