我正在FindXXX.cmake
为外部 C 库编写脚本。我希望我的脚本提供有关库版本的信息。但是,该库仅以函数的形式提供此信息,该函数将版本号作为字符串返回。
FindXXX.cmake
我想我可以通过即时编译以下 C 程序来提取版本号:
#include <stdio.h>
#include "library.h"
int main() {
char version[256];
get_version(version);
puts(version);
return 0;
}
为了让它工作,CMake 应该在配置时编译和运行上面的程序,并使用它打印的信息作为版本标识符。我知道如何做后者(execute_process
),我几乎知道如何做前者:CheckCSourceRuns
想到了,但我不知道如何捕获生成的可执行文件的标准输出。
TL; DR:有没有办法编译一个程序,运行它并在生成时从 CMake 捕获它的标准输出?