当我使用Apportable构建项目时,它假设是Linux / Android平台。我认为这些预处理器标志已设置。
__linux
ANDROID
但是,我的源代码(OpenGL绘图)尚未准备好用于Android,仅适用于iOS。所以我想为Apportable(不是Linux或Android)检测一些预处理器标志,并执行一些特定于iOS的处理。
如何在预处理阶段检测Apportable平台? (什么是Apportable的预定义预处理器标志?)
答案 0 :(得分:2)
您可以使用消息pragma:
轻松验证是否已定义预处理器宏// will always print, to detect cases where file wasn't actually built
#pragma message "-------------------------ALWAYS----------------------------"
// if the macros are defined, the pragma message should be logged
#ifdef __linux
#pragma message "__linux"
#endif
#ifdef ANDROID
#pragma message "ANDROID"
#endif
这将打印出已定义的宏的警告消息:
/.../KTTypes.h:15:9: warning: -------------------------ALWAYS---------------------------- [-W#pragma-messages]
#pragma message "-------------------------ALWAYS----------------------------"
^
/.../KTTypes.h:17:9: warning: __linux [-W#pragma-messages]
#pragma message "__linux"
^
/.../KTTypes.h:20:9: warning: ANDROID [-W#pragma-messages]
#pragma message "ANDROID"
所以是的,ANDROID
和__linux
都是在使用apportable构建时定义的,而在Xcode中构建时未定义。
答案 1 :(得分:1)
ANDROID将由构建系统定义,但是由于Apportable平台具有Android所不具备的众多功能。 APPORTABLE
被定义为通过apportable构建系统表示构建。
您可以在
中找到特定于Apportable版本的其他构建标记~/.apportable/SDK/site_scons/android/ndk.py