cmake - 双引号是什么意思

时间:2018-06-06 13:14:26

标签: cmake

以下代码来自CMakeLists.txt文件。它还构建并安装了一个使用cmake的库。我的问题是BINARY_DIRCONFIGURE_COMMAND之间有什么区别,一个使用双引号而另一个不使用?

ExternalProject_Add(simple_amqp
  GIT_REPOSITORY    https://github.com/alanxz/SimpleAmqpClient.git
  GIT_TAG           master
  SOURCE_DIR        "${CMAKE_BINARY_DIR}/simpleamqp-src"
  BINARY_DIR        "${CMAKE_BINARY_DIR}/simpleamqp-build"
  CONFIGURE_COMMAND ${CMAKE_EXE} ../simpleamqp-src 
  BUILD_COMMAND     ${MAKE_EXE} -j4
  INSTALL_COMMAND   sudo ${MAKE_EXE} install
  TEST_COMMAND      ""
)

1 个答案:

答案 0 :(得分:1)

双引号用于转义CMake中的某些特殊字符,主要是分号。在CMake中,分号充当参数分隔符,即使它是由变量的扩展产生的。在(不太可能)变量CMAKE_BINARY_DIR包含分号的情况下,${CMAKE_BINARY_DIR}/simpleamqp-src将被视为两个参数,而"${CMAKE_BINARY_DIR}/simpleamqp-src"将是单个参数。

然而,鉴于CMake的语言有时候有点模糊和深奥,真正的解释更接近"某些行是复制的 - 从使用引号的代码中粘贴,有些是由认为[不]要求的人编写的,并且......"

要详细了解CMake语法,引用和转义,您可以阅读其文档,尤其是section about quoted arguments