有没有办法在CMakeLists.txt的某个指令中为#included
资源创建别名?
我正在寻找一种在CMakeLists.txt中定义内容的方法,以便出现任何全局资源,例如
#include <some/global/dependency/file.h>
将别名为正确的资源,因此CMake也会在以下位置查找
#include "../file/is/here/file.h"
#include "file.h"
#include <alias.h>
为什么?
我正在开发一个带有容器化构建系统的非常复杂的项目。意味着,应该进行大量的手工工作,以使项目在任何IDE中都能很好地运行。实际上,主项目中有很多子项目被单独编译,具有大量专用配置。
我使用CLion作为我的IDE。 CLion支持CMake开箱即用,但我的项目没有使用cmake :)我通过使用include_directories()
指令简单地包含很多文件夹(带有头文件)创建了自定义CMakeLists.txt文件,现在它非常有用好。它能够识别符号/导航/宏生成并构建包含文件的良好索引。
但我有这个问题,在某些文件中,CLion无法识别文件路径,因为#include
指的是我的真实文件系统中不存在的全局(预构建/容器化)路径/文件,但通常,任何这种资源存在于不同路径下的项目中。所以我想知道是否有办法指示CMake执行以下操作:
#include
内容
如果您可以通过更好的术语编辑来帮助我改进问题和标题,我将不胜感激......&#39; ...
答案 0 :(得分:1)
CMake本身并不提供编译器,它甚至不是构建工具。因此,如果编译器不能替换包含目录&#34; on fly&#34;,CMake就不能这样做。
如果您允许复制标题 - 请将它们复制到正确的位置,这样include_directories()
就可以了。
如果您被允许复制和修改源,您可以将它们复制到新位置并在它们上运行扫描程序,这会修改#include
指令。
否则你运气不好。