cmake - 版本号

2017-09-20  本文已影响0人  木木木君

cmake为工程和程序添加版本号,可以直接在CMakeLists文件中指定

cmake_minimum_required (VERSION 2.6)
project (HELLO_WORLD)
set(SRC_LIST main.c)
set(Hello_world_version_major 1)
set(Hello_world_version_minor 0)

configure_file(
    "${HELLO_WORLD_SOURCE_DIR}/helloConfig.h.in"
    "${HELLO_WORLD_BINARY_DIR}/helloConfig.h"
)

include_directories("${HELLO_WORLD_BINARY_DIR}")

add_executable(hello ${SRC_LIST})

1 .set(Hello_world_version_major 1)set(Hello_world_version_minor 0) 自定义设定的两个变量表示工程的最大版本号和最小版本号。

2 .configure_file:将其他文件修改成cmake中的变量;

3 .configure_file(<input> <output> [COPYONLY] [ESCAPE_QUOTES] [@ONLY])

将文件<input>拷贝到<output>然后替换文件内容中引用到的变量值。

4 .HELLO_WORLD_SOURCE_DIRHELLO_WORLD_BINARY_DIR
是由项目名加上"_SOURCE_DIR"或"_BINARY_DIR"构成,表示项目源目录和二进制目录(即cmake生成的文件下的目录,可以同源目录一致或者不一致);

具体区别参考PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR

5 .接下来,新建helloConfig.h.in文件,而helloConfig.h文件是生成的,不需要我们创建。

//helloConfig.h.in
#define Hello_world_version_major @Hello_world_version_major@
#define Hello_world_version_minor @Hello_world_version_minor@

6 .修改下main.c,打印我们的版本号

#include <stdio.h>
#include "helloConfig.h"

int main()
{
    printf("Hello World\n");
    printf("%d\n",Hello_world_version_minor );
    printf("%d\n",Hello_world_version_major );
    return 0;
}

7 .最后一步,重新构建cmake和make,运行hello.exe。

image.png
上一篇下一篇

猜你喜欢

热点阅读