Windows Toolchain Distribution Updates

Hello Windows users,

As a Valentine's Day gift, I have managed to get the current Azure project to generate MSIs. There was a failure on the last build, due to SIMDOperators module being removed, but that should be resolved soon.

Unfortunately, I was trying to actually package the PDBs for the build, but the agents do not have sufficient space so I will be adjusting that to remove the PDBs during the build.

The MSIs are split into three categories:

  • toolchain (the actual toolchain package)
  • SDK (the development components, i.e. swiftmodules, swiftinterfaces, import libraries)
  • runtime (the runtime component, i.e. dlls)

The rules for generating the MSIs are also in my windows-build repository. There are many improvements that can be made, but this at least provides a nice model for getting started. It should be possible to create the symlinks/copy the modulemaps into the SDK directory during the installation and setup the PATH and LIB variables giving a configuration-free post setup. Patches to improve this are welcome to the GitHub repository :wink:

25 Likes

Nice!

Great work, thanks! I have found two problems trying to use them:

  • For now it seems that the SDK should be installed inside the toolchain (as currently Swift expect the Standard Library inside the Toolchain). The import libraries and Swift interface/module/docs should be installed at C:\Library\Developer\Toolchains\Swift.toolchain\usr\lib\swift\windows\x86_64 instead of C:\Library\Developer\Platforms\Windows.platform\Developer\SDKs\Windows.sdk\usr\lib\swift\windows\x86_64. (I have tried setting the LIB environment variable to the current install path with no success, am I missing something?)
  • The swiftrt.obj object seem to be missing in the current distribution (clang++.exe: error: no such file or directory: 'C:\Library\Developer\Toolchains\Swift.xctoolchain\usr\lib\swift\windows\x86_64\swiftrt.obj')

Thanks!

  • I think that we can create symlinks (or copies) for now. The problem is that using the toolchain directories causes problems when you try to mix up Linux distributions. I think that something like ifsos (effectively import libraries) would help alleviate some of the trouble with that.
  • Ugh, I thought I had put that in, guess not. Thanks for pointing that out! I'll adjust that.
1 Like

The runtime support (registrar) should now be present and as a bonus, the MSI now updates PATH for you!

3 Likes

@compnerd any update on when will windows toolchain release on swift.org site, snapshots also.

@satishb, sorry, I do not control swift.org's releases. As to the snapshots, there are nightly builds on Azure that you can download along with documentation on how to install and use it.

Terms of Service

Privacy Policy

Cookie Policy