Findlunasvg.cmake 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #[[
  2. Custom find module for lunasvg, will use existing target if available.
  3. Input variables:
  4. LUNASVG_INCLUDE_DIR
  5. LUNASVG_LIBRARY_DEBUG
  6. LUNASVG_LIBRARY_RELEASE
  7. Output variables:
  8. lunasvg_FOUND
  9. lunasvg_VERSION
  10. Resulting targets:
  11. lunasvg::lunasvg
  12. ]]
  13. include(FindPackageHandleStandardArgs)
  14. if(NOT TARGET lunasvg::lunasvg)
  15. # Look for lunasvg 3.0+ official config
  16. find_package("lunasvg" CONFIG QUIET)
  17. endif()
  18. if(NOT TARGET lunasvg::lunasvg)
  19. # Look for vcpkg port
  20. find_package("unofficial-lunasvg" CONFIG QUIET)
  21. if(TARGET unofficial::lunasvg::lunasvg)
  22. add_library(lunasvg::lunasvg ALIAS unofficial::lunasvg::lunasvg)
  23. endif()
  24. endif()
  25. if(TARGET lunasvg::lunasvg)
  26. # Since the target already exists, we declare it as found
  27. set(lunasvg_FOUND TRUE)
  28. if(NOT DEFINED lunasvg_VERSION)
  29. set(lunasvg_VERSION "UNKNOWN")
  30. endif()
  31. elseif(TARGET lunasvg)
  32. # This is for when lunasvg is added via add_subdirectory
  33. add_library(lunasvg::lunasvg ALIAS lunasvg)
  34. set(lunasvg_FOUND TRUE)
  35. if(NOT DEFINED lunasvg_VERSION)
  36. set(lunasvg_VERSION "UNKNOWN")
  37. endif()
  38. else()
  39. # Search for the library using input variables
  40. find_path(LUNASVG_INCLUDE_DIR lunasvg.h
  41. HINTS $ENV{LUNASVG_DIR}
  42. PATH_SUFFIXES lunasvg lunasvg/include include)
  43. find_library(LUNASVG_LIBRARY_DEBUG NAMES lunasvg liblunasvg
  44. HINTS $ENV{LUNASVG_DIR} $ENV{LUNASVG_DIR}/build
  45. PATH_SUFFIXES debug Debug)
  46. find_library(LUNASVG_LIBRARY_RELEASE NAMES lunasvg liblunasvg
  47. HINTS $ENV{LUNASVG_DIR} $ENV{LUNASVG_DIR}/build
  48. PATH_SUFFIXES release Release)
  49. set(LUNASVG_LIBRARY
  50. debug ${LUNASVG_LIBRARY_DEBUG}
  51. optimized ${LUNASVG_LIBRARY_RELEASE}
  52. )
  53. find_package_handle_standard_args(lunasvg DEFAULT_MSG
  54. LUNASVG_LIBRARY LUNASVG_INCLUDE_DIR)
  55. mark_as_advanced(LUNASVG_INCLUDE_DIR LUNASVG_LIBRARY_DEBUG LUNASVG_LIBRARY_RELEASE)
  56. set(LUNASVG_LIBRARIES ${LUNASVG_LIBRARY})
  57. set(LUNASVG_INCLUDE_DIRS ${LUNASVG_INCLUDE_DIR})
  58. if(lunasvg_FOUND)
  59. add_library(lunasvg::lunasvg INTERFACE IMPORTED)
  60. set(lunasvg_VERSION "UNKNOWN")
  61. target_include_directories(lunasvg::lunasvg INTERFACE ${LUNASVG_INCLUDE_DIRS})
  62. target_link_libraries(lunasvg::lunasvg INTERFACE ${LUNASVG_LIBRARIES})
  63. endif()
  64. if(NOT DEFINED lunasvg_VERSION)
  65. set(lunasvg_VERSION "UNKNOWN")
  66. endif()
  67. endif()