Swift/Win32 旨在提供一个 MVC 模型,用于在 Windows 上编写应用程序。它提供对 Win32 API 的 Swift 友好的封装,很像 MFC 对 C++ 所做的那样。
本项目需要 Swift 5.4 或更高版本。您可以使用来自 swift.org 的快照二进制文件、从 Azure 下载 nightly build,或者从源代码构建 Swift 编译器。
以下示例会话展示了如何使用 CMake 3.16 或更高版本进行构建。
cmake -B build -D BUILD_SHARED_LIBS=YES -D CMAKE_BUILD_TYPE=Release -D CMAKE_Swift_FLAGS="-sdk %SDKROOT%" -G Ninja -S .
ninja -C build SwiftWin32 UICatalog
%CD%\build\bin\UICatalog.exe
CMake 构建将自动通过 mt
工具执行应用程序清单合并,该工具是 Visual Studio 构建工具的一部分。 确保在 x64 Native Tools Command Prompt for VS2019
(或适用于 Visual Studio 版本的相应 shell)下运行构建。
Swift 安装程序还将添加环境变量,请确保在安装工具链后重新启动终端模拟器,以获取所需的环境变量。
虽然为了方便起见,建议使用 CMake,但也支持使用 swift-package-manager 构建此项目。 基于 Swift Package Manager 的构建是 SourceKit-LSP 进行代码补全所必需的。 它还允许在其他使用 SPM 的应用程序中使用 Swift/Win32。 为了使用 SPM 构建此项目,需要额外的构建后步骤才能使用演示应用程序。
以下是已知的限制
swift build --product UICatalog
mt -nologo -manifest Examples\UICatalog\UICatalog.exe.manifest -outputresource:.build\x86_64-unknown-windows-msvc\debug\UICatalog.exe
copy Examples\UICatalog\Info.plist .build\x86_64-unknown-windows-msvc\debug\
.build\x86_64-unknown-windows-msvc\debug\UICatalog.exe
为了访问清单工具 (mt
),构建和测试应在 x64 Native Tools Command Prompt for VS2019 中进行
当前的实现仍在变化中,并且许多我们希望存在的接口尚未实现。 因为清楚地表明缺失的部分可以更容易地专注于需要完成的任务,所以存在许多声明但未实现的接口实例。 如果达到这些站点,大多数站点将中止。 为了能够测试可能与这些情况相互作用的场景,添加了一个特殊条件 ENABLE_TESTING
,允许我们绕过缺失的功能。
您可以通过在调用 SPM 测试命令时添加该标志来运行测试,如下所示:
swift test -Xswiftc -DENABLE_TESTING