59 lines
1.5 KiB
Bash
Executable File
59 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
|
|
#make canonical
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/../" &> /dev/null && pwd)"
|
|
|
|
|
|
export CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Debug}"
|
|
|
|
# Function to build a project
|
|
build_project() {
|
|
local project="$1"
|
|
local platform="${2:-}"
|
|
|
|
local build_cmd
|
|
local tag
|
|
local output_dir
|
|
|
|
|
|
if [ -n "${platform}" ]; then
|
|
build_cmd=(docker buildx build "--platform" "${platform}")
|
|
local tag_suffix="${platform##*/}" # Extract arch from platform (e.g., linux/arm64 -> arm64)
|
|
tag="gitea.jde.nz/public/${project}-build-${tag_suffix}:test"
|
|
output_dir="${SCRIPT_DIR}/output/${tag_suffix}"
|
|
else
|
|
build_cmd=(docker build)
|
|
tag="gitea.jde.nz/public/${project}-build:test"
|
|
output_dir="${SCRIPT_DIR}/output/native"
|
|
fi
|
|
|
|
mkdir -p "${output_dir}"
|
|
|
|
"${build_cmd[@]}" \
|
|
-t "${tag}" \
|
|
-f "${SCRIPT_DIR}/Dockerfile.test-build" \
|
|
--build-arg PROJECT="${project}" \
|
|
--build-arg CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
|
|
--output "${output_dir}" \
|
|
"${SCRIPT_DIR}/${project}"
|
|
}
|
|
|
|
# Clean and prepare output directory
|
|
rm -rf "${SCRIPT_DIR}/output"
|
|
mkdir -p "${SCRIPT_DIR}/output"
|
|
|
|
# Build all projects
|
|
echo "Building ipdemo..."
|
|
build_project "ipdemo"
|
|
|
|
echo "Building ipdemo for aarch64..."
|
|
build_project "ipdemo" "linux/arm64"
|
|
|
|
echo "Building test_libs..."
|
|
build_project "test_libs"
|
|
|