add better CGO warnings

This commit is contained in:
KingKDot
2026-07-15 23:29:12 -05:00
parent 5136a63e69
commit bdb8bda678
2 changed files with 35 additions and 1 deletions
+18 -1
View File
@@ -52,6 +52,8 @@ const macosSdkRightsInput = document.getElementById("macos-sdk-rights");
const macosSdkFileStatus = document.getElementById("macos-sdk-file-status");
const macosSdkHostWarning = document.getElementById("macos-sdk-host-warning");
const macosSdkHostPlatform = document.getElementById("macos-sdk-host-platform");
const disableCgoInput = document.querySelector('input[name="disable-cgo"]');
const disableCgoWarning = document.getElementById("disable-cgo-warning");
let currentServerVersion = null;
let currentUserRole = null;
@@ -88,6 +90,10 @@ function updateMacosSdkVisibility() {
if (macosSdkHostPlatform && unsupportedHost) macosSdkHostPlatform.textContent = macosSdkServerHost;
}
function updateDisableCgoWarning() {
disableCgoWarning?.classList.toggle("hidden", !disableCgoInput?.checked);
}
async function uploadMacosSdk() {
const file = macosSdkFileInput?.files?.[0];
if (!file) throw new Error("Select a macOS SDK archive for this Darwin CGO build");
@@ -705,6 +711,8 @@ function applyFormSettings(settings) {
updateIosSectionVisibility();
updatePersistenceSettingsVisibility();
updateShellcodeCheckboxVisibility();
updateDisableCgoWarning();
updateMacosSdkVisibility();
if (solMemoCheckbox && solSettings) {
solSettings.classList.toggle("hidden", !solMemoCheckbox.checked);
}
@@ -955,6 +963,7 @@ loadBuildPlugins();
loadMacosSdkStatus();
updateWindowsSectionVisibility();
updateShellcodeCheckboxVisibility();
updateDisableCgoWarning();
init();
if (solMemoCheckbox && solSettings) {
@@ -1134,7 +1143,8 @@ platformInputs.forEach((input) => {
input.addEventListener("change", updateMacosSdkVisibility);
});
document.querySelector('input[name="disable-cgo"]')?.addEventListener("change", updateMacosSdkVisibility);
disableCgoInput?.addEventListener("change", updateMacosSdkVisibility);
disableCgoInput?.addEventListener("change", updateDisableCgoWarning);
macosSdkFileInput?.addEventListener("change", () => {
const file = macosSdkFileInput.files?.[0];
if (macosSdkFileStatus && file) macosSdkFileStatus.textContent = `${file.name} selected (${formatFileSize(file.size)}).`;
@@ -1803,6 +1813,13 @@ form?.addEventListener("submit", async (e) => {
return;
}
if (disableCgoInput?.checked && !confirm(
"CGO is disabled. Native features such as voice/audio, macOS keystroke capture and permission checks, native Linux/macOS plugins, and Windows GPU encoder integrations may not work.\n\nContinue with a limited CGO-disabled build?"
)) {
disableCgoInput.focus();
return;
}
if (needsMacosSdkUpload() && (!macosSdkFileInput?.files?.[0] || !macosSdkRightsInput?.checked)) {
alert(!macosSdkFileInput?.files?.[0]
? "Select a macOS SDK archive for this Darwin CGO build."