CMake在命令行上传递列表

Mat*_*gan 4 command-line list cmake

我需要运行swig作为我的cmake构建系统的一部分.我希望用户能够指定要传递给swig的语言列表,并在命令行中指定它们.

$ cmake -DSWIG_LANGUAGES=java,scala <path to cmake_source_dir>
Run Code Online (Sandbox Code Playgroud)

是否有内置的方法让cmake来处理这个问题?

tam*_*nez 8

您可以使用分号分隔列表项.由于分号是类似于unix的shell中的特殊字符,因此您需要将其转义或使用引号.以下任何命令都有效:

cmake -DSWIG_LANGUAGES=java\;scala ...
cmake "-DSWIG_LANGUAGES=java;scala" ...
cmake '-DSWIG_LANGUAGES=java;scala' ...
Run Code Online (Sandbox Code Playgroud)