CMake脚本的命名约定是什么?

时间:2015-06-24 18:16:07

标签: cmake naming-conventions filenames conventions convention

我知道CMake使用标准名称“CMakeLists.txt”和p函数直接在构建过程中调用脚本。

我有一些CMake代码用于将文件转换为C ++字符串,然后可以使用add_subdirectory指令将其烘焙到程序中。我的根CMakeLists文件中的相关代码如下所示(当然大大简化):

#include

(在实际代码中,我为每个需要变成字符串的文件调用add_custom_command( OUTPUT ${CMAKE_BINARY_DIR}/path/to/example.json.txt COMMAND ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${STRING_PATH} -P BuildString.cmake DEPENDS ${CMAKE_SOURCE_DIR}/path/to/example.json WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) add_custom_target(strings DEPENDS ${CMAKE_BINARY_DIR}/path/to/example.json.txt) ,然后将所有输出文件名作为列表传递给add_custom_command。)

这是BuildString.cmake:

add_custom_target

如您所见,BuildString.cmake只接受一个输入文件,并将该文件的内容(使用set(DELIMITER "") set(SOURCE ${CMAKE_ARGV1}) set(BUILD ${CMAKE_ARGV2}) set(PATH ${CMAKE_ARGV3}) file(READ ${SOURCE}/${PATH} STRING) # add semicolons back into string string(REGEX REPLACE ";" "\\\\;" STRING "${STRING}") file(WRITE ${BUILD}/${PATH}.txt R\"${DELIMITER}\(${STRING}\)${DELIMITER}\") 作为分隔符以C ++原始字符串文字符号包装)输出到构建目录中。

我应该将BuildString.cmake称为什么?约定是使用全部小写的下划线(build_string.cmake),还是更低的驼峰情况(buildString.cmake)?或者名称应该是名词而不是动词(StringBuilder.cmake)?

(作为旁注,如果你能看到一种不相关的方式我可以改进这些代码,那也值得赞赏。)

1 个答案:

答案 0 :(得分:4)

There's a convention for CMake modules: snake-case function_or_macro() is implemented in CamelCase FunctionOrMacro.cmake file. So when in doubt, use CamelCase.

And use verbs, nouns are for classes.