CMake - 为不同的配置构建自定义构建路径

时间:2014-09-23 18:40:04

标签: makefile cmake

我有一个项目,其制作过程为每个配置生成不同的构建工件,例如如果使用make a=a0 b=b0启动,它会将对象文件构建到builds/a0.b0,生成二进制myproject.a0.b0,最后更新不明确的可执行链接以指向最近构建的项目ln -s myproject.a0.b0 myproject。对于这个项目,这是一个有用的功能,主要是因为:

  • 它为不同的配置分隔目标文件(因此当我在另一个配置中重建时,我不必使用新的定义和配置集重新编译每个源,(不幸的是)一个非常常见的过程。)
  • 它保留了每个配置的二进制文件(因此,如果已经构建了它,则不需要重建以使用其他配置)。
  • 它复制(或链接)到最后构建的二进制文件,这对测试非常有用。

现在,这是在一个丑陋的几十年前的非便携式Makefile中实现的。我想在CMake中重现相同的行为,以便在其他平台上更容易构建,但我无法以任何合理的方式重现它。这似乎是用add_library / executable添加目标,但是对于每个可能的输入参数排列这样做似乎是错误的。而且我不确定我是否可以正确使用,允许makemake a=a0make b=b0 a=a0而不是指定cmake目标需要的内容:make myproject-a0.b0

这可以在cmake中做到吗?即:

  • 根据输入参数指定构建目录。
  • 接受参数作为make参数,可以省略(默认)以在makefile级别选择适当的目标(因此不需要为新配置重新运行cmake)。

0 个答案:

没有答案