ClangImporter.cpp - ClangImporter::createで生成しているclangのコマンドを調べてみた

概要

moaible-swift-memo.hateblo.jp

コマンド生成 - モードによる分岐終了まで

フラグ一覧

参考:
swift-clang/Options.td at ba3b1c672105db284b1e425d4ab7cdc8411f29a3 · apple/swift-clang · GitHub

Swift関連で追加してるマクロ定義一覧

Swift bridging headerで使われるマクロ定義

(おそらくObjCからSwiftを利用する際のマクロ定義群なので、"<# ProductName #>-Swift.h関連だと思われる)

#define SWIFT_NATIVE_ANNOTATION_STRING "__swift native"

macro definition value description
SWIFT_CLASS_EXTRA __attribute__((annotate
(\""SWIFT_NATIVE_ANNOTATION_STRING "\")))
???
SWIFT_PROTOCOL_EXTRA __attribute__((annotate
(\""SWIFT_NATIVE_ANNOTATION_STRING "\")))
???
SWIFT_EXTENSION_EXTRA __attribute__((annotate
(\""SWIFT_NATIVE_ANNOTATION_STRING "\")))
???
SWIFT_ENUM_EXTRA __attribute__((annotate
(\""SWIFT_NATIVE_ANNOTATION_STRING "\")))
???

SDK関連で追加してるマクロ定義一覧

macro definition value description
_ISO646_H_ - Avoid including the iso646.h header because some headers from OS X frameworks are broken by it.
oss apple: lib/Headers/iso646.h Source File
__ISO646_H - 同上
clang: lib/Headers/iso646.h Source File
SWIFT_SDK_OVERLAY_APPKIT_EPOCH 2 AppKit
SWIFT_SDK_OVERLAY_FOUNDATION_EPOCH 8 Foundation
SWIFT_SDK_OVERLAY2_SCENEKIT_EPOCH 3 SceneKit
SWIFT_SDK_OVERLAY_GAMEPLAYKIT_EPOCH 1 GameplayKit
SWIFT_SDK_OVERLAY_SPRITEKIT_EPOCH 1 SpriteKit
SWIFT_SDK_OVERLAY_COREIMAGE_EPOCH 2 CoreImage
SWIFT_SDK_OVERLAY_DISPATCH_EPOCH 2 libdispatch
SWIFT_SDK_OVERLAY_PTHREAD_EPOCH 1 libpthread
SWIFT_SDK_OVERLAY_COREGRAPHICS_EPOCH 0 CoreGraphics
SWIFT_SDK_OVERLAY_UIKIT_EPOCH 2 UIKit

コマンド生成 - 共通箇所