this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Debug scripts for Windows + macOS (#2601)

* DEVTOOLS: debug-windows.ps1

powershell is deeply cursed technology that should not exist

* DEVTOOLS: debug-macos.sh

authored by

Alice and committed by
GitHub
7bd09799 37da717d

+227
+128
debug-macos.sh
··· 1 + #!/bin/bash 2 + 3 + FRESH=false 4 + ASAN=false 5 + PRO=false 6 + DEBUG=false 7 + MACPORTS=false 8 + HOMEBREW=false 9 + BUILD_TYPE="MinSizeRel" 10 + COMPILER_FLAGS="" 11 + DEBUG_FLAGS="" 12 + PRO_VERSION_FLAG="" 13 + 14 + while (( "$#" )); do 15 + case "$1" in 16 + -f|--fresh) 17 + FRESH=true 18 + shift 19 + ;; 20 + -a|--asan) 21 + ASAN=true 22 + shift 23 + ;; 24 + -p|--pro) 25 + PRO=true 26 + shift 27 + ;; 28 + -d|--debug) 29 + DEBUG=true 30 + shift 31 + ;; 32 + -m|--macports) 33 + MACPORTS=true 34 + shift 35 + ;; 36 + -h|--homebrew) 37 + HOMEBREW=true 38 + shift 39 + ;; 40 + --) 41 + shift 42 + break 43 + ;; 44 + -*) 45 + echo "Unknown option: $1" >&2 46 + exit 1 47 + ;; 48 + *) 49 + echo "Invalid argument: $1" >&2 50 + exit 1 51 + ;; 52 + esac 53 + done 54 + 55 + if [ "$MACPORTS" = true ] && [ "$HOMEBREW" = true ]; then 56 + echo "Error: -m/--macports and -h/--homebrew options are mutually exclusive." 57 + exit 1 58 + fi 59 + 60 + # remove MacPorts from PATH if we're not using it or we're using Homebrew 61 + if [ "$MACPORTS" = false ] || [ "$HOMEBREW" = true ]; then 62 + PATH=${PATH/\/opt\/local\/bin:/} 63 + fi 64 + 65 + if [ "$FRESH" = true ]; then 66 + rm -rf .cache CMakeCache.txt CMakeFiles/ cmake_install.cmake 67 + rm -rf build && git restore 'build/*' 68 + fi 69 + 70 + if [ "$ASAN" = true ]; then 71 + DEBUG=true 72 + DEBUG_FLAGS="-DBUILD_NO_OPTIMIZATION=On -DBUILD_ASAN_DEBUG=On" 73 + fi 74 + 75 + if [ "$PRO" = true ]; then 76 + PRO_VERSION_FLAG="-DBUILD_PRO=On" 77 + fi 78 + 79 + if [ "$DEBUG" = true ]; then 80 + BUILD_TYPE="Debug" 81 + fi 82 + 83 + if [ "$MACPORTS" = true ]; then 84 + CLANG=$(which clang) 85 + CLANGPP=$(which clang++) 86 + if [ -z "$CLANG" ] || [ -z "$CLANGPP" ]; then 87 + echo "clang or clang++ not found. Please ensure they are installed and in your PATH." 88 + exit 1 89 + fi 90 + COMPILER_FLAGS="-DCMAKE_C_COMPILER=$CLANG -DCMAKE_CXX_COMPILER=$CLANGPP" 91 + export CPPFLAGS='-isystem/opt/local/include' 92 + export LDFLAGS='-L/opt/local/lib' 93 + echo 94 + echo "Using clang at $CLANG and clang++ at $CLANGPP from MacPorts" 95 + fi 96 + 97 + if [ "$HOMEBREW" = true ]; then 98 + export PATH="/opt/homebrew/opt/llvm/bin:$PATH" 99 + export LDFLAGS="-L/opt/homebrew/opt/llvm/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm/lib/c++ -L/opt/homebrew/opt/llvm/lib" 100 + export CPPFLAGS="-I/opt/homebrew/opt/llvm/include" 101 + echo 102 + echo "Using clang at $(which clang) and clang++ at $(which clang++) from Homebrew" 103 + fi 104 + 105 + echo 106 + echo "+--------------------------------+-------+" 107 + echo "| Build Options | Value |" 108 + echo "+--------------------------------+-------+" 109 + echo "| Fresh build (-f, --fresh) | $(printf "%-5s" $([ "$FRESH" = true ] && echo "Yes" || echo "No")) |" 110 + echo "| Address Sanitizer (-a, --asan) | $(printf "%-5s" $([ "$ASAN" = true ] && echo "Yes" || echo "No")) |" 111 + echo "| Pro version (-p, --pro) | $(printf "%-5s" $([ "$PRO" = true ] && echo "Yes" || echo "No")) |" 112 + echo "| Debug build (-d, --debug) | $(printf "%-5s" $([ "$DEBUG" = true ] && echo "Yes" || echo "No")) |" 113 + echo "| MacPorts (-m, --macports) | $(printf "%-5s" $([ "$MACPORTS" = true ] && echo "Yes" || echo "No")) |" 114 + echo "| Homebrew (-h, --homebrew) | $(printf "%-5s" $([ "$HOMEBREW" = true ] && echo "Yes" || echo "No")) |" 115 + echo "+--------------------------------+-------+" 116 + echo 117 + 118 + cd ./build || exit 119 + 120 + cmake -DCMAKE_BUILD_TYPE="$BUILD_TYPE" \ 121 + $PRO_VERSION_FLAG \ 122 + -DBUILD_SDLGPU=On \ 123 + $DEBUG_FLAGS \ 124 + $COMPILER_FLAGS \ 125 + -DBUILD_WITH_ALL=On \ 126 + -DCMAKE_EXPORT_COMPILE_COMMANDS=On \ 127 + .. && \ 128 + cmake --build . --config "$BUILD_TYPE" --parallel
+99
debug-windows.ps1
··· 1 + [CmdletBinding()] 2 + param( 3 + [Parameter()] 4 + [Alias("f")] 5 + [switch]$Fresh, 6 + 7 + [Parameter()] 8 + [Alias("p")] 9 + [switch]$Pro, 10 + 11 + [Parameter()] 12 + [Alias("d")] 13 + [switch]$bDebug, 14 + 15 + [Parameter()] 16 + [Alias("x")] 17 + [switch]$Win32, 18 + 19 + [Parameter()] 20 + [Alias("m")] 21 + [switch]$Msys2 22 + ) 23 + 24 + $BUILD_TYPE = "MinSizeRel" 25 + $SDLGPU_FLAG = "-DBUILD_SDLGPU=On" 26 + $PRO_VERSION_FLAG = "" 27 + $ARCH_FLAGS = "-A x64" 28 + $CMAKE_GENERATOR = "" 29 + 30 + if ($Fresh) { 31 + Remove-Item -Path .cache, CMakeCache.txt, CMakeFiles, cmake_install.cmake -Force -Recurse -ErrorAction SilentlyContinue 32 + Remove-Item -Path ".\build\" -Force -Recurse -ErrorAction Stop 33 + Remove-Item -Path ".\vendor\janet\src\conf\janetconf.h" -Force -ErrorAction SilentlyContinue 34 + git restore '.\build\*' 35 + git submodule deinit -f -- .\vendor\janet 36 + git submodule update --init --recursive 37 + } 38 + 39 + if ($Pro) { 40 + $PRO_VERSION_FLAG = "-DBUILD_PRO=On" 41 + } 42 + 43 + if ($bDebug) { 44 + $BUILD_TYPE = "Debug" 45 + } 46 + 47 + if ($Win32) { 48 + $ARCH_FLAGS = "-A Win32 -T v141_xp" 49 + Copy-Item -Path "build\janet\janetconf.h" -Destination "vendor\janet\src\conf\janetconf.h" -Force 50 + $SDLGPU_FLAG = "" 51 + } 52 + 53 + if ($Msys2) { 54 + $ARCH_FLAGS = "" 55 + $CMAKE_GENERATOR = '-G "MinGW Makefiles"' 56 + } else { 57 + $CMAKE_GENERATOR = '-G "Visual Studio 16 2019"' 58 + } 59 + 60 + Write-Host 61 + Write-Host "+-------------------------------+-------+" 62 + Write-Host "| Build Options | Value |" 63 + Write-Host "+-------------------------------+-------+" 64 + Write-Host "| Fresh build (-f, -fresh) | $(if ($Fresh) { "Yes" } else { "No " }) |" 65 + Write-Host "| Pro version (-p, -pro) | $(if ($Pro) { "Yes" } else { "No " }) |" 66 + Write-Host "| Debug build (-d, -bdebug) | $(if ($bDebug) { "Yes" } else { "No " }) |" 67 + Write-Host "| Win32 (-x, -win32) | $(if ($Win32) { "Yes" } else { "No " }) |" 68 + Write-Host "| MSYS2 (-m, -msys2) | $(if ($Msys2) { "Yes" } else { "No " }) |" 69 + Write-Host "+-------------------------------+-------+" 70 + Write-Host 71 + 72 + Set-Location -Path ./build -ErrorAction Stop 73 + 74 + $cmakeCommand = "cmake $CMAKE_GENERATOR " + 75 + "$ARCH_FLAGS " + 76 + "-DCMAKE_BUILD_TYPE=$BUILD_TYPE " + 77 + "$PRO_VERSION_FLAG " + 78 + "$SDLGPU_FLAG " + 79 + "-DBUILD_WITH_ALL=On " + 80 + "-DCMAKE_EXPORT_COMPILE_COMMANDS=On " + 81 + ".." 82 + 83 + Write-Host "Executing CMake Command: $cmakeCommand" 84 + Invoke-Expression $cmakeCommand 85 + 86 + $numCPUs = [Environment]::ProcessorCount 87 + 88 + if ($LASTEXITCODE -eq 0) { 89 + if ($Msys2) { 90 + mingw32-make "-j$numCPUs" 91 + } else { 92 + cmake --build . --config "$BUILD_TYPE" --parallel 93 + } 94 + } else { 95 + Write-Host "(C)Make failed. Exiting." 96 + exit 1 97 + } 98 + 99 + Set-Location -Path .. -ErrorAction Stop