chore: remove one-off build troubleshooting scripts

Keep only build_qemu_step4.sh (the DLL relink step used in production).
Deleted: build_qemu_dll.sh, build_qemu_step3.sh, check_tools.sh,
fix_distlib.sh, fix_distlib2.sh, install_git.sh, install_meson.sh
(all were used once during initial DLL compilation setup)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pull/47/head
David Montero Crespo 2026-03-14 12:34:07 -03:00
parent d1492c48cb
commit 67256e7b18
9 changed files with 2 additions and 402 deletions

View File

@ -1,4 +1,4 @@
from contextlib import asynccontextmanager .0from contextlib import asynccontextmanager
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware

View File

@ -1,84 +0,0 @@
#!/usr/bin/env bash
# Build libqemu-xtensa.dll from lcgamboa QEMU (MSYS2 MINGW64)
set -euo pipefail
export PATH=/mingw64/bin:/usr/bin:$PATH
export MINGW_PREFIX=/mingw64
REPO="/e/Hardware/wokwi_clon/wokwi-libs/qemu-lcgamboa"
OUT="/e/Hardware/wokwi_clon/backend/app/services"
cd "$REPO"
echo "=== Working dir: $(pwd) ==="
echo "=== Step 1: Patch meson.build for libiconv ==="
if grep -q "qemu_ldflags = \[\]" meson.build; then
sed -z -i "s/qemu_ldflags = \[\]/qemu_ldflags = \['-liconv','-Wl,--allow-multiple-definition'\]/g" -- meson.build
echo " Patched OK"
else
echo " Already patched or pattern not found"
fi
echo ""
echo "=== Step 2: Configure ==="
./configure \
--target-list=xtensa-softmmu \
--disable-werror \
--disable-alsa \
--enable-tcg \
--enable-system \
--enable-gcrypt \
--enable-slirp \
--enable-iconv \
--enable-debug \
--enable-debug-info \
--without-default-features \
2>&1 || { echo "CONFIGURE FAILED"; cat meson-logs/meson-log.txt 2>/dev/null | tail -50; exit 1; }
echo ""
echo "=== Step 3: Build ($(nproc) cores) ==="
make -j$(nproc) 2>&1
echo ""
echo "=== Step 4: Relink as DLL ==="
cd build
echo " Removing old qemu-system-xtensa to force ninja to output link command..."
rm -f qemu-system-xtensa.exe qemu-system-xtensa.rsp qemu-system-xtensa_.rsp
echo " Capturing ninja link command..."
ninja -v -d keeprsp 2>&1 > qemu-system-xtensa_.rsp
echo " Extracting last line (link command)..."
sed -i -n '$p' qemu-system-xtensa_.rsp
CMD=$(sed 's/-o .*//' qemu-system-xtensa_.rsp | sed 's/\[.\/.\] //g' | sed 's/@qemu-system-xtensa.rsp//g')
if [ ! -f qemu-system-xtensa.rsp ]; then
cp qemu-system-xtensa_.rsp qemu-system-xtensa.rsp
fi
sed -i 's/.*-o /-o /' qemu-system-xtensa.rsp
# Remove main(), change output to DLL
sed -i 's|qemu-system-xtensa.p/softmmu_main.c.o||g' qemu-system-xtensa.rsp
sed -i 's|-o qemu-system-xtensa|-shared -Wl,--export-all-symbols -o libqemu-xtensa.dll|g' qemu-system-xtensa.rsp
echo " Linking DLL..."
eval "$CMD -ggdb @qemu-system-xtensa.rsp" 2>&1
if [ -f libqemu-xtensa.dll ]; then
echo ""
echo "=== SUCCESS: libqemu-xtensa.dll created ==="
ls -lh libqemu-xtensa.dll
echo ""
echo "=== Checking exports ==="
objdump -p libqemu-xtensa.dll 2>/dev/null | grep -E "qemu_picsimlab|qemu_init|qemu_main" | head -20 || echo "objdump not available"
echo ""
echo "=== Copying to backend ==="
cp libqemu-xtensa.dll "$OUT/"
echo " Copied to $OUT/libqemu-xtensa.dll"
else
echo "FAILED: libqemu-xtensa.dll not produced"
exit 1
fi

View File

@ -1,8 +0,0 @@
#!/usr/bin/env bash
export PATH=/mingw64/bin:/usr/bin:$PATH
cd /e/Hardware/wokwi_clon/wokwi-libs/qemu-lcgamboa/build
echo "=== Building qemu-system-xtensa.exe only ==="
ninja -j$(nproc) qemu-system-xtensa.exe 2>&1
echo "=== Build exit code: $? ==="
ls -lh qemu-system-xtensa.exe 2>/dev/null || echo "Binary not found"

View File

@ -1,15 +0,0 @@
#!/usr/bin/env bash
export PATH=/mingw64/bin:/usr/bin:$PATH
cd /e/Hardware/wokwi_clon/wokwi-libs/qemu-lcgamboa
echo "=== gcc ==="
gcc --version 2>&1 | head -1
echo "=== ninja ==="
ninja --version 2>&1 | head -1
echo "=== glib-2.0 ==="
pkg-config --modversion glib-2.0 2>&1
echo "=== slirp ==="
pkg-config --modversion slirp 2>&1 | head -1
echo "=== python ==="
python3 --version 2>&1 | head -1
echo "=== meson ==="
meson --version 2>&1 | head -1

View File

@ -1,6 +0,0 @@
#!/usr/bin/env bash
export PATH=/mingw64/bin:/usr/bin:$PATH
# Install distlib into the system python so QEMU configure can find it
python3 -m pip install distlib 2>&1
echo "=== distlib installed ==="
python3 -c "import distlib; print('distlib version:', distlib.__version__)"

View File

@ -1,7 +0,0 @@
#!/usr/bin/env bash
export PATH=/mingw64/bin:/usr/bin:$PATH
# Install pip and distlib
pacman -S --noconfirm mingw-w64-x86_64-python-pip mingw-w64-x86_64-python-distlib 2>&1 || true
# Check what python packages are available
pacman -Ss python-distlib 2>&1 | head -10
pacman -Ss python-pip 2>&1 | head -5

View File

@ -1,6 +1,6 @@
{ {
"version": "1.0.0", "version": "1.0.0",
"generatedAt": "2026-03-06T13:12:51.254Z", "generatedAt": "2026-03-14T15:29:57.121Z",
"components": [ "components": [
{ {
"id": "arduino-mega", "id": "arduino-mega",
@ -223,40 +223,6 @@
"ili9341" "ili9341"
] ]
}, },
{
"id": "ili9341-cap-touch",
"tagName": "wokwi-ili9341",
"name": "ILI9341 Cap Touch",
"category": "displays",
"description": "ILI9341 TFT display with FT6206 capacitive touch controller",
"thumbnail": "<svg width=\"64\" height=\"64\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"64\" height=\"64\" fill=\"#e0e0e0\" rx=\"4\"/><text x=\"50%\" y=\"50%\" text-anchor=\"middle\" dy=\".3em\" font-size=\"9\" fill=\"#666\">ILI9341 CAP</text></svg>",
"properties": [
{
"name": "flipHorizontal",
"type": "string",
"defaultValue": false,
"control": "text"
},
{
"name": "flipVertical",
"type": "string",
"defaultValue": false,
"control": "text"
}
],
"defaultValues": {
"flipHorizontal": false,
"flipVertical": false
},
"pinCount": 0,
"tags": [
"ili9341",
"ili9341-cap-touch",
"tft",
"capacitive",
"touch"
]
},
{ {
"id": "lcd2004", "id": "lcd2004",
"tagName": "wokwi-lcd2004", "tagName": "wokwi-lcd2004",
@ -734,51 +700,6 @@
"segment" "segment"
] ]
}, },
{
"id": "74hc595",
"tagName": "wokwi-74hc595",
"name": "74HC595 Shift Register",
"category": "other",
"thumbnail": "<svg width=\"64\" height=\"64\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"64\" height=\"64\" fill=\"#1a1a2e\" rx=\"4\"/><rect x=\"4\" y=\"16\" width=\"56\" height=\"30\" rx=\"2\" fill=\"#222\" stroke=\"#555\" stroke-width=\"0.8\"/><text x=\"32\" y=\"34\" text-anchor=\"middle\" font-size=\"7\" font-weight=\"bold\" fill=\"#eee\" font-family=\"monospace\">74HC595</text></svg>",
"properties": [
{
"name": "values",
"type": "number",
"defaultValue": [
0,
0,
0,
0,
0,
0,
0,
0
],
"control": "range"
}
],
"defaultValues": {
"values": [
0,
0,
0,
0,
0,
0,
0,
0
]
},
"pinCount": 16,
"tags": [
"74hc595",
"shift register",
"ic",
"chip",
"74",
"595"
]
},
{ {
"id": "analog-joystick", "id": "analog-joystick",
"tagName": "wokwi-analog-joystick", "tagName": "wokwi-analog-joystick",
@ -1781,198 +1702,6 @@
"motion", "motion",
"sensor" "sensor"
] ]
},
{
"id": "lcd1602",
"tagName": "wokwi-lcd1602",
"name": "LCD 1602",
"category": "displays",
"thumbnail": "<svg width=\"64\" height=\"64\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"64\" height=\"64\" fill=\"#1a5e1a\" rx=\"4\"/><rect x=\"4\" y=\"14\" width=\"56\" height=\"36\" rx=\"2\" fill=\"#2e7d32\"/><rect x=\"7\" y=\"18\" width=\"10\" height=\"5\" rx=\"1\" fill=\"#4caf50\" opacity=\"0.7\"/><rect x=\"19\" y=\"18\" width=\"10\" height=\"5\" rx=\"1\" fill=\"#4caf50\" opacity=\"0.7\"/><rect x=\"31\" y=\"18\" width=\"10\" height=\"5\" rx=\"1\" fill=\"#4caf50\" opacity=\"0.7\"/><rect x=\"43\" y=\"18\" width=\"10\" height=\"5\" rx=\"1\" fill=\"#4caf50\" opacity=\"0.7\"/><rect x=\"7\" y=\"26\" width=\"10\" height=\"5\" rx=\"1\" fill=\"#4caf50\" opacity=\"0.7\"/><text x=\"32\" y=\"50\" text-anchor=\"middle\" font-size=\"7\" fill=\"#81c784\" font-family=\"monospace\">LCD 1602</text></svg>",
"properties": [
{
"name": "color",
"type": "string",
"defaultValue": "black",
"control": "text"
},
{
"name": "background",
"type": "string",
"defaultValue": "green",
"control": "text"
},
{
"name": "pins",
"type": "string",
"defaultValue": "full",
"control": "text"
}
],
"defaultValues": {
"color": "black",
"background": "green",
"pins": "full"
},
"pinCount": 16,
"tags": [
"lcd1602",
"lcd 1602",
"lcd",
"16x2",
"1602",
"display",
"hd44780"
]
},
{
"id": "stepper-motor",
"tagName": "wokwi-stepper-motor",
"name": "Stepper Motor",
"category": "output",
"thumbnail": "<svg width=\"64\" height=\"64\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"64\" height=\"64\" fill=\"#37474f\" rx=\"4\"/><circle cx=\"32\" cy=\"32\" r=\"20\" fill=\"#546e7a\" stroke=\"#90a4ae\" stroke-width=\"2\"/><circle cx=\"32\" cy=\"32\" r=\"6\" fill=\"#b0bec5\"/><line x1=\"32\" y1=\"12\" x2=\"32\" y2=\"32\" stroke=\"#ffd54f\" stroke-width=\"2\" stroke-linecap=\"round\"/><text x=\"32\" y=\"56\" text-anchor=\"middle\" font-size=\"7\" fill=\"#b0bec5\" font-family=\"monospace\">STEPPER</text></svg>",
"properties": [
{
"name": "angle",
"type": "number",
"defaultValue": 0,
"control": "text"
},
{
"name": "size",
"type": "string",
"defaultValue": "23",
"control": "text"
},
{
"name": "value",
"type": "string",
"defaultValue": "",
"control": "text"
},
{
"name": "units",
"type": "string",
"defaultValue": "",
"control": "text"
}
],
"defaultValues": {
"angle": 0,
"size": "23",
"value": "",
"units": ""
},
"pinCount": 4,
"tags": [
"stepper-motor",
"stepper motor",
"stepper",
"motor",
"nema"
]
},
{
"id": "logic-gate-and",
"tagName": "wokwi-logic-and",
"name": "AND Gate",
"description": "2-input AND logic gate",
"category": "logic-gates",
"pinCount": 3,
"width": 72,
"height": 48,
"defaultProperties": {},
"properties": [],
"keywords": [
"logic",
"gate",
"and"
]
},
{
"id": "logic-gate-nand",
"tagName": "wokwi-logic-nand",
"name": "NAND Gate",
"description": "2-input NAND logic gate",
"category": "logic-gates",
"pinCount": 3,
"width": 72,
"height": 48,
"defaultProperties": {},
"properties": [],
"keywords": [
"logic",
"gate",
"nand"
]
},
{
"id": "logic-gate-or",
"tagName": "wokwi-logic-or",
"name": "OR Gate",
"description": "2-input OR logic gate",
"category": "logic-gates",
"pinCount": 3,
"width": 72,
"height": 48,
"defaultProperties": {},
"properties": [],
"keywords": [
"logic",
"gate",
"or"
]
},
{
"id": "logic-gate-nor",
"tagName": "wokwi-logic-nor",
"name": "NOR Gate",
"description": "2-input NOR logic gate",
"category": "logic-gates",
"pinCount": 3,
"width": 72,
"height": 48,
"defaultProperties": {},
"properties": [],
"keywords": [
"logic",
"gate",
"nor"
]
},
{
"id": "logic-gate-xor",
"tagName": "wokwi-logic-xor",
"name": "XOR Gate",
"description": "2-input XOR logic gate",
"category": "logic-gates",
"pinCount": 3,
"width": 72,
"height": 48,
"defaultProperties": {},
"properties": [],
"keywords": [
"logic",
"gate",
"xor"
]
},
{
"id": "logic-gate-not",
"tagName": "wokwi-logic-not",
"name": "NOT Gate",
"description": "Single-input NOT gate",
"category": "logic-gates",
"pinCount": 2,
"width": 56,
"height": 36,
"defaultProperties": {},
"properties": [],
"keywords": [
"logic",
"gate",
"not",
"inverter"
]
} }
] ]
} }

View File

@ -1,4 +0,0 @@
#!/usr/bin/env bash
export PATH=/mingw64/bin:/usr/bin:$PATH
pacman -S --noconfirm git mingw-w64-x86_64-git 2>&1 || pacman -S --noconfirm git 2>&1
git --version 2>&1

View File

@ -1,5 +0,0 @@
#!/usr/bin/env bash
export PATH=/mingw64/bin:/usr/bin:$PATH
pacman -S --noconfirm mingw-w64-x86_64-meson 2>&1
echo "=== meson version ==="
meson --version 2>&1