在生成器表达式中使用列表" target_link_libraries"命令(不需要的-l标志)

时间:2018-05-09 02:52:17

标签: cmake ninja

我试图使用生成器表达式为我的下游版本链接导入的库。 (使用cmake 3.11.1 btw)

由于TARGET_LINK_LIBRARIES中的生成器命令不接受空白,我发现我需要使用' JOIN'命令。这似乎是在我生成的ninja文件中添加了一个不需要的-l标志,但是打破了构建。

rownames(my_df) = c(my_list$'1'$year, my_list$'2'$year)
my_df
     [,1] [,2] [,3] [,4] [,5]
1900    1    2    3    4    5
1901   11   12   13   14   15

我的Ninja文件中的结果是:

# link dependencies
TARGET_LINK_LIBRARIES(TGT1 
  "$<JOIN:$<$<BOOL:${DOWNSTREAM_PIPELINE}>:${IMPORTED_LIBS_FOR_TGT1}>, >")
TARGET_LINK_LIBRARIES(TGT2 
  "$<JOIN:$<$<BOOL:${DOWNSTREAM_PIPELINE}>:${IMPORTED_LIBS_FOR_TGT2}>, >" $<TARGET_FILE:TGT1>)

这里发生了什么?

感谢@StephenNewell提示。由于列表没有空格,我可以使用BOOL生成器表达式。我只是在引号错误的地方遇到问题。以下作品:

LINK_LIBRARIES = -llibModuleA libModuleB libModuleC ...

0 个答案:

没有答案