@@ -411,9 +411,92 @@ When setting default user directories, use platform conventions:
411411- Pay special attention to file I/O and networking code
412412- Test default path behavior on each platform
413413
414+ ## Local Compilation Verification (MANDATORY)
415+
416+ ** Before announcing any change as completed, you MUST verify it builds locally on both Linux AND Windows platforms.**
417+
418+ ### Linux Verification (Required)
419+ ``` bash
420+ # Clean build to ensure no cached artifacts
421+ rm -rf build_x86_64
422+ cmake --preset ubuntu-x86_64
423+ cmake --build build_x86_64
424+
425+ # Verify success
426+ if [ -f " build_x86_64/c64u-plugin-for-obs.so" ]; then
427+ echo " ✅ Linux build successful"
428+ else
429+ echo " ❌ Linux build failed - DO NOT proceed"
430+ fi
431+ ```
432+
433+ ### Windows Verification (Required)
434+ Choose ONE method to verify Windows compatibility:
435+
436+ ** Method 1: Docker-based Windows simulation (Linux users)**
437+ ``` bash
438+ ./test-windows-build.sh
439+ # Must show: "🎉 SUCCESS: Windows build simulation completed!"
440+ ```
441+
442+ ** Method 2: Native Windows build (Windows users)**
443+ ``` powershell
444+ # Clean build
445+ Remove-Item "build_x64" -Recurse -Force -ErrorAction SilentlyContinue
446+ cmake --preset windows-x64
447+ cmake --build build_x64 --config RelWithDebInfo
448+
449+ # Verify success
450+ if (Test-Path "build_x64\RelWithDebInfo\c64u-plugin-for-obs.dll") {
451+ Write-Host "✅ Windows build successful" -ForegroundColor Green
452+ } else {
453+ Write-Host "❌ Windows build failed - DO NOT proceed" -ForegroundColor Red
454+ }
455+ ```
456+
457+ ** Method 3: CI-compatible Windows build (Advanced)**
458+ ``` powershell
459+ $env:CI = "1"
460+ cmake --preset windows-ci-x64
461+ cmake --build build_x64 --config RelWithDebInfo --parallel
462+ # Must complete without errors or warnings
463+ ```
464+
465+ ### Validation Checklist
466+
467+ Before announcing completion, verify ALL of the following:
468+
469+ - [ ] ** Linux build succeeds** without errors or warnings
470+ - [ ] ** Windows build succeeds** using one of the above methods
471+ - [ ] ** Code formatting passes** : ` ./build-aux/run-clang-format --check `
472+ - [ ] ** CMake formatting passes** : ` ./build-aux/run-gersemi --check `
473+ - [ ] ** No compilation warnings** in either platform
474+ - [ ] ** Atomic types work correctly** (if atomic changes were made)
475+ - [ ] ** Header inclusion order is correct** (if header changes were made)
476+ - [ ] ** Cross-platform compatibility maintained** (no platform-specific assumptions)
477+
478+ ### If Verification Fails
479+
480+ If either Linux or Windows build fails:
481+ 1 . ** DO NOT announce the change as completed**
482+ 2 . ** Investigate and fix the build failures**
483+ 3 . ** Re-run both verifications**
484+ 4 . ** Only proceed after both platforms build successfully**
485+
486+ ### Documentation Requirements
487+
488+ When announcing completion of changes that affect build processes:
489+ - ** Reference the appropriate build documentation** :
490+ - Linux/general: ` doc/developer.md `
491+ - Windows-specific: ` doc/windows-local-build.md `
492+ - Cross-platform: Cross-Platform Development Guidelines (above)
493+ - ** Mention which verification method was used**
494+ - ** Confirm both platforms were tested**
495+
414496## Trust These Instructions
415497
416498These instructions are comprehensive and tested. Only search for additional information if:
4174991 . Build fails with error not covered in "Common Build Issues"
4185002 . Instructions appear outdated (e.g., tool versions changed significantly)
4195013 . New platform support is needed beyond Windows/macOS/Linux
502+ 4 . The mandatory verification process fails and troubleshooting is needed
0 commit comments