-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild-with-buildroot.sh
More file actions
83 lines (71 loc) · 2.57 KB
/
Copy pathbuild-with-buildroot.sh
File metadata and controls
83 lines (71 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
# Build order_gateway with Buildroot cross-compiler
# This script sets up the environment and builds the project
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BUILDROOT_HOST="/work/tos/buildroot/output/host"
if [ ! -d "$BUILDROOT_HOST" ]; then
echo "Error: Buildroot host directory not found at $BUILDROOT_HOST"
echo "Please build Buildroot first: cd /work/tos/buildroot && ./run.sh"
exit 1
fi
# Set Buildroot toolchain paths
export PATH="$BUILDROOT_HOST/bin:$PATH"
# Set cross-compilation variables
export CC=x86_64-buildroot-linux-gnu-gcc
export CXX=x86_64-buildroot-linux-gnu-g++
export CMAKE_SYSROOT="$BUILDROOT_HOST/x86_64-buildroot-linux-gnu/sysroot"
echo "=========================================="
echo "Building order_gateway with Buildroot toolchain"
echo "=========================================="
echo "CC: $CC"
echo "CXX: $CXX"
echo "SYSROOT: $CMAKE_SYSROOT"
echo ""
# Verify toolchain
if ! command -v "$CC" >/dev/null 2>&1; then
echo "Error: $CC not found in PATH"
echo "PATH: $PATH"
exit 1
fi
# Verify compiler version
echo "Verifying toolchain..."
"$CC" --version | head -1
"$CXX" --version | head -1
echo ""
# Create build directory
cd "$SCRIPT_DIR"
rm -rf build
mkdir build
cd build
echo "Configuring CMake..."
# Explicitly exclude vcpkg to prevent linking host-built libraries
cmake .. \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=x86_64 \
-DCMAKE_C_COMPILER="$CC" \
-DCMAKE_CXX_COMPILER="$CXX" \
-DCMAKE_SYSROOT="$CMAKE_SYSROOT" \
-DCMAKE_FIND_ROOT_PATH="$CMAKE_SYSROOT" \
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY \
-DCMAKE_PREFIX_PATH="$CMAKE_SYSROOT/usr" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
echo ""
echo "Building..."
make -j$(nproc)
echo ""
echo "=========================================="
echo "Build complete!"
echo "=========================================="
echo "Binary: $SCRIPT_DIR/build/trading_system_orchestrator"
echo ""
echo "Copying to Buildroot overlay:"
mkdir -p /work/tos/trading-linux/buildroot-external/board/trading/overlay/opt/tradingv1/bin
mkdir -p /work/tos/trading-linux/buildroot-external/board/trading/overlay/opt/tradingv1/config
cp trading_system_orchestrator /work/tos/trading-linux/buildroot-external/board/trading/overlay/opt/tradingv1/bin
cp ../config/system_config.json /work/tos/trading-linux/buildroot-external/board/trading/overlay/opt/tradingv1/config/system_config.json
echo "Done"