我正在寻找一种方法,该方法可以调用命令来将CMake中的特定文件编译为变量。这与在compile_commands.json中显示的“命令”相同。格式为:
%gcc% %bunch of -DSOMETHINGS% %bunch of -Isome/files% -o %cpp files% ... etc.
我正在移植到CMake的项目中,记录了文件中被调用的编译器命令,我正在更改该文件以使用configure_file cmake机制。编译特定对象之前需要配置的文件。
在搜索时,我发现这个答案几乎是相同的问题:cmake - get the used commandline flags "-D"。但是,它已经使用了3年多,仅涉及检索“ -D”标志的列表,用户可以通过手动跟踪来解决。我认为这不是最理想的。如果将此命令写入compile_commands.json,我应该能够以某种方式访问它,对吗?究竟何时编写compile_commands.json?我可以进行任何更改以将其写入诸如非功能性虚拟目标之类的文件,然后访问它并使用它在实际项目中配置我的文件吗?
我知道这与CMake的精神背道而驰,我喜欢这样的事实,即我自己不必手动管理这些标志,但是我发现很难相信没有办法让它们成为一个标志。特定文件,我是否忽略了某些内容?
我看过CMake properties on source files,并使用get_property来检索它们,但是我不相信我可以从中重建整个命令。
我目前正在生成Unix makefile,尽管该机制在生成MSVC项目文件时最佳地也应该起作用,但我知道CMAKE_EXPORT_COMPILE_COMMANDS不会。
对此表示感谢,敬请谅解!