cmake:构建程序的多个版本

时间:2010-07-19 06:41:23

标签: c++ cmake

我想编写一个cmake脚本,它将针对多个版本的头文件编译相同的源代码。目的是能够轻松创建与早期版本的API向后兼容的共享库。

我正在寻找有关最佳方法的示例和指示。

我是c ++和cmake的新手,所以非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

这个答案有点偏离我的头脑,所以带上一粒盐。

在您的源代码中执行以下操作:

#ifdef Version_1_0
#include "Header_1_0.h"
#endif

#ifdef Version_2_0
#include "Header_2_0.h"
#endif

在CMakeLists.txt文件中执行以下操作:

add_library ( Foo_Version_1_0 SHARED Foo.cxx Header_1_0.h )
# When you compile Foo_Version_1_0, define "Version_1_0"
set_target_properties ( Foo_Version_1_0 PROPERTIES COMPILE_FLAGS -DVersion1_0 )

# Likewise for Version_2_0
...

完成构建后,您应该有两个名为libFoo_Version_1_0.so和libFoo_Version_2_0.so的库。

干杯,
-Dan