distributable:
  url: https://poppler.freedesktop.org/{{version.tag}}.tar.xz
  strip-components: 1

display-name: poppler-qt5

versions:
  gitlab: gitlab.freedesktop.org:poppler/poppler/tags
  strip: /^poppler-/

dependencies:
  gnupg.org/libassuan: ^2
  cairographics.org: ^1
  freedesktop.org/fontconfig: ^2
  freetype.org: ^2
  gnu.org/gettext: ^0
  gnome.org/glib: ^2
  gnupg.org/gpgme: ^1
  gnupg.org/libgpg-error: ^1
  libjpeg-turbo.org: ^2
  libpng.org: ^1
  simplesystems.org/libtiff: ^4
  littlecms.com: ^2
  mozilla.org/nss: ^3
  openjpeg.org: ^2
  qt.io: ~5
  curl.se: ^8
  linux:
    gnu.org/gcc: '*' # apparently, clang c++20 std isn't good enough

build:
  dependencies:
    cmake.org: '*'
    gnome.org/gobject-introspection: '*'
    linux:
      gnu.org/binutils: ^2
  script:
    # FIXME:
    # llvm.org from a dep is infecting our build env for linux, where we _need_ gcc;
    # all methods of overriding assembler detection are failing; so we have this nonsense
    - run: |
        ORIG_AS="$(command -v as)"
        if echo $ORIG_AS | grep llvm.org; then
          mv ${ORIG_AS}{,.bak}
        fi
      if: linux

    - cmake . $CMAKE_ARGS
    - make --jobs {{ hw.concurrency }} install
    - make clean
    - cmake . -DBUILD_SHARED_LIBS=OFF $CMAKE_ARGS
    - make --jobs {{ hw.concurrency }}
    - install libpoppler.a cpp/libpoppler-cpp.a glib/libpoppler-glib.a {{prefix}}/lib/
    - run: |
        curl -L "$FONT_DATA" | tar -xz --strip-components=1
        make install prefix={{prefix}}
      working-directory: font-data

    - run: |
        if test -e "${ORIG_AS}.bak"; then
          mv ${ORIG_AS}{.bak,}
        fi
      if: linux
  env:
    FONT_DATA: https://poppler.freedesktop.org/poppler-data-0.4.12.tar.gz
    CMAKE_ARGS:
      - -DCMAKE_INSTALL_PREFIX="{{prefix}}
      - -DCMAKE_INSTALL_LIBDIR=lib
      - -DCMAKE_BUILD_TYPE=Release
      - -DCMAKE_FIND_FRAMEWORK=LAST
      - -DCMAKE_VERBOSE_MAKEFILE=ON
      - -Wno-dev
      - -DBUILD_TESTING=OFF
      - -DBUILD_GTK_TESTS=OFF
      - -DENABLE_BOOST=OFF
      - -DENABLE_CMS=lcms2
      - -DENABLE_GLIB=ON
      - -DENABLE_QT5=ON
      - -DENABLE_QT6=OFF
      - -DENABLE_UNSTABLE_API_ABI_HEADERS=ON
      - -DRUN_GPERF_IF_PRESENT=OFF
      - -DWITH_GObjectIntrospection=ON
    darwin:
      CXXFLAGS: '$CXXFLAGS -std=c++11'
    linux:
      # ld.lld: error: undefined symbol: std::filesystem::__cxx11::path::_M_split_cmpts()
      LDFLAGS: '$LDFLAGS -lstdc++fs'
      CC: gcc
      CXX: g++
      LD: ld.gold

provides:
  - bin/pdfattach
  - bin/pdfdetach
  - bin/pdffonts
  - bin/pdfimages
  - bin/pdfinfo
  - bin/pdfseparate
  - bin/pdfsig
  - bin/pdftocairo
  - bin/pdftohtml
  - bin/pdftoppm
  - bin/pdftops
  - bin/pdftotext
  - bin/pdfunite

test:
  - pdfinfo lorem.pdf | grep "Lorem Ipsum"
  - pkg-config --modversion poppler-qt5 | grep "{{version.raw}}"
