如何在cmake字符串中进行算术运算

时间:2019-07-04 12:54:31

标签: cmake

我想要做的是在cmake中创建一个自定义命令。但是我想在命令的字符串参数中进行一些操作。

我有2个如下设置的变量。

set(VERSION_MAJOR 1)
set(VERSION_MINOR 0)

我想将VERSION_MAJOR乘以10,然后加上VERSION_MINOR。但是我如何才能像user_version=VERSION_MAJOR * 10 + VERSION_MINOR一样使用user_version。 该命令可以正常工作。

add_custom_command(
...
COMMAND sqlite3 ${DB_FILE} "PRAGMA user_version=${VERSION_MAJOR}"
...
)

但是我想这样使用它。

add_custom_command(
...
    COMMAND sqlite3 ${DB_FILE} "PRAGMA user_version=${VERSION_MAJOR * 10 + VERSION_MINOR}"
...
)

cmake版本:3.5.1

1 个答案:

答案 0 :(得分:1)

您可以使用CMake命令math

set(VERSION_MAJOR 1)
set(VERSION_MINOR 0)

# multiply VERSION_MAJOR by 10 and add VERSION_MINOR
# set MY_VERSION to the resulting value
math(EXPR MY_VERSION "${VERSION_MAJOR} * 10 + ${VERSION_MINOR}")

add_custom_command(
    ...
    COMMAND sqlite3 ${DB_FILE} "PRAGMA user_version=${MY_VERSION}"
    ...
)