mirror of
https://github.com/patchzyy/wiicompiled
synced 2026-09-12 17:45:52 -04:00
linux appimage: bundle prebuilt clang, ninja, and cmake
This commit is contained in:
committed by
patchzyy
parent
6f4dd2f470
commit
ae3096c89b
@@ -12,7 +12,8 @@ internal static class BuildRunner
|
||||
public static async Task RunAsync(
|
||||
string workspace, string profile, string outputDir, string? baseOutputDir,
|
||||
string? retroDir, string? retroWfcOfflineDir, bool skipRetroWfcPayload,
|
||||
bool forceCleanBuild, string? translatorBin, IInstallReporter reporter, CancellationToken cancellationToken)
|
||||
bool forceCleanBuild, string? translatorBin, string? ccBin, string? cxxBin, string? fuseLd,
|
||||
string? cmakeBin, string? ninjaBin, IInstallReporter reporter, CancellationToken cancellationToken)
|
||||
{
|
||||
var script = Path.Combine(workspace, "Launcher", "local-build.sh");
|
||||
if (!File.Exists(script)) throw new FileNotFoundException("local-build.sh is missing", script);
|
||||
@@ -47,6 +48,28 @@ internal static class BuildRunner
|
||||
{
|
||||
startInfo.ArgumentList.Add("--translator-bin"); startInfo.ArgumentList.Add(translatorBin);
|
||||
}
|
||||
// Forwarded by AppRun so the AppImage's bundled clang/lld (see prepare-portable-clang.sh)
|
||||
// is used instead of local-build.sh's own default of whatever clang is on $PATH.
|
||||
if (!string.IsNullOrEmpty(ccBin))
|
||||
{
|
||||
startInfo.ArgumentList.Add("--cc"); startInfo.ArgumentList.Add(ccBin);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(cxxBin))
|
||||
{
|
||||
startInfo.ArgumentList.Add("--cxx"); startInfo.ArgumentList.Add(cxxBin);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(fuseLd))
|
||||
{
|
||||
startInfo.ArgumentList.Add("--fuse-ld"); startInfo.ArgumentList.Add(fuseLd);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(cmakeBin))
|
||||
{
|
||||
startInfo.ArgumentList.Add("--cmake"); startInfo.ArgumentList.Add(cmakeBin);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(ninjaBin))
|
||||
{
|
||||
startInfo.ArgumentList.Add("--ninja"); startInfo.ArgumentList.Add(ninjaBin);
|
||||
}
|
||||
|
||||
using var process = new Process { StartInfo = startInfo };
|
||||
var window = new BuildProgressWindow(reporter, InstallStages.Build, start: 6, end: 96);
|
||||
|
||||
@@ -150,6 +150,11 @@ internal static class Program
|
||||
skipPayload,
|
||||
flags.ContainsKey("force-clean-build"),
|
||||
flags.GetValueOrDefault("translator-bin"),
|
||||
flags.GetValueOrDefault("cc"),
|
||||
flags.GetValueOrDefault("cxx"),
|
||||
flags.GetValueOrDefault("fuse-ld"),
|
||||
flags.GetValueOrDefault("cmake"),
|
||||
flags.GetValueOrDefault("ninja"),
|
||||
reporter, token);
|
||||
|
||||
reporter.Progress(InstallStages.Shortcuts, "Creating shortcuts", 98);
|
||||
@@ -317,6 +322,7 @@ internal static class Program
|
||||
install [--game ISO_PATH] [--install-dir DIR] [--retro-dir DIR
|
||||
{--download-retro-wfc-payload | --skip-retro-wfc-payload}]
|
||||
[--force-clean-build] [--translator-bin PATH] [--disc-tool-bin PATH]
|
||||
[--cc PATH] [--cxx PATH] [--fuse-ld NAME_OR_PATH] [--cmake PATH] [--ninja PATH]
|
||||
[--progress-json] [--workspace DIR]
|
||||
uninstall
|
||||
launch-base
|
||||
|
||||
Reference in New Issue
Block a user