Resolves more formats of URLs correctly: absolute, root-relative, relative, parent-relative, and URLs with query strings and fragments.
37 lines
805 B
Bash
Executable File
37 lines
805 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
BUILD_DIR="$ROOT_DIR/build/url_utils"
|
|
BINARY="$BUILD_DIR/UrlUtilsTest"
|
|
PLATFORMIO_DIR="${PLATFORMIO_CORE_DIR:-$HOME/.platformio}"
|
|
ARDUINO_FRAMEWORK_DIR="$PLATFORMIO_DIR/packages/framework-arduinoespressif32"
|
|
|
|
mkdir -p "$BUILD_DIR"
|
|
|
|
SOURCES=(
|
|
"$ROOT_DIR/test/url_utils/UrlUtilsTest.cpp"
|
|
"$ROOT_DIR/src/util/UrlUtils.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/src"
|
|
-I"$ARDUINO_FRAMEWORK_DIR/cores/esp32"
|
|
-I"$ARDUINO_FRAMEWORK_DIR/variants/esp32c3"
|
|
)
|
|
|
|
c++ "${CXXFLAGS[@]}" "${SOURCES[@]}" -o "$BINARY"
|
|
|
|
"$BINARY" "$@"
|