43 lines
1.4 KiB
Docker
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
|