Skip to content

Commit 01bae06

Browse files
committed
cmake config: Use find_dependency to make linked targets available
1 parent fa3ffe9 commit 01bae06

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

CMakeLists.txt

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -588,15 +588,15 @@ endif()
588588
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
589589
install(
590590
TARGETS avif
591-
EXPORT ${PROJECT_NAME}-config
591+
EXPORT ${PROJECT_NAME}-targets
592592
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
593593
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
594594
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
595595
)
596596

597597
# Enable CMake configs in VCPKG mode
598598
if(BUILD_SHARED_LIBS OR VCPKG_TARGET_TRIPLET)
599-
install(EXPORT ${PROJECT_NAME}-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
599+
install(EXPORT ${PROJECT_NAME}-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
600600

601601
include(CMakePackageConfigHelpers)
602602
write_basic_package_version_file(
@@ -605,6 +605,29 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
605605
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
606606
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
607607
)
608+
609+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in "@PACKAGE_INIT@\n")
610+
if(UNIX AND NOT BUILD_SHARED_LIBS)
611+
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in "
612+
include(CMakeFindDependencyMacro)
613+
set(CMAKE_THREAD_PREFER_PTHREADS ON)
614+
set(THREADS_PREFER_PTHREAD_FLAG ON)
615+
find_dependency(Threads)
616+
")
617+
endif()
618+
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in "include(\${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}-targets.cmake)")
619+
620+
# Install CMake configuration export file.
621+
configure_package_config_file(
622+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in
623+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
624+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
625+
NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO
626+
)
627+
install(
628+
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
629+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
630+
)
608631
endif()
609632

610633
# Handle both relative and absolute paths (e.g. NixOS) for a relocatable package

0 commit comments

Comments
 (0)