Files
Crosspoint/test/run_epub_css_test.sh
T

66 lines
1.7 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
BUILD_DIR="$ROOT_DIR/build/epub_css"
BINARY="$BUILD_DIR/CssParserTest"
PLATFORMIO_DIR="${PLATFORMIO_CORE_DIR:-$HOME/.platformio}"
ARDUINO_FRAMEWORK_DIR="$PLATFORMIO_DIR/packages/framework-arduinoespressif32"
PIO_CMD=""
if command -v pio >/dev/null 2>&1; then
PIO_CMD="pio"
elif command -v platformio >/dev/null 2>&1; then
PIO_CMD="platformio"
fi
if [ ! -d "$PLATFORMIO_DIR" ] && [ -n "$PIO_CMD" ]; then
PLATFORMIO_DIR="$($PIO_CMD settings get home_dir 2>/dev/null || true)"
if [ -n "$PLATFORMIO_DIR" ] && [ -d "$PLATFORMIO_DIR" ]; then
ARDUINO_FRAMEWORK_DIR="$PLATFORMIO_DIR/packages/framework-arduinoespressif32"
echo "Using PLATFORMIO_DIR from $PIO_CMD: $PLATFORMIO_DIR"
fi
fi
if [ ! -d "$PLATFORMIO_DIR" ]; then
echo "SKIP: PLATFORMIO_DIR does not exist and PlatformIO could not be located; skipping EPUB CSS test." >&2
exit 0
fi
if [ ! -d "$ARDUINO_FRAMEWORK_DIR" ]; then
echo "SKIP: ARDUINO_FRAMEWORK_DIR does not exist: $ARDUINO_FRAMEWORK_DIR; skipping EPUB CSS test." >&2
exit 0
fi
mkdir -p "$BUILD_DIR"
SOURCES=(
"$ROOT_DIR/test/epub_css/CssParserTest.cpp"
"$ROOT_DIR/lib/Epub/Epub/css/CssParser.cpp"
"$ROOT_DIR/lib/hal/HalStorage.cpp"
"$ROOT_DIR/lib/Logging/Logging.cpp"
)
CXXFLAGS=(
-std=c++20
-O2
-Wall
-Wextra
-pedantic
-fno-exceptions
-DARDUINO_USB_MODE=1
-DARDUINO_USB_CDC_ON_BOOT=1
-DDESTRUCTOR_CLOSES_FILE=1
-I"$ROOT_DIR/test/shims"
-I"$ROOT_DIR"
-I"$ROOT_DIR/lib"
-I"$ROOT_DIR/lib/hal"
-I"$ROOT_DIR/lib/Logging"
-I"$ARDUINO_FRAMEWORK_DIR/cores/esp32"
-I"$ARDUINO_FRAMEWORK_DIR/variants/esp32c3"
)
c++ "${CXXFLAGS[@]}" "${SOURCES[@]}" -o "$BINARY"
"$BINARY" "$@"