验证CMake缓存变量长度

时间:2018-12-17 08:50:19

标签: cmake

我正在尝试使CMake(3.9.6)为用户生成有用的错误。

SET(VERSION_NUMBER_MAJOR_STR 1 CACHE STRING "use 1 digit")
SET(VERSION_NUMBER_MINOR_STR 0 CACHE STRING "use 1 digit")

string(LENGTH "${VERSION_NUMBER_MAJOR_STR}" VERSION_NUMBER_MAJOR_LEN)
string(LENGTH "${VERSION_NUMBER_MINOR_STR}" VERSION_NUMBER_MINOR_LEN)

if(VERSION_NUMBER_MAJOR_LEN GREATER 1)
message(FATAL_ERROR "VERSION_NUMBER_MAJOR_STR=${VERSION_NUMBER_MAJOR_STR} Too long, use 1 digit")
endif()

if(VERSION_NUMBER_MINOR_LEN GREATER 1)
message(FATAL_ERROR "VERSION_NUMBER_MINOR_STR=${VERSION_NUMBER_MINOR_STR} Too long, use 1 digit")
endif()

这感觉有些笨拙,有更好的方法吗?

这让我感觉笨拙:

  • 未为潜在的CMake GUI用户提供限制,在输入时会发生限制。
  • 代码分为多行。我需要先提取长度。
  • 在检查它们后,我用这些多余的变量污染了变量名称空间。

我想我可以将其移动到函数中,但是我感觉这里缺少一些东西。

0 个答案:

没有答案