CMake - 使用find_package中的变量为Debug和Release构建链接不同的库

时间:2015-03-24 17:50:54

标签: c++ cmake

我想仅在Debug版本中链接到某些库,而不是在Release版本中。使用debug中提到的target_link_libraries标记here仅适用于紧跟在标记之后的库。但是,我想将它应用于find_package变量中指定的所有库,如下所示:

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

使用ldd检查生成的二进制文件,显示Cairomm_LIBRARIES中指定的第一个库确实已省略,但以下内容已链接。

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

1 个答案:

答案 0 :(得分:2)

使用循环:

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