我有一组用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
这样的事情可能吗?
找到了解决方案,这个标志存在,它被称为SWIFT_PACKAGE
这个解决方案对我来说非常有效:
#if defined(_WIN32) || defined(_WIN64) || (defined(__APPLE__) && defined(SWIFT_PACKAGE))
#include <MyFile.h>
#endif
提到这个问题的博客文章