我有一个项目,其制作过程为每个配置生成不同的构建工件,例如如果使用make a=a0 b=b0
启动,它会将对象文件构建到builds/a0.b0
,生成二进制myproject.a0.b0
,最后更新不明确的可执行链接以指向最近构建的项目ln -s myproject.a0.b0 myproject
。对于这个项目,这是一个有用的功能,主要是因为:
现在,这是在一个丑陋的几十年前的非便携式Makefile中实现的。我想在CMake中重现相同的行为,以便在其他平台上更容易构建,但我无法以任何合理的方式重现它。这似乎是用add_library / executable添加目标,但是对于每个可能的输入参数排列这样做似乎是错误的。而且我不确定我是否可以正确使用,允许make
,make a=a0
,make b=b0 a=a0
而不是指定cmake目标需要的内容:make myproject-a0.b0
。
这可以在cmake中做到吗?即: