@@ -238,8 +238,10 @@ private void checkGppAvailable(RunnerListener listener) throws Exception {
238238 try { if (Runtime .getRuntime ().exec (new String []{"g++" ,"--version" }).waitFor ()==0 ) return ; }
239239 catch (Exception ignored ) {}
240240
241- // Try the guided installer first. If it succeeds, we're done; if the
242- // user cancels or it fails, fall through to the existing dialog below.
241+ // Try the guided installer first. If it succeeds, we're done. If the
242+ // user cancels, InstallWizard throws CancelledByUser, which stops
243+ // the build entirely instead of falling through. Only a genuine
244+ // wizard failure (not a cancel) falls through to the dialog below.
243245 if (InstallWizard .run (listener )) return ;
244246
245247 Object [] opts = { "Install Automatically" , "Download MSYS2" , "Cancel" };
@@ -272,8 +274,8 @@ else if (ch == 1) {
272274 catch (Exception ignored ) {}
273275 if (isMac ) {
274276 // Try the guided installer first (Xcode Command Line Tools, then
275- // GLFW/GLEW via Homebrew if present). Falls through to the
276- // existing dialog below if cancelled or unsuccessful .
277+ // GLFW/GLEW via Homebrew if present). A cancel throws and stops
278+ // the build; only a genuine failure falls through to the dialog .
277279 if (InstallWizard .run (listener )) return ;
278280
279281 showGppDialog (
@@ -283,8 +285,8 @@ else if (ch == 1) {
283285 + "Click Download Homebrew if not installed.</html>" ,
284286 "Download Homebrew" , "https://brew.sh" , listener );
285287 } else {
286- // Try the guided installer first. Falls through to the existing
287- // package-manager dialog below if cancelled or unsuccessful .
288+ // Try the guided installer first. A cancel throws and stops the
289+ // build; only a genuine failure falls through to the dialog below .
288290 if (InstallWizard .run (listener )) return ;
289291
290292 // Detect package manager and offer auto-install
@@ -441,7 +443,7 @@ private boolean commandExists(String cmd) {
441443 } catch (Exception e ) { return false ; }
442444 }
443445
444- private void checkNativeLibs (RunnerListener listener , File binary ) {
446+ private void checkNativeLibs (RunnerListener listener , File binary ) throws Exception {
445447 String os = System .getProperty ("os.name" ).toLowerCase ();
446448 boolean win = os .contains ("win" );
447449 boolean mac = os .contains ("mac" );
@@ -466,7 +468,7 @@ private boolean windowsLibsNowPresent(java.util.List<String> searchDirs, String[
466468 return true ;
467469 }
468470
469- private void checkWindowsDLLs (RunnerListener listener , File binary ) {
471+ private void checkWindowsDLLs (RunnerListener listener , File binary ) throws Exception {
470472 String [] required = { "glfw3.dll" , "glew32.dll" };
471473 java .util .List <String > searchDirs = new java .util .ArrayList <>();
472474 searchDirs .add (binary .getParent ());
@@ -557,7 +559,7 @@ private void checkWindowsDLLs(RunnerListener listener, File binary) {
557559 }
558560
559561 // ── macOS ──────────────────────────────────────────────────────────────────
560- private void checkMacLibs (RunnerListener listener ) {
562+ private void checkMacLibs (RunnerListener listener ) throws Exception {
561563 // Check for glfw and glew via pkg-config or known Homebrew paths
562564 boolean glfwOk = new File ("/opt/homebrew/lib/libglfw.dylib" ).exists ()
563565 || new File ("/usr/local/lib/libglfw.dylib" ).exists ()
@@ -626,7 +628,7 @@ private void checkMacLibs(RunnerListener listener) {
626628 }
627629
628630 // ── Linux ──────────────────────────────────────────────────────────────────
629- private void checkLinuxLibs (RunnerListener listener ) {
631+ private void checkLinuxLibs (RunnerListener listener ) throws Exception {
630632 boolean glfwOk = new File ("/usr/lib/libglfw.so" ).exists ()
631633 || new File ("/usr/lib/x86_64-linux-gnu/libglfw.so" ).exists ()
632634 || new File ("/usr/lib/x86_64-linux-gnu/libglfw.so.3" ).exists ()
0 commit comments