66 lines
1.7 KiB
Bash
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" "$@"
|