aboutsummaryrefslogtreecommitdiffhomepage
path: root/CMake
diff options
context:
space:
mode:
authorSaikari <lin@sz.cn.eu.org>2026-04-12 02:49:39 +0300
committerAliaksei Levin <22669599+levlam@users.noreply.github.com>2026-05-15 15:07:51 +0300
commit2b7ef2c9fe04d64cca8f24f60aff5a5df707642d (patch)
tree32c092714f1a84fe8b8297f44bc3087fb3f9efd9 /CMake
parent3a3d3334bef98fabbdc7c72dd6d0aa7ccdbb798c (diff)
Improve pkg-config generation by handling target output names for interface libraries
Diffstat (limited to 'CMake')
-rw-r--r--CMake/GeneratePkgConfig.cmake13
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