Commit 982e6e77 authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'findcups'

dd45f23b

 FindCups: add imported target
Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
Merge-request: !2917
parents 450a1904 dd45f23b
FindCups-imported-target
------------------------
* The :module:`FindCups` module now provides imported targets.
......@@ -5,18 +5,38 @@
FindCups
--------
Try to find the Cups printing system
Find the CUPS printing system.
Once done this will define
Set CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE to TRUE if you need a version which
features this function (i.e. at least 1.1.19)
::
Imported targets
^^^^^^^^^^^^^^^^
CUPS_FOUND - system has Cups
CUPS_INCLUDE_DIR - the Cups include directory
CUPS_LIBRARIES - Libraries needed to use Cups
CUPS_VERSION_STRING - version of Cups found (since CMake 2.8.8)
Set CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE to TRUE if you need a version which
features this function (i.e. at least 1.1.19)
This module defines :prop_tgt:`IMPORTED` target ``Cups::Cups``, if Cups has
been found.
Result variables
^^^^^^^^^^^^^^^^
This module will set the following variables in your project:
``CUPS_FOUND``
true if CUPS headers and libraries were found
``CUPS_INCLUDE_DIRS``
the directory containing the Cups headers
``CUPS_LIBRARIES``
the libraries to link against to use CUPS.
``CUPS_VERSION_STRING``
the version of CUPS found (since CMake 2.8.8)
Cache variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``CUPS_INCLUDE_DIR``
the directory containing the Cups headers
#]=======================================================================]
find_path(CUPS_INCLUDE_DIR cups/cups.h )
......@@ -66,3 +86,13 @@ else ()
endif ()
mark_as_advanced(CUPS_INCLUDE_DIR CUPS_LIBRARIES)
if (CUPS_FOUND)
set(CUPS_INCLUDE_DIRS "${CUPS_INCLUDE_DIR}")
if (NOT TARGET Cups::Cups)
add_library(Cups::Cups INTERFACE IMPORTED)
set_target_properties(Cups::Cups PROPERTIES
INTERFACE_LINK_LIBRARIES "${CUPS_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${CUPS_INCLUDE_DIR}")
endif ()
endif ()
......@@ -1413,6 +1413,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
add_subdirectory(FindCURL)
endif()
if(CMake_TEST_FindCups)
add_subdirectory(FindCups)
endif()
if(CMake_TEST_FindDoxygen)
add_subdirectory(FindDoxygen)
endif()
......
add_test(NAME FindCups.Test COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindCups/Test"
"${CMake_BINARY_DIR}/Tests/FindCups/Test"
${build_generator_args}
--build-project FindCups
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
cmake_minimum_required(VERSION 3.10)
project(TestFindCups C)
include(CTest)
find_package(Cups REQUIRED)
add_definitions(-DCMAKE_EXPECTED_CUPS_VERSION="${CUPS_VERSION_STRING}")
add_executable(test_tgt main.c)
target_link_libraries(test_tgt Cups::Cups)
add_test(NAME test_tgt COMMAND test_tgt)
add_executable(test_var main.c)
target_include_directories(test_var PRIVATE ${CUPS_INCLUDE_DIRS})
target_link_libraries(test_var PRIVATE ${CUPS_LIBRARIES})
add_test(NAME test_var COMMAND test_var)
#include <cups/cups.h>
int main()
{
int num_options = 0;
cups_option_t* options = NULL;
num_options = cupsAddOption(CUPS_COPIES, "1", num_options, &options);
cupsFreeOptions(num_options, options);
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment