Makefile CMake-为不同配置生成自定义生成路径
我有一个项目,其生成过程为每个配置生成不同的生成工件,例如,如果使用Makefile CMake-为不同配置生成自定义生成路径,makefile,cmake,Makefile,Cmake,我有一个项目,其生成过程为每个配置生成不同的生成工件,例如,如果使用make a=a0 b=b0启动,它将对象文件构建到builds/a0.b0,生成二进制myproject.a0.b0,最后更新一个不明确的可执行链接,指向最近构建的项目ln-s myproject.a0.b0 myproject。对于本项目,这是一个有用的功能,主要是因为: 它为不同的配置分离对象文件(因此,当我在另一个配置中重建时,我不必使用新的定义和配置集重新编译每个源代码,(不幸的是)这是一个非常常见的过程) 它保留每
make a=a0 b=b0
启动,它将对象文件构建到builds/a0.b0
,生成二进制myproject.a0.b0
,最后更新一个不明确的可执行链接,指向最近构建的项目ln-s myproject.a0.b0 myproject
。对于本项目,这是一个有用的功能,主要是因为:
- 它为不同的配置分离对象文件(因此,当我在另一个配置中重建时,我不必使用新的定义和配置集重新编译每个源代码,(不幸的是)这是一个非常常见的过程)
- 它保留每个配置的二进制文件(因此,如果已经构建了配置,则无需重新构建以使用不同的配置)
- 它复制(或链接)到最后构建的二进制文件,这在测试中很有用
make
,make a=a0
,make b=b0a=a0
而不是指定cmake目标所需的:make myproject-a0.b0
在cmake中可以这样做吗?即:
- 根据输入参数指定生成目录
- 接受参数作为make参数,这些参数可以省略(默认设置),以在makefile级别选择适当的目标(因此无需为新配置重新运行cmake)
cmake-DA=Ax-DB=Bx,然后是任何构建过程?(make/VS/Xcode)我指的是我通过使用make参数而不是cmake参数来限制构建环境。但是,是的,您给出的示例需要输入参数和构建目录,但后者应该生成,以便始终保持一致(因此不可能(容易)离开已建立的结构)。所以cmake-DA=Ax-DB=Bx
我得到了一个生成文件/项目文件/etc,它将在builds/project.Ax.Bx