diff options
| author | Saikari <lin@sz.cn.eu.org> | 2026-04-19 16:10:02 +0300 |
|---|---|---|
| committer | Aliaksei Levin <22669599+levlam@users.noreply.github.com> | 2026-05-15 15:07:51 +0300 |
| commit | 51780adaa11465d112172a28d9c4b73bb22bd29c (patch) | |
| tree | f0751378ec89ae941aa12df50570436172abff6b /CMake | |
| parent | 2b7ef2c9fe04d64cca8f24f60aff5a5df707642d (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.cmake | 18 |
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}") |
