* Ignore MSI installers with no cabs
At least aarch64, but possibly more, reference MSI installers that don't actually reference any cabinet files. These are utterly fucking worthless, so we just ignore them instead of show an error. VS install is such a garbage fire.
* Fix lints
* Rustfmt
* Update CHANGELOG
* Add --use-winsysroot-layout option to splat
This option changes the layout of the splat a little to support
/winsysroot (ref: https://reviews.llvm.org/D95534) which is more
convenient when compiling with clang-cl.
Example:
`target\release\xwin --accept-license --arch x86_64 --variant desktop splat --include-debug-libs --include-debug-symbols --preserve-ms-arch-notation --disable-symlinks --use-winsysroot-style --output winsysroot`
* Cleanup
* Format
* Fix lint
---------
Co-authored-by: Scott Graham <scott.github@h4ck3r.net>
* Cleanup, add docs
* Improve mapping structure
The mapping was previously just a flat list of files and symlinks, but
this meant there was both a ton of duplicated path information, as well
as unnecessarily embedding the sdk version information as part of the
path
* Fix path shenanigans
* Fixup option
* Update README for minimize
* Remove unneeded files
* Update CHANGELOG
* Provide timeouts for reading from sockets
When Microsoft's CDNs are having a bad day, or when a user has limited
bandwidth, the download process can stall and die permanently.
This change allows xwin to recognise when this has happened and do something about it.
* Allow user configuration of timeout
* Default to 60s if user does not specify
---------
Co-authored-by: Jake Shadle <jake.shadle@embark-studios.com>
* Fix retrieval of latest SDK
* Use insta for deterministic test
* Update deps
Fixes openssl bullshit (shocking!) but introduces several multiple versions :p
* Fix lint
* dockerfile: Also replace `ld` with `ld.lld`
When replacing the compilers with `clang(++)`, while leaving the default
linker at gcc, it fails because it doesn't recognize (`ar`chives of)
LLVM IR bitcode objects:
= note: /usr/bin/ld: /tmp/cargo-install26EVLj/release/deps/libzstd_sys-054e18b4564e3c5f.rlib: error adding symbols: file format not recognized
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Solve this by also (suggesting to) replace `ld` with LLVM's `ld.lld`.
* Fix lints
* Remove pointless macos
Co-authored-by: Jake Shadle <jake.shadle@embark-studios.com>
* add symlinks for the sdk version in sdk/lib and sdk/include
This makes the sdk/ tree follow Visual Studio's layout, allowing these
paths to work as expected with clang-cl's /winsdkdir and /vctoolsdir
options.
* symlink sdk/Include -> sdk/include and sdk/Lib -> sdk/lib
Because again, this is the layout that clang-cl expects.
* Rustfmt
* Add test with newly supported flags
* Skip new test config on CI
* Ensure output is deterministic
Turns out I was filtering out headers with the same name..but different
contents. Oops. But now one cares about Windows Store so it's fine. ;)
* Add tests for compilation and determinism
* Don't gate release on test
* Fix lints
* Ignore older console
* Add required target
* Add symlinks
* Print usr/bin
* Fix symlinks