Windows BTLS assembler build support (cygwin/msvc). #11234
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add support for BTLS assembler build on Windows (cygwin/msvc). Building BTLS with assembler support on Windows requires several additional build tools (except cmake) for both cygwin/msvc builds.
On cygwin, perl and yasm will be needed and on msvc, ninja, perl and yasm. On msvc builds BTLS doesn’t support Visual Studio generator when building with assembler support, so this commit adds support for ninja build system covering that scenario. This commit adds support for auto detection of needed build tools and enable assembler builds if all needed tools have been identified as available. Commit also fixes the execution of msbuild on CI to just use the original PATH variable instead of the cygwin PATH to make sure correct version of identified build tools gets used (Windows version of git, ninja, perl and yasm). Both cygwin and msvc build will use nasm compiler (through use of yasm) since generated assembler won’t compile with mingw’s gcc version.
PR also include fix for BTLS password encoding on Windows that cause test failures when running on CI.