CMake - 使用 find_package 中的变量链接用于调试和发布版本的不同库

CMake - Linking different libraries for Debug and Release builds with variable from find_package

我想 link 仅在调试版本中使用某些库,而不是在发布版本中使用。在 target_link_libraries 中使用 debug 标志,如前所述 here 仅适用于紧跟在标志之后的库。但是,我想将它应用于 find_package 中变量中指定的所有库,如下所示:

find_package(Cairomm)
add_library(Paint Painter.cpp)
target_link_libraries(Paint
  debug ${Cairomm_LIBRARIES}

ldd 检查生成的二进制文件表明,Cairomm_LIBRARIES 中指定的第一个库确实被省略了,但是以下是 linked.

我能否以某种方式将 debug 标志应用于变量中的所有库?

使用循环:

foreach (_lib ${Cairomm_LIBRARIES})
    target_link_libraries(Paint debug ${_lib})
endforeach()