chore: 工程工具 + CMake 修复
- tools/build.sh: 一键编译(支持 Release/Debug/ASan) - tools/run_tests.sh: 运行测试 - tools/release.sh: 发布打包 - tools/format.sh: 代码格式化 - tools/clean.sh: 清理构建产物 - 修复 CMakeLists.txt: vde_compile_options 顺序错误 - 修复 src/CMakeLists.txt: 移除重复配置行
This commit is contained in:
Executable
+31
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
BUILD_TYPE="${BUILD_TYPE:-Release}"
|
||||
BUILD_DIR="${BUILD_DIR:-build}"
|
||||
JOBS="${JOBS:-$(nproc)}"
|
||||
ENABLE_TESTS="${ENABLE_TESTS:-ON}"
|
||||
ENABLE_SANITIZERS="${ENABLE_SANITIZERS:-OFF}"
|
||||
|
||||
echo "=== ViewDesignEngine Build ==="
|
||||
echo " Build Type: $BUILD_TYPE"
|
||||
echo " Build Dir: $BUILD_DIR"
|
||||
echo " Jobs: $JOBS"
|
||||
echo " Tests: $ENABLE_TESTS"
|
||||
echo " Sanitizers: $ENABLE_SANITIZERS"
|
||||
echo ""
|
||||
|
||||
cmake -B "$BUILD_DIR" \
|
||||
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
||||
-DBUILD_TESTS="$ENABLE_TESTS" \
|
||||
-DBUILD_EXAMPLES=ON \
|
||||
-DENABLE_SANITIZERS="$ENABLE_SANITIZERS" \
|
||||
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
|
||||
|
||||
cmake --build "$BUILD_DIR" -j"$JOBS"
|
||||
|
||||
echo ""
|
||||
echo "=== Build Complete ==="
|
||||
echo "Libraries: $BUILD_DIR/src/libvde*.a"
|
||||
echo "Executables: $BUILD_DIR/tests/"
|
||||
echo "Examples: $BUILD_DIR/examples/"
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
rm -rf build build-release build-debug build-asan release
|
||||
echo "Cleaned build artifacts."
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== Clang Format ==="
|
||||
find src include tests examples -name "*.cpp" -o -name "*.h" | while read f; do
|
||||
clang-format -i "$f" 2>/dev/null && echo " formatted: $f" || true
|
||||
done
|
||||
echo "Done."
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/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"
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
BUILD_DIR="${BUILD_DIR:-build}"
|
||||
|
||||
if [ ! -d "$BUILD_DIR" ]; then
|
||||
echo "Build directory not found. Run tools/build.sh first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== ViewDesignEngine Tests ==="
|
||||
cd "$BUILD_DIR"
|
||||
ctest --output-on-failure -j"$(nproc)" "$@"
|
||||
Reference in New Issue
Block a user