refactor: add Windows ARM and macOS binaries, use a single Package class, deduplicate some common install code#403
refactor: add Windows ARM and macOS binaries, use a single Package class, deduplicate some common install code#403crueter wants to merge 16 commits intohendrikmuhs:mainfrom
Conversation
Signed-off-by: crueter <crueter@eden-emu.dev>
|
Went ahead and refactored it to use one Versions are now separated as well, kept them all at the current for consistency's sake. Installation now attempts the package manager first, and if that fails falls back to binary installation. Still very much a draft and untested, but should be much easier to extend in the future (though I wish the table of platforms could be autogenerated, but oh well) |
|
Been thinking on this for a bit. Ideas: metadataIt's kind of tedious to have to change every single file hash every single time, especially given it's the executable itself, NOT the artifact. (perhaps this should be changed?) An idea to fix this could be to generate a metadata file containing all the necessary information (could be a direct TypeScript file, or a json file read at runtime) from a simple json file that specifies versions, i.e.: {
"ccache": {
"linux": {
"x64": "4.12.2",
"aarch64": "4.12.2"
}
}
}...so on and so forth. A simple shell script or something in the force-install, etcLike that other PR
Let me know your thoughts, gonna fix some of the issues this has right now. |
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
Signed-off-by: crueter <crueter@eden-emu.dev>
|
Added Tested on all relevant platforms with all combinations and everything worked as expected. I'm not sure if the whole Note: currently ccache binary will not work on musl-based distros, this will be fixed in v4.13 where they are adding a musl-linked binary. |
Defines a
Packageclass that takes in platform, version, arch, variant, and sha256. This class primarily has utility functions and is exposed as a singular install function that therunInnercalls. Automatically handles package managers too, falls back to basic binary installation if that fails.Also added native Windows/ARM and macOS binaries, and support for
pacman.Additionally an
installoption was added to handle the various forms of installation.