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

Add generated subproject configure file to main project in CMake

我正在尝试使用 CMake 编译我的应用程序,由于各种原因我需要用它编译 Lua。我目前的设置如下:

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

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

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

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

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

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