#!/bin/bash set -euo pipefail VERSION="${1:-$(date +%Y%m%d)}" RELEASE_NAME="ViewDesignEngine-${VERSION}" BUILD_DIR="build-release" echo "=== ViewDesignEngine Release $VERSION ===" # Clean build rm -rf "$BUILD_DIR" # Build release BUILD_DIR="$BUILD_DIR" BUILD_TYPE=Release ENABLE_TESTS=ON bash tools/build.sh # Run tests echo "" echo "=== Running Tests ===" BUILD_DIR="$BUILD_DIR" bash tools/run_tests.sh # Package echo "" echo "=== Packaging ===" mkdir -p release PACKAGE_DIR="release/$RELEASE_NAME" rm -rf "$PACKAGE_DIR" mkdir -p "$PACKAGE_DIR"/{lib,include,bin,docs} # Headers cp -r include/vde "$PACKAGE_DIR/include/" # Libraries find "$BUILD_DIR/src" -name "libvde*.a" -exec cp {} "$PACKAGE_DIR/lib/" \; # Examples for exe in "$BUILD_DIR"/examples/*/*; do if [ -x "$exe" ] && [ ! -d "$exe" ]; then cp "$exe" "$PACKAGE_DIR/bin/" fi done # Docs cp -r docs "$PACKAGE_DIR/" cp README.md LICENSE CHANGELOG.md "$PACKAGE_DIR/" # Archive cd release tar -czf "${RELEASE_NAME}-linux-x64.tar.gz" "$RELEASE_NAME" echo "" echo "=== Release Package ===" ls -lh "${RELEASE_NAME}-linux-x64.tar.gz" echo " $PWD/${RELEASE_NAME}-linux-x64.tar.gz"