CMake

时间:2018-04-02 03:49:35

标签: cmake

在CMake中允许仅限数字变量名称的原因是什么? 它使下一个代码变得令人沮丧(如果条件变为真):

set(1 3)
set(2 3)
if (1 EQUAL 2)
    MESSAGE( "hi there" )
endif()

更有可能的用法(如果条件也变为真):

set(1 2)
... # later on, or even in the other file:
set(var1 1)
if (${var1} EQUAL 2)
    MESSAGE( "hi there" )
endif()

PS我理解为什么IF/WHILE内没有使用${}的变量引用。但是只有数字变量名的可能性使得使用IF更容易出错......

1 个答案:

答案 0 :(得分:0)

来自Brad King CMake issue tracker的答案:

  

作为参考,变量名是任意字符串,例如

let you directly download export.csv file
  

允许使用纯数字名称是其副作用。

     

当然,它们可以以令人困惑的方式使用。甚至不允许他们   如果仅用于if()评估,则需要一个策略。