这个问题是关于设置CMake配置文件,以便为普通用户和共同开发者提供服务。
两个用户组都需要编译。它们之间的区别在于,共同开发人员在编译之前将运行许多代码生成器或转换器,如flex/bison
,swig
或pod2man
。这些工具不应与我们的源包一起提供,但需要作为外部依赖。但是,普通用户应该提供所有自动生成的代码,这样他们就不需要安装和运行除cmake,make和编译器之外的任何工具。
现在的问题是:如何设置主CMakeLists.txt
以便在cmake
时我们只编译,而在cmake <expert flag>
时,所有辅助工具都需要并运行?作为一个明显的改进,更细粒度的标志应允许打开或关闭单个工具。
答案 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 ..
配置您的版本以启用它。