From 42bddca1510186932534178f1224538cb747be32 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 16 Feb 2021 13:40:13 -0500 Subject: [PATCH] Fix transitive dependencies via interface libaries --- .../cmake-modules/AudacityFunctions.cmake | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/cmake-proxies/cmake-modules/AudacityFunctions.cmake b/cmake-proxies/cmake-modules/AudacityFunctions.cmake index e5cd2d555..4114fd90a 100644 --- a/cmake-proxies/cmake-modules/AudacityFunctions.cmake +++ b/cmake-proxies/cmake-modules/AudacityFunctions.cmake @@ -318,6 +318,18 @@ function( audacity_module_fn NAME SOURCES IMPORT_TARGETS endif() add_library( ${TARGET} ${REAL_LIBTYPE} ) + # Manual propagation seems to be necessary from + # interface libraries -- just doing target_link_libraries naming them + # doesn't work as promised + + # compute INCLUDES + set( INCLUDES ) + list( APPEND INCLUDES PUBLIC ${TARGET_ROOT} ) + + # compute DEFINES + set( DEFINES ) + list( APPEND DEFINES ${ADDITIONAL_DEFINES} ) + if (LIBTYPE STREQUAL "MODULE") set( SHAPE "box" ) set_target_property_all( ${TARGET} LIBRARY_OUTPUT_DIRECTORY "${_MODDIR}" ) @@ -338,8 +350,7 @@ function( audacity_module_fn NAME SOURCES IMPORT_TARGETS export_symbol_define( export_symbol "${TARGET}" ) import_symbol_define( import_symbol "${TARGET}" ) - set( DEFINES - ${ADDITIONAL_DEFINES} + list( APPEND DEFINES PRIVATE "${export_symbol}" INTERFACE "${import_symbol}" ) @@ -386,7 +397,11 @@ function( audacity_module_fn NAME SOURCES IMPORT_TARGETS add_library("${INTERFACE_TARGET}" ALIAS "${TARGET}") else() add_library("${INTERFACE_TARGET}" INTERFACE) - foreach(PROP INTERFACE_INCLUDE_DIRECTORIES INTERFACE_COMPILE_DEFINITIONS) + foreach(PROP + INTERFACE_INCLUDE_DIRECTORIES + INTERFACE_COMPILE_DEFINITIONS + INTERFACE_LINK_LIBRARIES + ) get_target_property( PROPS "${TARGET}" "${PROP}" ) if (PROPS) set_target_properties(