diff options
| author | Saikari <lin@sz.cn.eu.org> | 2026-04-12 02:49:39 +0300 |
|---|---|---|
| committer | Aliaksei Levin <22669599+levlam@users.noreply.github.com> | 2026-05-15 15:07:51 +0300 |
| commit | 2b7ef2c9fe04d64cca8f24f60aff5a5df707642d (patch) | |
| tree | 32c092714f1a84fe8b8297f44bc3087fb3f9efd9 /CMake | |
| parent | 3a3d3334bef98fabbdc7c72dd6d0aa7ccdbb798c (diff) | |
Improve pkg-config generation by handling target output names for interface libraries
Diffstat (limited to 'CMake')
| -rw-r--r-- | CMake/GeneratePkgConfig.cmake | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/CMake/GeneratePkgConfig.cmake b/CMake/GeneratePkgConfig.cmake index 2e017e46c..499b1c86b 100644 --- a/CMake/GeneratePkgConfig.cmake +++ b/CMake/GeneratePkgConfig.cmake @@ -114,14 +114,23 @@ function(generate_pkgconfig TARGET DESCRIPTION) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig") + get_target_property(TARGET_OUTPUT_NAME "${TARGET}" OUTPUT_NAME) + if ("${TARGET_OUTPUT_NAME}" STREQUAL "TARGET_OUTPUT_NAME-NOTFOUND") + set(TARGET_OUTPUT_NAME "${TARGET}") + endif() + if ("${LIBRARY_TYPE}" STREQUAL "INTERFACE_LIBRARY") set(LIBS_LINE "") foreach (ILIB ${INTERFACE_LIBS}) - set(LIBS_LINE "${LIBS_LINE} -l${ILIB}") + get_target_property(ILIB_OUTPUT_NAME "${ILIB}" OUTPUT_NAME) + if ("${ILIB_OUTPUT_NAME}" STREQUAL "ILIB_OUTPUT_NAME-NOTFOUND") + set(ILIB_OUTPUT_NAME "${ILIB}") + endif() + set(LIBS_LINE "${LIBS_LINE} -l${ILIB_OUTPUT_NAME}") endforeach() set(LIBS_LINE "Libs: -L\"${PKGCONFIG_LIBDIR}\"${LIBS_LINE}") else() - set(LIBS_LINE "Libs: -L\"${PKGCONFIG_LIBDIR}\" -l${TARGET}") + set(LIBS_LINE "Libs: -L\"${PKGCONFIG_LIBDIR}\" -l${TARGET_OUTPUT_NAME}") endif() file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/${TARGET}.pc" CONTENT |
