我有一个项目“A”,它依赖于另一个项目“B”。
- ProjectB 安装一些头文件,例如 B1.h、B2.h。
- ProjectA 尝试使用 SWIG 创建 B1.h 和 B2.h 的 Python 包装器。
项目A使用:
ExternalProject_Add(ProjectB ...)
将 ProjectB somwhere 编译并安装到二进制目录中。Swig_Add_Library(ProjectB ...)
创建 Python 包装器;此命令创建一个目标_ProjectB
。
我想确保在 SWIG 运行之前安装了 B1.h、B2.h ,因此我添加了以下命令:
add_dependencies(_ProjectB ProjectA)
在 Windows 上,这可以正常工作。
但是在 Linux 上,add_dependencies
不考虑该命令,它给出:
.../ProjectA.i: 111: Error: Unable to find 'B1.h'
.../ProjectA.i: 112: Error: Unable to find 'B2.h'
我确信提供给 SWIG 的包含目录是正确的:确实,当我make
第二次运行时,这是有效的,因为 ProjectB 是通过第一次调用成功安装的make
.
我使用 CMake 3.13.5。
任何帮助都会很棒!