aboutsummaryrefslogtreecommitdiffhomepage
path: root/CMake
diff options
context:
space:
mode:
authorSaikari <lin@sz.cn.eu.org>2026-04-19 16:10:02 +0300
committerAliaksei Levin <22669599+levlam@users.noreply.github.com>2026-05-15 15:07:51 +0300
commit51780adaa11465d112172a28d9c4b73bb22bd29c (patch)
treef0751378ec89ae941aa12df50570436172abff6b /CMake
parent2b7ef2c9fe04d64cca8f24f60aff5a5df707642d (diff)
Include interface compile definitions in pkg-config
Add interface compile definitions to pkg-config generation.
Diffstat (limited to 'CMake')
-rw-r--r--CMake/GeneratePkgConfig.cmake18
1 files changed, 17 insertions, 1 deletions
diff --git a/CMake/GeneratePkgConfig.cmake b/CMake/GeneratePkgConfig.cmake
index 499b1c86b..4cbdb15d9 100644
--- a/CMake/GeneratePkgConfig.cmake
+++ b/CMake/GeneratePkgConfig.cmake
@@ -72,6 +72,12 @@ function(generate_pkgconfig TARGET DESCRIPTION)
set(LIBS "")
foreach (LIB ${LIST})
if (TARGET "${LIB}")
+ if ("${LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY")
+ get_target_property(LIB_TYPE "${LIB}" TYPE)
+ if ("${LIB_TYPE}" STREQUAL "STATIC_LIBRARY")
+ continue()
+ endif()
+ endif()
set(HAS_REQS 1)
list(APPEND REQS "${LIB}")
else()
@@ -133,6 +139,16 @@ function(generate_pkgconfig TARGET DESCRIPTION)
set(LIBS_LINE "Libs: -L\"${PKGCONFIG_LIBDIR}\" -l${TARGET_OUTPUT_NAME}")
endif()
+ get_target_property(_td_iface_defs "${TARGET}" INTERFACE_COMPILE_DEFINITIONS)
+ set(CFLAGS_DEFS "")
+ if (NOT "${_td_iface_defs}" STREQUAL "_td_iface_defs-NOTFOUND")
+ foreach(_def ${_td_iface_defs})
+ string(APPEND CFLAGS_DEFS " -D${_def}")
+ endforeach()
+ unset(_def)
+ endif()
+ unset(_td_iface_defs)
+
file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/${TARGET}.pc" CONTENT
"prefix=${PREFIX}
@@ -140,7 +156,7 @@ Name: ${TARGET}
Description: ${DESCRIPTION}
Version: ${PROJECT_VERSION}
-CFlags: -I\"${PKGCONFIG_INCLUDEDIR}\"
+CFlags: -I\"${PKGCONFIG_INCLUDEDIR}\"${CFLAGS_DEFS}
${LIBS_LINE}
${REQUIRES}${LIBRARIES}")