name: 'Build Nominatim'

inputs:
    ubuntu:
        description: 'Version of Ubuntu to install on'
        required: false
        default: '20'
    cmake-args:
        description: 'Additional options to hand to cmake'
        required: false
        default: ''
    lua:
        description: 'Version of Lua to use'
        required: false
        default: '5.3'

runs:
    using: "composite"

    steps:
        - name: Clean out the disk
          run: |
            sudo rm -rf /opt/hostedtoolcache/go /opt/hostedtoolcache/CodeQL /usr/lib/jvm /usr/local/share/chromium /usr/local/lib/android
            df -h
          shell: bash
        - name: Install prerequisites
          run: |
            sudo apt-get install -y -qq libboost-system-dev libboost-filesystem-dev libexpat1-dev zlib1g-dev libbz2-dev libpq-dev libproj-dev libicu-dev liblua${LUA_VERSION}-dev lua${LUA_VERSION}
            if [ "x$UBUNTUVER" == "x18" ]; then
                pip3 install python-dotenv psycopg2==2.7.7 jinja2==2.8 psutil==5.4.2 pyicu==2.9 osmium PyYAML==5.1 datrie
            else
                sudo apt-get install -y -qq python3-icu python3-datrie python3-pyosmium python3-jinja2 python3-psutil python3-psycopg2 python3-dotenv python3-yaml
            fi
          shell: bash
          env:
            UBUNTUVER: ${{ inputs.ubuntu }}
            CMAKE_ARGS: ${{ inputs.cmake-args }}
            LUA_VERSION: ${{ inputs.lua }}

        - name: Configure
          run: mkdir build && cd build && cmake $CMAKE_ARGS ../Nominatim
          shell: bash
          env:
            CMAKE_ARGS: ${{ inputs.cmake-args }}

        - name: Build
          run: |
              make -j2 all
              sudo make install
          shell: bash
          working-directory: build
