1

我有一组用 Swift 包管理器和另一个包管理器(我们称之为 PMX)解决的 C++ 包。

PMX 无法解析其中一个依赖项,但我必须在其上运行 CI。是否有可能以某种方式检查包是否正在使用 SPM 系统编译并包含适当的导入,如果它不使用 SPM,则不包含这些标头?

例子:

#if defined(_WIN32) || defined(_WIN64) || defined(__APPLE__)
#include <MyFile.h>
#endif

我想要类似的东西:

#if defined(_WIN32) || defined(_WIN64) || (defined(__APPLE__) && defined(SWIFT_PACKAGE_MANAGER))
#include <MyFile.h>
#endif

这样的事情可能吗?

4

1 回答 1

1

找到了一个解决方案,这个标志存在并且它被称为SWIFT_PACKAGE

这个解决方案对我来说非常有效:

#if defined(_WIN32) || defined(_WIN64) || (defined(__APPLE__) && defined(SWIFT_PACKAGE))
#include <MyFile.h>
#endif

博客文章提到了这个问题

于 2021-10-25T14:12:31.390 回答