|
1 | 1 | #!/bin/bash |
2 | 2 | # |
3 | | -# simulator_error.sh |
| 3 | +# simulator_error.sh [linux|windows] |
4 | 4 | # |
5 | 5 | # Run if you encounter an error in the building MarlinSimulator. |
6 | 6 | # Errors may be different for using a probe/auto bed leveling and manual mesh. |
|
10 | 10 | FILE1="Marlin/src/lcd/e3v2/proui/dwin_defines.h" |
11 | 11 | FILE2="Marlin/src/inc/Conditionals-5-post.h" |
12 | 12 | FILE3="ini/native.ini" |
| 13 | +FILE4="Marlin/Configuration.h" |
| 14 | +FILE5="platformio.ini" |
13 | 15 |
|
14 | 16 | # Define patterns to search for (from strings) |
15 | 17 | PATTERN1='#define INVERT_E0_DIR HMI_data.Invert_E0' |
16 | 18 | PATTERN2='#undef Z_MIN_ENDSTOP_HIT_STATE' |
17 | | -GENERIC_PATTERN3='release_flags.*-flto' # Matches lines with 'release_flags' then anything, then '-flto' |
| 19 | +PATTERN3='release_flags.*-flto' |
| 20 | +PATTERN4_BOARD='#define MOTHERBOARD' |
| 21 | +PATTERN4_ENDSTOP='#define ENDSTOP_INTERRUPTS_FEATURE' |
| 22 | +PATTERN4_PROUI='#define PROUI_EX 1' |
| 23 | +PATTERN5_WINDOWS='simulator_windows' |
| 24 | +PATTERN5_LINUX='simulator_linux_release' |
| 25 | + |
| 26 | +# Check for command line argument for platform |
| 27 | +PLATFORM_ENV="" |
| 28 | +if [ "$1" == "windows" ]; then |
| 29 | + PLATFORM_ENV='simulator_windows' |
| 30 | +elif [ "$1" == "linux" ]; then |
| 31 | + PLATFORM_ENV='simulator_linux_release' |
| 32 | +fi |
18 | 33 |
|
19 | 34 | echo "Starting script..." |
20 | 35 |
|
|
33 | 48 | # --- Change 2: Marlin/src/inc/Conditionals-5-post.h --- |
34 | 49 | if [ -f "$FILE2" ]; then |
35 | 50 | if grep -qF "$PATTERN2" "$FILE2"; then |
36 | | - sed -i "s|^.*$PATTERN2| //#undef Z_MIN_ENDSTOP_HIT_STATE|" "$FILE2" |
| 51 | + sed -i "s|$PATTERN2|//#undef Z_MIN_ENDSTOP_HIT_STATE|" "$FILE2" |
37 | 52 | echo "Updated $FILE2: Replaced '$PATTERN2'" |
38 | 53 | else |
39 | 54 | echo "Warning: Line '$PATTERN2' not found in $FILE2. No change made." |
|
42 | 57 | echo "Error: $FILE2 not found. Skipping changes for this file." |
43 | 58 | fi |
44 | 59 |
|
45 | | -# --- Change 3: ini/native.ini (using the more generic approach) --- |
| 60 | +# --- Change 3: ini/native.ini --- |
46 | 61 | if [ -f "$FILE3" ]; then |
47 | | - if grep -qE "$GENERIC_PATTERN3" "$FILE3"; then |
| 62 | + if grep -qE "$PATTERN3" "$FILE3"; then |
48 | 63 | sed -i "/release_flags/ s/-flto/-fno-lto/" "$FILE3" |
49 | 64 | echo "Updated $FILE3: Changed '-flto' to '-fno-lto' on a line containing 'release_flags'." |
50 | 65 | else |
|
54 | 69 | echo "Error: $FILE3 not found. Skipping changes for this file." |
55 | 70 | fi |
56 | 71 |
|
| 72 | +# --- Change 4: Marlin/Configuration.h --- |
| 73 | +if [ -f "$FILE4" ]; then |
| 74 | + # Change MOTHERBOARD |
| 75 | + if grep -qE "$PATTERN4_BOARD" "$FILE4"; then |
| 76 | + sed -i "s|$PATTERN4_BOARD.*$|$PATTERN4_BOARD BOARD_SIMULATED|" "$FILE4" |
| 77 | + echo "Updated $FILE4: Added 'BOARD_SIMULATED' to '#define MOTHERBOARD'." |
| 78 | + else |
| 79 | + echo "Warning: Line containing '$PATTERN4_BOARD' not found in $FILE4. No change made." |
| 80 | + fi |
| 81 | + |
| 82 | + # Comment out ENDSTOP_INTERRUPTS_FEATURE |
| 83 | + if grep -qF "$PATTERN4_ENDSTOP" "$FILE4"; then |
| 84 | + sed -i "s|$PATTERN4_ENDSTOP|//$PATTERN4_ENDSTOP|" "$FILE4" |
| 85 | + echo "Updated $FILE4: Commented out '$PATTERN4_ENDSTOP'." |
| 86 | + else |
| 87 | + echo "Warning: Line '$PATTERN4_ENDSTOP' not found in $FILE4. No change made." |
| 88 | + fi |
| 89 | + |
| 90 | + # Comment out PROUI_EX 1 |
| 91 | + if grep -qF "$PATTERN4_PROUI" "$FILE4"; then |
| 92 | + sed -i "s|$PATTERN4_PROUI|//$PATTERN4_PROUI|" "$FILE4" |
| 93 | + echo "Updated $FILE4: Commented out '$PATTERN4_PROUI'." |
| 94 | + else |
| 95 | + echo "Warning: Line '$PATTERN4_PROUI' not found in $FILE4. No change made." |
| 96 | + fi |
| 97 | +else |
| 98 | + echo "Error: $FILE4 not found. Skipping changes for this file." |
| 99 | +fi |
| 100 | + |
| 101 | +# --- Change 5: platformio.ini --- |
| 102 | +if [ -f "$FILE5" ] && [ ! -z "$PLATFORM_ENV" ]; then |
| 103 | + if grep -qE '^default_envs' "$FILE5"; then |
| 104 | + sed -i "s|^default_envs.*$|default_envs = $PLATFORM_ENV|" "$FILE5" |
| 105 | + echo "Updated $FILE5: Set 'default_envs' to '$PLATFORM_ENV'." |
| 106 | + else |
| 107 | + echo "Warning: Line containing 'default_envs' not found in $FILE5. No change made." |
| 108 | + fi |
| 109 | +else |
| 110 | + echo "Error: $FILE5 not found or no platform specified. Skipping changes for this file." |
| 111 | +fi |
| 112 | + |
57 | 113 | echo -e "\nScript complete." |
0 commit comments