你可以做的是:
然后用“详细选项”编译源代码:
cd swift-source/swift
utils/build-script --verbose
这表明所有的命令,其包括那些预处理.gyb
文件的文件。特别是,你会发现像
在/ usr/bin中/ Python的/路径/到/ SWIFT代码/ SWIFT/utils的/ GYB -DunicodeGraphemeBreakPropertyFile = /路径/到/ SWIFT代码/ SWIFT/utils的/ UnicodeData/GraphemeBreakProperty.txt -DunicodeGraphemeBreakTestFile =/path/to/swift-source/swift/utils/UnicodeData/GraphemeBreakTest.txt -DCMAKE_SIZEOF_VOID_P = 8 -o/path/to/swift-source/build/Ninja-DebugAssert/swift-macosx -x86_64/stdlib/public/core/8/Integers.swift.tmp Integers.swift.gyb & &/opt/local/bin/cmake -E copy_if_different/path/to/swift-source/build/Ninja-DebugAssert/swift -macosx-x86_64/stdlib/public/core/8/Integers.swift.tmp /path/to/swift-source/build/Ninja-DebugAssert/swift-macosx-x86_64/stdlib/public/core/8/Integers.swift & &/opt/local/bin/cmake -E删除/path/to/swift-source/build/Ninja-DebugAssert/swift-macosx-x86_64/stdlib/public/core/8/Integers.swift.tmp
这表明Python脚本swift-source/swift/utils/gyb
被调用来 预处理Integers.swift.gyb
文件,并且将结果复制到
/path/to/swift-source/build/Ninja-DebugAssert/swift-macosx-x86_64/stdlib/public/core/8/Integers.swift
您也可以调用脚本本身,使用上述命令为模板:
cd swift-source/swift/stdlib/public/core
/usr/bin/python /path/to/swift-source/swift/utils/gyb \\
-DunicodeGraphemeBreakPropertyFile=/path/to/swift-source/swift/utils/UnicodeData/GraphemeBreakProperty.txt \\
-DunicodeGraphemeBreakTestFile=/path/to/swift-source/swift/utils/UnicodeData/GraphemeBreakTest.txt \\
-DCMAKE_SIZEOF_VOID_P=8 \\
-o Integers.swift.tmp Integers.swift.gyb
此链接可能会帮助您https://www.quora.com/Is-it-possible-to-convert-a-Python-source-code-to-another-programming-language –