From 838b7b98ea7d00076a3d9b1e6f9baa5cb0daa675 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Wed, 2 Apr 2025 20:01:15 +0200 Subject: [PATCH] CMake: check version for some properties in fl_debug_target() Debug only, if fl_debug_target() is used: Prior to CMake 3.19 some properties of "INTERFACE_LIBRARY targets" can't be read with get_property(). These properties are now excluded if the CMake version is lower than 3.19. (Backported from master) --- CMake/fl_debug_var.cmake | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/CMake/fl_debug_var.cmake b/CMake/fl_debug_var.cmake index 1c33a9313..d583d7d0c 100644 --- a/CMake/fl_debug_var.cmake +++ b/CMake/fl_debug_var.cmake @@ -117,15 +117,20 @@ function(fl_debug_target name) ### INTERFACE_LOCATION) ### endif() - list(APPEND _props + if(NOT _type STREQUAL "INTERFACE_LIBRARY" OR CMAKE_VERSION VERSION_GREATER_EQUAL "3.19") + # Before 3.19: "INTERFACE_LIBRARY targets may only have whitelisted properties" + list(APPEND _props INCLUDE_DIRECTORIES LINK_DIRECTORIES LINK_LIBRARIES - COMPILE_DEFINITIONS - INTERFACE_COMPILE_DEFINITIONS - INTERFACE_INCLUDE_DIRECTORIES - INTERFACE_LINK_DIRECTORIES - INTERFACE_LINK_LIBRARIES) + COMPILE_DEFINITIONS) + endif() + + list(APPEND _props + INTERFACE_COMPILE_DEFINITIONS + INTERFACE_INCLUDE_DIRECTORIES + INTERFACE_LINK_DIRECTORIES + INTERFACE_LINK_LIBRARIES) foreach(prop ${_props}) get_target_property(${prop} ${name} ${prop})