将生成的子项目配置文件添加到CMake的主项目中

我正在尝试使用CMake编译我的应用程序,并且出于各种原因,我需要与其一起编译Lua。我的当前设置如下:

project/ CMakeLists.txt ... libs/ CMakeLists.txt ... lua/ CMakeLists.txt ...

我正在使用LuaDist,因为它已经为Lua提供了一个CMake构建系统。问题出现在我尝试从我的项目中包含 lua.h 时,由于它需要 luaconfig.h ,而 luaconfig.h 则是由Lua子项目生成并输出到其二进制目录中,而不是源目录。

在我的主项目中,我做了这样的事情:

include_directories(libs/lua/src/ etc...)

我如何在主项目中同时包含来自子项目的生成文件?

点赞
用户236192
用户236192

如果您通过 add_subdirectory 调用直接包含 lua,则还可以使用include_directories(${lua_BINARY_DIR})(假设lua的 CMakeLists.txt 文件中有 project(lua) 命令)。如果项目命令不同,则变量的名称可能是其他内容,或者您可能需要多个附加的 include_directories,具体取决于所需的头文件在何处...但这应该可以帮助您入门。

2016-09-26 16:42:34