-
It seems you only support MSVC. Any plans to make it work with MinGW-W64 too? |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
This library doesn't have any C code in it, I'm not sure what MinGW would be useful for. |
Beta Was this translation helpful? Give feedback.
-
But it seems you need other part of the C Toolchain (linker, resource compiler,...), isn't it? What MSVC can, MinGW-W64 can. |
Beta Was this translation helpful? Give feedback.
-
What exactly the Windows SDK is used for? I think you use the C Toolchain of it to build your project. If it's only about headers then I think MinGW-W64 should work, too. It also shipped with itself the headers and libraries needed to develop with the Windows API, albeit not as complete as Windows SDK. |
Beta Was this translation helpful? Give feedback.
-
The windows SDK is used for the import libraries and SDK headers (the system DLLs are needed at runtime). The resource compiler isn't used, but the manifest tool is. At some point, I'd like to implement the needed functionality in MinGW still defaults to BFD for the linker, so that is not viable (I know @mstorsjo has done extensive work to support lld and it can be used). Beyond that, the intent is to not require additional dependencies at distribution time such as MinGW, only system libraries and the code being built. Additionally, by using the Microsoft vended SDK gives 0-day access to new APIs. The incompleteness of the SDK is also a concern - the expectation would have to be that it is 100% identical to the platform SDK at which point it has questionable value. One final point is that the target triple for MinGW is different and the MinGW port for Swift has significantly bit-rotted and will need to be revived before that is even possible to even use with Swift. |
Beta Was this translation helpful? Give feedback.
The windows SDK is used for the import libraries and SDK headers (the system DLLs are needed at runtime).
The resource compiler isn't used, but the manifest tool is. At some point, I'd like to implement the needed functionality in
llvm-mt
to drop the need for the manifest tool. The MSVC linker is not used,lld
is used by default with SPM, you would need to explicitly opt into link. The C toolchain is not used at all as there's no C code currently in the library, it is entirely Swift code. Note that the manifest tool is only used as a convenience, it is not required as the manifest can be stored next to the executable. Effectively, no MSVC tools are used.MinGW still defaults to BFD for th…