mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 03:51:18 +00:00
Update docker script and dockerfile
Using Ubuntu 23 throws an error "groupadd: GID '1000' already exists" when trying to build. Ubuntu 22 works fine. There should be no difference between building C3 on Ubuntu 22 vs 23. To avoid issues raised it's best to move to single Ubuntu version that builds the compiler.
This commit is contained in:
@@ -2,13 +2,13 @@
|
||||
## build-with-docker.sh
|
||||
## @author gdm85
|
||||
##
|
||||
## Script to build c3c for either Ubuntu 22 or 23.
|
||||
## Script to build c3c for Ubuntu 22
|
||||
##
|
||||
#
|
||||
|
||||
if [ $# -ne 1 -a $# -ne 2 ]; then
|
||||
echo "Usage: build-with-docker.sh (22|23) [Debug|Release]" 1>&2
|
||||
exit 1
|
||||
echo "Usage: build-with-docker.sh [Debug|Release]" 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -e
|
||||
@@ -17,37 +17,29 @@ DOCKER=docker
|
||||
DOCKER_RUN=""
|
||||
IMAGE="c3c-builder"
|
||||
if type podman 2>/dev/null >/dev/null; then
|
||||
DOCKER=podman
|
||||
DOCKER_RUN="--userns=keep-id"
|
||||
IMAGE="localhost/$IMAGE"
|
||||
DOCKER=podman
|
||||
DOCKER_RUN="--userns=keep-id"
|
||||
IMAGE="localhost/$IMAGE"
|
||||
fi
|
||||
|
||||
if [ -z "$2" ]; then
|
||||
CMAKE_BUILD_TYPE=Debug
|
||||
if [ -z "$1" ]; then
|
||||
CMAKE_BUILD_TYPE=Debug
|
||||
else
|
||||
CMAKE_BUILD_TYPE="$2"
|
||||
CMAKE_BUILD_TYPE="$1"
|
||||
fi
|
||||
|
||||
TAG="$1"
|
||||
if [ "$1" = 22 ]; then
|
||||
UBUNTU_VERSION="22.10"
|
||||
LLVM_VERSION="15"
|
||||
elif [ "$1" = 23 ]; then
|
||||
UBUNTU_VERSION="23.04"
|
||||
LLVM_VERSION="15"
|
||||
else
|
||||
echo "ERROR: expected 22 or 23 as Ubuntu version argument" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
IMAGE="$IMAGE:$TAG"
|
||||
UBUNTU_VERSION="22.10"
|
||||
LLVM_VERSION="15"
|
||||
|
||||
cd docker && $DOCKER build -t $IMAGE --build-arg UID=$(id -u) --build-arg GID=$(id -g) \
|
||||
--build-arg DEPS="llvm-$LLVM_VERSION-dev liblld-$LLVM_VERSION-dev clang-$LLVM_VERSION libllvm$LLVM_VERSION llvm-$LLVM_VERSION-runtime" \
|
||||
--build-arg UBUNTU_VERSION="$UBUNTU_VERSION" .
|
||||
IMAGE="$IMAGE:22"
|
||||
|
||||
cd docker && $DOCKER build -t $IMAGE\
|
||||
--build-arg DEPS="llvm-$LLVM_VERSION-dev liblld-$LLVM_VERSION-dev clang-$LLVM_VERSION libllvm$LLVM_VERSION llvm-$LLVM_VERSION-runtime" \
|
||||
--build-arg UBUNTU_VERSION="$UBUNTU_VERSION" .
|
||||
cd ..
|
||||
|
||||
rm -rf build bin
|
||||
mkdir -p build bin
|
||||
|
||||
exec $DOCKER run -ti --rm --tmpfs=/tmp $DOCKER_RUN -v "$PWD":/home/c3c/source -w /home/c3c/source $IMAGE bash -c \
|
||||
"cd build && cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DC3_LLVM_VERSION=$LLVM_VERSION .. && cmake --build . && mv c3c lib ../bin/"
|
||||
"cd build && cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DC3_LLVM_VERSION=$LLVM_VERSION .. && cmake --build . && mv c3c lib ../bin/"
|
||||
Reference in New Issue
Block a user