diff --git a/CMakeLists.txt b/CMakeLists.txt index aca5d6f..48a26c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,7 +156,10 @@ if(AVIF_LOCAL_LIBYUV) set(libyuv_FOUND TRUE) message(STATUS "libavif: local libyuv found; libyuv-based fast paths enabled.") else(AVIF_LOCAL_LIBYUV) - find_package(libyuv QUIET) # not required + find_package(libyuv_config NAMES libyuv CONFIG REQUIRED) + set(LIBYUV_INCLUDE_DIR "${libyuv_INCLUDE_DIRS}") + set(LIBYUV_LIBRARY "yuv") + find_package(libyuv MODULE REQUIRED) if(libyuv_FOUND) # libyuv 1755 exposed all of the I*Matrix() functions, which libavif relies on. # libyuv 1774 exposed ScalePlane_12 function, which libavif can use for some additional optimizations. @@ -660,7 +663,7 @@ endif() if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) install( TARGETS avif - EXPORT ${PROJECT_NAME}-config + EXPORT ${PROJECT_NAME}-targets RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" @@ -668,7 +671,7 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) # Enable CMake configs in VCPKG mode if(BUILD_SHARED_LIBS OR VCPKG_TARGET_TRIPLET) - install(EXPORT ${PROJECT_NAME}-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + install(EXPORT ${PROJECT_NAME}-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) include(CMakePackageConfigHelpers) write_basic_package_version_file( @@ -677,6 +680,28 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in "@PACKAGE_INIT@\n") + if(NOT BUILD_SHARED_LIBS) + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in " + include(CMakeFindDependencyMacro) + find_dependency(libyuv CONFIG) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_dependency(Threads) + ") + endif() + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in "include(\${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}-targets.cmake)") + + # Install CMake configuration export file. + configure_package_config_file( + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + ) endif() # Handle both relative and absolute paths (e.g. NixOS) for a relocatable package