FindCups.cmake 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. #[=======================================================================[.rst:
  4. FindCups
  5. --------
  6. Try to find the Cups printing system
  7. Once done this will define
  8. ::
  9. CUPS_FOUND - system has Cups
  10. CUPS_INCLUDE_DIR - the Cups include directory
  11. CUPS_LIBRARIES - Libraries needed to use Cups
  12. CUPS_VERSION_STRING - version of Cups found (since CMake 2.8.8)
  13. Set CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE to TRUE if you need a version which
  14. features this function (i.e. at least 1.1.19)
  15. #]=======================================================================]
  16. find_path(CUPS_INCLUDE_DIR cups/cups.h )
  17. find_library(CUPS_LIBRARIES NAMES cups )
  18. if (CUPS_INCLUDE_DIR AND CUPS_LIBRARIES AND CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE)
  19. include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)
  20. include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
  21. cmake_push_check_state()
  22. set(CMAKE_REQUIRED_QUIET ${Cups_FIND_QUIETLY})
  23. # ippDeleteAttribute is new in cups-1.1.19 (and used by kdeprint)
  24. CHECK_LIBRARY_EXISTS(cups ippDeleteAttribute "" CUPS_HAS_IPP_DELETE_ATTRIBUTE)
  25. cmake_pop_check_state()
  26. endif ()
  27. if (CUPS_INCLUDE_DIR AND EXISTS "${CUPS_INCLUDE_DIR}/cups/cups.h")
  28. file(STRINGS "${CUPS_INCLUDE_DIR}/cups/cups.h" cups_version_str
  29. REGEX "^#[\t ]*define[\t ]+CUPS_VERSION_(MAJOR|MINOR|PATCH)[\t ]+[0-9]+$")
  30. unset(CUPS_VERSION_STRING)
  31. foreach(VPART MAJOR MINOR PATCH)
  32. foreach(VLINE ${cups_version_str})
  33. if(VLINE MATCHES "^#[\t ]*define[\t ]+CUPS_VERSION_${VPART}[\t ]+([0-9]+)$")
  34. set(CUPS_VERSION_PART "${CMAKE_MATCH_1}")
  35. if(CUPS_VERSION_STRING)
  36. string(APPEND CUPS_VERSION_STRING ".${CUPS_VERSION_PART}")
  37. else()
  38. set(CUPS_VERSION_STRING "${CUPS_VERSION_PART}")
  39. endif()
  40. endif()
  41. endforeach()
  42. endforeach()
  43. endif ()
  44. include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
  45. if (CUPS_REQUIRE_IPP_DELETE_ATTRIBUTE)
  46. FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cups
  47. REQUIRED_VARS CUPS_LIBRARIES CUPS_INCLUDE_DIR CUPS_HAS_IPP_DELETE_ATTRIBUTE
  48. VERSION_VAR CUPS_VERSION_STRING)
  49. else ()
  50. FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cups
  51. REQUIRED_VARS CUPS_LIBRARIES CUPS_INCLUDE_DIR
  52. VERSION_VAR CUPS_VERSION_STRING)
  53. endif ()
  54. mark_as_advanced(CUPS_INCLUDE_DIR CUPS_LIBRARIES)