FROM ubuntu:22.04

RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && \
    apt-get install -y \
    bison \
    cmake \
    build-essential \
    pkg-config \
    clang \
    flex \
    gfortran \
    libc++-dev \
    libc++abi-dev \
    libblas-dev liblapack-dev \
    liblua5.3-dev \
    libpython3-dev \
    libcfitsio-dev \
    libfftw3-dev \
    libgsl-dev \
    libpng-dev \
    python3 \
    python3-distutils \
    wcslib-dev \
    wget

RUN \
    mkdir -p /software && \
    cd /software && \
    wget -nv -O - https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 | tar xj && \
    cd boost_1_78_0/ && \
    ./bootstrap.sh --with-toolset=clang && \
    ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" install

RUN \
    mkdir -p /software && \
    cd /software && \
    wget -nv -O - https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5-1_12_1.tar.gz | tar xz && \
    cd /software/hdf5-hdf5-1_12_1 && \
    CC=/usr/bin/clang CXX=/usr/bin/clang++ CXXFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++" ./configure --prefix /usr/local --enable-cxx && \
    make -j`nproc` install

RUN \
    mkdir -p /software/casacore/build && \
    cd /software/casacore && \
    wget -nv -O - https://github.com/casacore/casacore/archive/refs/tags/v3.4.0.tar.gz | tar xz && \
    cd build && \
    cmake \
      -DBUILD_TESTING=OFF -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_CXX_FLAGS="-stdlib=libc++" \
      -DBUILD_PYTHON=OFF -DBUILD_PYTHON3=OFF \
      ../casacore-3.4.0 && \
    make install -j`nproc`

ADD . /src
WORKDIR /src

RUN mkdir /build && cd /build && cmake ../src -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_CXX_FLAGS="-stdlib=libc++"

RUN cd /build && make -j`nproc --all` && make install

RUN cd /build/python && echo "import aoflagger" | python3
