FindJasper.cmake 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. FindJasper
  5. ----------
  6. Find the Jasper JPEG2000 library.
  7. IMPORTED Targets
  8. ^^^^^^^^^^^^^^^^
  9. ``Jasper::Jasper``
  10. The jasper library, if found.
  11. Result Variables
  12. ^^^^^^^^^^^^^^^^
  13. This module defines the following variables:
  14. ``JASPER_FOUND``
  15. system has Jasper
  16. ``JASPER_INCLUDE_DIRS``
  17. .. versionadded:: 3.22
  18. the Jasper include directory
  19. ``JASPER_LIBRARIES``
  20. the libraries needed to use Jasper
  21. ``JASPER_VERSION_STRING``
  22. the version of Jasper found
  23. Cache variables
  24. ^^^^^^^^^^^^^^^
  25. The following cache variables may also be set:
  26. ``JASPER_INCLUDE_DIR``
  27. where to find jasper/jasper.h, etc.
  28. ``JASPER_LIBRARY_RELEASE``
  29. where to find the Jasper library (optimized).
  30. ``JASPER_LIBARRY_DEBUG``
  31. where to find the Jasper library (debug).
  32. #]=======================================================================]
  33. cmake_policy(PUSH)
  34. cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_<n>
  35. find_path(JASPER_INCLUDE_DIR jasper/jasper.h)
  36. mark_as_advanced(JASPER_INCLUDE_DIR)
  37. if(NOT JASPER_LIBRARIES)
  38. find_package(JPEG)
  39. find_library(JASPER_LIBRARY_RELEASE NAMES jasper libjasper)
  40. find_library(JASPER_LIBRARY_DEBUG NAMES jasperd)
  41. include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
  42. select_library_configurations(JASPER)
  43. endif()
  44. if(JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
  45. file(STRINGS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" jasper_version_str REGEX "^#define[\t ]+JAS_VERSION[\t ]+\".*\".*")
  46. string(REGEX REPLACE "^#define[\t ]+JAS_VERSION[\t ]+\"([^\"]+)\".*" "\\1" JASPER_VERSION_STRING "${jasper_version_str}")
  47. endif()
  48. include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
  49. find_package_handle_standard_args(Jasper
  50. REQUIRED_VARS JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES
  51. VERSION_VAR JASPER_VERSION_STRING)
  52. if(JASPER_FOUND)
  53. set(JASPER_LIBRARIES ${JASPER_LIBRARIES} ${JPEG_LIBRARIES})
  54. set(JASPER_INCLUDE_DIRS ${JASPER_INCLUDE_DIR})
  55. if(NOT TARGET Jasper::Jasper)
  56. add_library(Jasper::Jasper UNKNOWN IMPORTED)
  57. if(JASPER_INCLUDE_DIRS)
  58. set_target_properties(Jasper::Jasper PROPERTIES
  59. INTERFACE_INCLUDE_DIRECTORIES "${JASPER_INCLUDE_DIRS}")
  60. endif()
  61. if(EXISTS "${JASPER_LIBRARY_RELEASE}")
  62. set_property(TARGET Jasper::Jasper APPEND PROPERTY
  63. IMPORTED CONFIGURATION RELEASE)
  64. set_target_properties(Jasper::Jasper PROPERTIES
  65. IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
  66. IMPORTED_LOCATION "${JASPER_LIBRARY_RELEASE}")
  67. endif()
  68. if(EXISTS "${JASPER_LIBRARY_DEBUG}")
  69. set_property(TARGET Jasper::Jasper APPEND PROPERTY
  70. IMPORTED CONFIGURATION DEBUG)
  71. set_target_properties(Jasper::Jasper PROPERTIES
  72. IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
  73. IMPORTED_LOCATION "${JASPER_LIBRARY_DEBUG}")
  74. endif()
  75. endif()
  76. endif()
  77. cmake_policy(POP)