blob: 51c773fdcba9e9e485b28f49d44d81cfe575f296 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#!/bin/bash
# Measures core demo size by building with STRIP_EXTERNAL_LIBS
# Binary compiles but does NOT run (all I/O stubbed)
set -e
echo "=== Demo Size Measurement ==="
echo ""
# Clean previous build
rm -rf build_size
# Build with STRIP_EXTERNAL_LIBS
echo "Building with STRIP_EXTERNAL_LIBS..."
cmake -S . -B build_size -DDEMO_STRIP_EXTERNAL_LIBS=ON
cmake --build build_size -j4
# Strip debug symbols
strip build_size/demo64k
# Measure sizes
echo ""
echo "=== Size Results ==="
echo ""
DEMO_SIZE=$(stat -f%z build_size/demo64k 2>/dev/null || stat -c%s build_size/demo64k)
DEMO_SIZE_KB=$((DEMO_SIZE / 1024))
echo "Demo code only: ${DEMO_SIZE_KB} KB (${DEMO_SIZE} bytes)"
# Compare with normal build if it exists
if [ -f build/demo64k ]; then
NORMAL_SIZE=$(stat -f%z build/demo64k 2>/dev/null || stat -c%s build/demo64k)
NORMAL_SIZE_KB=$((NORMAL_SIZE / 1024))
EXTERNAL_SIZE=$((NORMAL_SIZE - DEMO_SIZE))
EXTERNAL_SIZE_KB=$((EXTERNAL_SIZE / 1024))
echo ""
echo "Normal build: ${NORMAL_SIZE_KB} KB (${NORMAL_SIZE} bytes)"
echo "External libs: ${EXTERNAL_SIZE_KB} KB (${EXTERNAL_SIZE} bytes)"
echo ""
echo "Demo is $(echo "scale=1; $DEMO_SIZE * 100 / $NORMAL_SIZE" | bc)% of total size"
fi
echo ""
echo "Note: Size measurement binary does NOT run (all I/O stubbed)"
|