mirror of
https://github.com/The-OpenROAD-Project/OpenDB.git
synced 2026-03-06 17:31:17 +08:00
70 lines
2.5 KiB
Docker
70 lines
2.5 KiB
Docker
FROM centos:centos7 AS base-dependencies
|
|
LABEL maintainer="Abdelrahman Hosny <abdelrahman_hosny@brown.edu>"
|
|
|
|
# Install dev and runtime dependencies
|
|
RUN yum group install -y "Development Tools" \
|
|
&& yum install -y https://repo.ius.io/ius-release-el7.rpm \
|
|
&& yum install -y centos-release-scl \
|
|
&& yum install -y wget devtoolset-8 \
|
|
devtoolset-8-libatomic-devel tcl-devel tcl tk libstdc++ tk-devel pcre-devel \
|
|
python36u python36u-libs python36u-devel python36u-pip && \
|
|
yum clean -y all && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV CC=/opt/rh/devtoolset-8/root/usr/bin/gcc \
|
|
CPP=/opt/rh/devtoolset-8/root/usr/bin/cpp \
|
|
CXX=/opt/rh/devtoolset-8/root/usr/bin/g++ \
|
|
PATH=/opt/rh/devtoolset-8/root/usr/bin:$PATH \
|
|
LD_LIBRARY_PATH=/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:/opt/rh/devtoolset-8/root/usr/lib64/dyninst:/opt/rh/devtoolset-8/root/usr/lib/dyninst:/opt/rh/devtoolset-8/root/usr/lib64:/opt/rh/devtoolset-8/root/usr/lib:$LD_LIBRARY_PATH
|
|
|
|
# Install CMake
|
|
RUN wget https://cmake.org/files/v3.14/cmake-3.14.0-Linux-x86_64.sh && \
|
|
chmod +x cmake-3.14.0-Linux-x86_64.sh && \
|
|
./cmake-3.14.0-Linux-x86_64.sh --skip-license --prefix=/usr/local && rm -rf cmake-3.14.0-Linux-x86_64.sh \
|
|
&& yum clean -y all
|
|
|
|
# Install epel repo
|
|
RUN wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
|
|
yum install -y epel-release-latest-7.noarch.rpm && rm -rf epel-release-latest-7.noarch.rpm \
|
|
&& yum clean -y all
|
|
|
|
# Install any git version > 2.6.5
|
|
RUN yum remove -y git* && yum install -y git224
|
|
|
|
# Install SWIG
|
|
RUN yum remove -y swig \
|
|
&& wget https://github.com/swig/swig/archive/rel-4.0.1.tar.gz \
|
|
&& tar xfz rel-4.0.1.tar.gz \
|
|
&& rm -rf rel-4.0.1.tar.gz \
|
|
&& cd swig-rel-4.0.1 \
|
|
&& ./autogen.sh && ./configure --prefix=/usr && make -j $(nproc) && make install \
|
|
&& cd .. \
|
|
&& rm -rf swig-rel-4.0.1
|
|
|
|
# boost
|
|
RUN wget https://sourceforge.net/projects/boost/files/boost/1.72.0/boost_1_72_0.tar.bz2/download && \
|
|
tar -xf download && \
|
|
cd boost_1_72_0 && \
|
|
./bootstrap.sh && \
|
|
./b2 install --with-iostreams --with-test -j $(nproc)
|
|
|
|
RUN pip3 install testtools
|
|
|
|
# spdlog for logging
|
|
RUN git clone -b v1.8.1 https://github.com/gabime/spdlog.git \
|
|
&& cd spdlog \
|
|
&& mkdir build \
|
|
&& cd build \
|
|
&& cmake .. \
|
|
&& make install -j
|
|
|
|
FROM base-dependencies AS builder
|
|
|
|
|
|
COPY . /OpenDB
|
|
WORKDIR /OpenDB
|
|
|
|
# Build
|
|
RUN mkdir build
|
|
RUN cd build && cmake .. && make -j 4
|