Cmake 将生成器表达式与添加依赖项一起使用
我有一个名为Cmake 将生成器表达式与添加依赖项一起使用,cmake,Cmake,我有一个名为Foo.Compile的目标,它构建了我的主程序 add_executable(Foo.Compile ...) 然后我有一个名为Foo.Process的实用程序目标,它依赖于已经构建的可执行文件并执行一些操作 add_custom_target(Foo.Process) add_dependencies(Foo.Process Foo.Compile) 但我只希望它在发布版本中运行,因为它很慢。因此,我创建了一个名为Foo的新目标,这是用户实际构建的。在发布版本中,这应取决于F
Foo.Compile
的目标,它构建了我的主程序
add_executable(Foo.Compile ...)
然后我有一个名为Foo.Process
的实用程序目标,它依赖于已经构建的可执行文件并执行一些操作
add_custom_target(Foo.Process)
add_dependencies(Foo.Process Foo.Compile)
但我只希望它在发布版本中运行,因为它很慢。因此,我创建了一个名为Foo
的新目标,这是用户实际构建的。在发布版本中,这应取决于Foo.Process
,但在其他配置中则不应如此。所以我想我可以做到这一点:
add_custom_target(Foo)
add_dependencies(Foo $<$<CONFIG:Release>:Foo.Process>)
添加自定义目标(Foo)
添加依赖项(Foo$)
但这给了我一个错误:
The dependency target "$<$<CONFIG:Release>:Foo.Process>" of
target "Foo" does not exist.
的依赖项目标“$”
目标“Foo”不存在。
问题似乎是add_dependencies
不支持生成器表达式,所以我想我应该使用target_link_库
,我知道它支持生成器表达式。但是,这给了我一个错误,您不能将target\u link\u库
用于公用事业项目
请注意,我不能使用if(CMAKE\u BUILD\u TYPE==Release)
,因为我需要支持像VisualStudio这样的多配置生成器,所以我认为我必须使用生成器表达式
我该怎么办