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

bur*_*aya 5 cmake

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

我设置了 2 个变量,如下所示。

set(VERSION_MAJOR 1)
set(VERSION_MINOR 0)
Run Code Online (Sandbox Code Playgroud)

我想将 VERSION_MAJOR 乘以 10,然后添加 VERSION_MINOR。但我怎样才能像使用 user_version 这样呢user_version=VERSION_MAJOR * 10 + VERSION_MINOR?这个命令工作正常。

add_custom_command(
...
COMMAND sqlite3 ${DB_FILE} "PRAGMA user_version=${VERSION_MAJOR}"
...
)
Run Code Online (Sandbox Code Playgroud)

但我想像这样使用它。

add_custom_command(
...
    COMMAND sqlite3 ${DB_FILE} "PRAGMA user_version=${VERSION_MAJOR * 10 + VERSION_MINOR}"
...
)
Run Code Online (Sandbox Code Playgroud)

cmake版本:3.5.1

ser*_*gej 6

您可以使用 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}"
    ...
)
Run Code Online (Sandbox Code Playgroud)