From c284c88db1ec8db78fcc342641399938dc5676f5 Mon Sep 17 00:00:00 2001 From: JackBoosY Date: Wed, 23 Jun 2021 01:14:01 -0700 Subject: [PATCH] CMake: fix wx-config --libs output for generators and abs paths Don't prepend "-l" if a dependency is not a library name. Closes https://github.com/wxWidgets/wxWidgets/pull/2402 --- build/cmake/config.cmake | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake index 3157d7fd26..d4912c7599 100644 --- a/build/cmake/config.cmake +++ b/build/cmake/config.cmake @@ -40,16 +40,26 @@ macro(wx_get_dependencies var lib) get_target_property(dep_name ${dep} OUTPUT_NAME) endif() else() - get_filename_component(dep_name ${dep} NAME) + # For the value like $<$:LIB_PATH> + # Or $<$>:LIB_PATH> + string(REGEX REPLACE "^.+>:(.+)>$" "\\1" dep_name ${dep}) + if (NOT dep_name) + set(dep_name ${dep}) + endif() endif() if(dep_name STREQUAL "libc.so") # don't include this library - elseif(dep_name MATCHES "^-(.*)") # -l, -framework, -weak_framework + elseif(dep_name MATCHES "^-(.*)$") # -l, -framework, -weak_framework wx_string_append(${var} "${dep_name} ") - elseif(dep_name MATCHES "^lib(.*)(.so|.dylib|.tbd|.a)") + elseif(dep_name MATCHES "^lib(.*)(.so|.dylib|.tbd|.a)$") wx_string_append(${var} "-l${CMAKE_MATCH_1} ") elseif(dep_name) - wx_string_append(${var} "-l${dep_name} ") + get_filename_component(abs_path ${dep_name} PATH) + if (abs_path) # value contains path + wx_string_append(${var} "${dep_name} ") + else() + wx_string_append(${var} "-l${dep_name} ") + endif() endif() endforeach() string(STRIP ${${var}} ${var})