CMake inlucde项目文件没有文件夹前缀

时间:2017-03-20 17:17:21

标签: c++ cmake

我的项目结构如下:

-Engine
 |-Shaders
 | '-shader.glsl
 |-source
 | |-Math
 | |'- matrix.hpp
 | | - vector.hpp
 | '-Lua
 | |'-lua_state.hpp
 '-CMakeLists.txt 

我使用CMake作为构建系统,我的问题是:

如何在不使用文件夹路径前缀的情况下将matrix.hpp包括在lua_state.hpp中?我的意思是改为在lua_state.hpp #include "../Math/matrix.hpp"中使用,就像这样包含 - > #include "matrix.hpp",有什么方法可以用CMake做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以指定编译器的包含路径(-I选项) 要将其包含在所有目标中(docs

include_directories(source/Math)

或使用目标属性(docs

target_include_directories(yourAppOrLibTargetName PRIVATE source/Math)

答案 1 :(得分:0)

通过调用include_directories command将目录添加到包含路径。

您还需要确保使用add_libraryadd_executable将头文件声明为您正在创建的库或可执行文件的依赖项。根据您列出的文件,我无法告诉您需要什么。