hoolang/Dockerfile

43 lines
1.4 KiB
Docker

FROM ubuntu:oracular AS build
RUN apt-get update
RUN apt-get install -y git
RUN apt-get install -y cmake clang-19
RUN apt-get install -y openjdk-21-jdk-headless maven
RUN mkdir /builds
WORKDIR /builds
RUN git clone https://github.com/antlr/antlr4.git
WORKDIR /builds/antlr4
RUN git checkout 4.13.2
ENV MAVEN_OPTS="-Xmx1G"
RUN mvn clean
RUN mvn -DskipTests install
RUN echo "if [ ! -f /root/.m2/repository/org/antlr/antlr4/4.13.2/antlr4-4.13.2-complete.jar ]; then exit 1; fi" > verify.sh
RUN chmod +x verify.sh
RUN ./verify.sh
RUN mkdir -p /custom/antlr4
RUN cp /root/.m2/repository/org/antlr/antlr4/4.13.2/antlr4-4.13.2-complete.jar /custom/antlr4/antlr4-4.13.2-complete.jar
RUN mkdir -p /custom/antlr4-cpp-runtime
WORKDIR /builds/antlr4/runtime/Cpp
RUN mkdir build
WORKDIR /builds/antlr4/runtime/Cpp/build
ENV CXX=/usr/bin/clang++-19
RUN cmake .. -DANTLR4_INSTALL=ON
RUN make
RUN DESTDIR=/custom/antlr4-cpp-runtime make install
FROM ubuntu:oracular AS runtime
RUN apt-get update
RUN apt-get install -y git
RUN apt-get install -y cmake clang-19
RUN apt-get install -y openjdk-21-jdk-headless maven
RUN apt-get install -y llvm llvm-dev
RUN apt-get install -y libedit-dev libzstd-dev libcurlpp-dev
RUN apt-get install -y libgtest-dev
RUN apt-get install -y gdb
COPY --from=build /custom/antlr4-cpp-runtime/usr/ /usr/
COPY --from=build /custom/antlr4/antlr4-4.13.2-complete.jar /usr/local/lib/antlr4-4.13.2-complete.jar
ENV CXX=/usr/bin/clang++-19