31 Commits

Author SHA1 Message Date
Jake Shadle 95d011411e Fix version 18 (#175) 2026-04-20 09:55:35 +02:00
Jake Shadle b848cfebb6 Ignore MSI installers with no cabs (#160)
* 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
2025-08-15 09:02:54 +02:00
Super Ewald e9de46c988 Add option to download vc/ucrt debug binaries (#148) 2025-06-19 09:13:19 +02:00
Jake Shadle 11d9c9f69a Update crates/edition (#155)
* Update crates/edition

* Format
2025-04-10 11:17:54 +02:00
Jake Shadle c5f1655a6b Update to ureq 3.0.0-rc1 (#143)
* Update to ureq 3.0.0-rc1

* Update CHANGELOG

* oops

* Just allow MPL-2.0

* Fix rebase

* Add basic HTTP retry due to EOF I/O errors

* Update CHANGELOG
2024-10-17 11:14:17 +02:00
Jake Shadle d85e04f161 Switch to reqwest (#142)
* Switch to reqwest

* Update CHANGELOG
2024-10-16 12:12:20 +02:00
tomager 29e8c95419 Install onecore-uap headers by default (#134) 2024-08-09 12:33:45 +02:00
Jake Shadle f2249e31ac Rework PR (#123)
* 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>
2024-06-03 13:26:55 +02:00
messense 8f7fa9f12c Upgrade zip to 1.0 (#117)
* Upgrade zip to 1.0

* Clean up dependencies

* Remove duplicates

* Fix lints

---------

Co-authored-by: Jake Shadle <jake.shadle@embark-studios.com>
2024-05-06 17:41:27 +02:00
Jake Shadle 7b27c963ad Remove HTTP client creation (#110)
* Remove HTTP client creation

* Publicly expose ureq

* Fix test
2023-11-13 08:18:50 +01:00
Jake Shadle 1f9d264a55 Prepare release (#106)
* 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
2023-11-07 17:32:05 +01:00
Jake Shadle 93cc35e346 Add minimize command (#101)
* Move lints

* Add minimize subcommand support

* Fix lint

* Update snapshot

* Update symlinks
2023-10-11 19:04:04 +02:00
Jake Shadle f80a50a724 Default to manifest 17 (#99)
* Default to manifest 17

* Oops

* Test with 16 in CI
2023-09-12 10:08:40 +02:00
Rachel Mant 5c518c5b78 Fix: Provide timeouts for reading from sockets (#93)
* 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>
2023-09-11 13:41:26 +02:00
Jake Shadle 0792525c68 Update crates (#88)
* Update crates

* Update snapshot

* Validate aarch64 actually compiles

* Force use clang when targeting aarch64

* Ugh
2023-06-15 16:46:52 +02:00
Jake Shadle 19bc3c1e76 Fix max SDK version lookup (#77)
* Fix retrieval of latest SDK

* Use insta for deterministic test

* Update deps

Fixes openssl bullshit (shocking!) but introduces several multiple versions :p

* Fix lint
2023-03-31 13:08:47 +02:00
Jake Shadle 685924a50c Fix CRT and ATL casing (#74)
* Fix bug where debug symbols were splatted

* Fix diff output

* Update deterministic

* Add symlinks for SDK headers

CRT and ATL can include SDK headers...sigh

* Update deps

* Clippy

* Update snapshots
2023-03-06 12:17:38 +01:00
Jake Shadle 948cbadcc2 Fixup (#69) 2022-12-01 17:07:01 +01:00
Marijn Suijten 597753b7e3 Replace ld with ld.lld in dockerfile (#65)
* 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>
2022-11-25 11:01:44 +01:00
messense 38d9f8ab2e Upgrade to clap 4.0 (#61)
* Upgrade to clap 4.0

* https://epage.github.io/blog/2022/09/clap4/
* https://github.com/clap-rs/clap/blob/master/CHANGELOG.md#400---2022-09-28

* Update cli help snapshots

* Fix deny

* Fix lints

Co-authored-by: Jake Shadle <jake.shadle@embark-studios.com>
2022-10-14 08:39:11 +02:00
Jake Shadle 2496fd2174 Fixup help text 2022-09-07 17:52:53 +02:00
Pascal Kuthe 3b63e4f8e1 Optionally include active templating library (ATL) (#59) 2022-09-07 17:50:38 +02:00
Jake Shadle 49b48b5e73 Update (#55)
* Update deps

* Fix lints
2022-08-26 15:50:45 +02:00
Qyriad 7c2dc338ed Add extra symlinks for clang-cl compatibility with /winsdkdir and /vctoolsdir (#47)
* 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
2022-05-16 09:30:31 +02:00
Joe Eli McIlvain 61a1a1ed99 Add symlink for BaseTsd.h in SDK headers. (#41) 2022-05-04 08:00:59 +02:00
Jake Shadle e058266620 Update dependencies (#42)
* Update dependencies

* Add simple update mechanism
2022-05-04 07:46:11 +02:00
Jake Shadle c1083b7f1c Fixup clap args (#38)
* Clap 3 by default doesn't add author/version/about metadata

* Change option to `--manifest-version`

* Update CHANGELOG

* Add snapshot testing for CLI

* Actually run CLI tests in CI

* Update snapshots

* Force terminal width
2022-03-01 09:02:44 +01:00
Jake Shadle ea3ea629e9 Actually respect --disable-symlinks flag (#32)
* Actually respect --disable-symlinks flag

* Update CHANGELOG

* Cancel PR actions on new commits
2022-02-28 09:46:19 +01:00
Jalal El Mansouri 629218c1d9 Fix WebRTC util using wrong capitalization on iphlpapi (#27)
* Fix WebRTC util using wrong capitalisation on iphlpapi

* Fix determinism test
2022-02-24 08:43:12 +01:00
Jake Shadle 2cc54481ba Fixup #22 (#24)
* Add zmq override

* Fix deterministic test

* Rustfmt

Co-authored-by: Jasper Bekkers <bekkers@gmail.com>
2022-02-07 10:23:16 +01:00
Jake Shadle ab5351e812 Ensure deterministic (#19)
* 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
2021-11-25 08:55:22 +01:00