Split Windows library build scripts from CI#13478
Merged
straight-shoota merged 8 commits intocrystal-lang:masterfrom May 24, 2023
Merged
Split Windows library build scripts from CI#13478straight-shoota merged 8 commits intocrystal-lang:masterfrom
straight-shoota merged 8 commits intocrystal-lang:masterfrom
Conversation
oprypin
reviewed
May 18, 2023
oprypin
reviewed
May 18, 2023
straight-shoota
approved these changes
May 23, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR extracts the build scripts for the various third-party libraries in the Windows CI jobs into individual PowerShell scripts.
These scripts can be run from any directory. They all require CMake and Git;
setup.ps1will try to detect them from several common locations, even if they aren't present in%PATH%. Additionally, building PCRE requires 7-Zip, and building OpenSSL requires NASM and Strawberry Perl.All those scripts support static and dynamic builds; the latter adds
-dynamicto the names of all import libraries, in accordance with #13473. To build the libraries as DLLs, start from the MSVC developer prompt: (Strawberry Perl adds a lot of things to%PATH%, so it is a good idea to use the portable installation and keep%PATH%intact outside building OpenSSL)This will place all the import libraries inside
.\libsand all the DLLs inside.\dlls. To build static libraries simply remove the-Dynamic; static and dynamic builds should use separate build trees to avoid surprising behavior.This PR also upgrades libxml2 from 2.10.3 to 2.11.3, and OpenSSL from 3.0.7 to 3.1.0.
Eventually the scripts will be moved to a completely different place where all the libraries (and possibly the installer too) will be published as a single artifact.