Foundation on Windows (CI/Nightlies)

The dependency to ICU may disappear sometime, but the rest will remain, which will be 30MB.

You should see my previous post about the split of the SDK content into the pure SDK content and the runtime content. In fact, right now, I am generating a MSI which installs just the DLLs that need to be redistributed.

@RUSshy - it already is at the same level of a C++ library - if you have a dependency on boost, you need to distribute that :slight_smile:. Take a look at Azure DevOps Services | Sign In - the runtime is ~5MiB.

I don't think that swiftDemangle and swiftRemoteMirror are absolutely required (unless you are using remote mirrors or you are programatically using the undeocration API).

@Daniel_Mullenborn:

For a more complex program, I also needed swiftDispatch.dll. I did not find swiftDemangle.dll and did not include swiftRemoteMirror.dll. For some strange reason I needed both icu*64 and icu*63. So my full list of DLLs is the following, it is tested on a "naked" Windows 10:

from C:\Library\Developer\Toolchains\unknown-Asserts-development.xctoolchain\usr\bin:

BlocksRuntime.dll
dispatch.dll
swiftCore.dll
swiftMSVCRT.dll
swiftSwiftOnoneSupport.dll
swiftWinSDK.dll

from C:\Library\Developer\Platforms\Windows.platform\Developer\SDKs\Windows.sdk\usr\bin:

Foundation.dll
FoundationNetworking.dll
FoundationXML.dll
swiftDispatch.dll

from C:\Library\icu-63.1\bin:

icudt63.dll OK
icuin63.dll OK
icuio63.dll OK
icutu63.dll OK
icuuc63.dll OK

from C:\Library\icu-64.2\bin:

icudt64.dll OK
icuin64.dll OK
icuio64.dll OK
icutu64.dll OK
icuuc64.dll OK

from C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.16.27012\x64\Microsoft.VC141.CRT:

concrt140.dll
msvcp140.dll
msvcp140_1.dll
msvcp140_2.dll
vccorlib140.dll
vcruntime140.dll

The reason for the two versions of ICU is due to the builds in use. I need to update the rules for the builds to all move to 64.1. You will need swiftDispatch.dll if you want to use Dispatch. swiftSwiftOnoneSupport.dll should not be needed by users - that is only needed when building with -Onone which is unlikely to be shipped. The CRT is supposed to be a separate product from Microsoft - the MSVC redistributable. The Foundation libraries are only needed if you are using Foundation.