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
parent
d1492c48cb
commit
67256e7b18
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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"
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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__)"
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
Loading…
Reference in New Issue