自动生成的源和cmake配置:开发人员构建与用户构建

时间:2016-05-30 07:30:10

标签: cmake packaging

这个问题是关于设置CMake配置文件,以便为普通用户和共同开发者提供服务。

两个用户组都需要编译。它们之间的区别在于,共同开发人员在编译之前将运行许多代码生成器或转换器,如flex/bisonswigpod2man。这些工具不应与我们的源包一起提供,但需要作为外部依赖。但是,普通用户应该提供所有自动生成的代码,这样他们就不需要安装和运行除cmake,make和编译器之外的任何工具。

现在的问题是:如何设置主CMakeLists.txt以便在cmake时我们只编译,而在cmake <expert flag>时,所有辅助工具都需要并运行?作为一个明显的改进,更细粒度的标志应允许打开或关闭单个工具。

1 个答案:

答案 0 :(得分:3)

一样简单

option(DEVELOPER_MODE "This will run developer tools during build" OFF)

...

if(DEVELOPER_MODE)
 add targets for flex and stuff
endif()

现在使用cmake -D DEVELOPER_MODE=YES ..配置您的版本以启用它。