# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
# Contributor: Tobias Kieslich <tobias@justdreams.de>
# Contributor: tobias <tobias@archlinux.org>

pkgname=inkscape
pkgver=1.4.3
pkgrel=4
pkgdesc='Professional vector graphics editor'
url='https://inkscape.org/'
license=('GPL' 'LGPL')
arch=('x86_64')
makedepends=('cmake' 'boost' 'git' 'glib2-devel')

depends=(
  'atkmm' 'libatkmm-1.6.so'
  'boost-libs'
  'cairo' 'libcairo.so' 'libcairo-gobject.so'
  'cairomm' 'libcairomm-1.0.so'
  'double-conversion'
  'fontconfig' 'libfontconfig.so'
  'freetype2' 'libfreetype.so'
  'gc'
  'gdk-pixbuf2' 'libgdk_pixbuf-2.0.so'
  'glib2' 'libglib-2.0.so' 'libgmodule-2.0.so'
  'glibc'
  'glibmm' 'libglibmm-2.4.so' # 'libgiomm-2.4.so'
  'gobject-introspection-runtime'
  'graphicsmagick' # 'libGraphicsMagick++.so'
  'gsl' # 'libgsl.so'
  'gspell' 'libgspell-1.so'
  'gtk3' 'libgdk-3.so' 'libgtk-3.so'
  'gtkmm3' 'libgdkmm-3.0.so' 'libgtkmm-3.0.so'
  'gtksourceview4' 'libgtksourceview-4.so'
  'harfbuzz' 'libharfbuzz.so'
  'hicolor-icon-theme'
  'lcms2' 'liblcms2.so'
  'lib2geom' # 'lib2geom.so'
  'libcdr' # 'libcdr-0.1.so'
  'libepoxy' 'libepoxy.so'
  'libgcc' 'libgcc_s.so'
  'libgomp' 'libgomp.so'
  'libjpeg-turbo' 'libjpeg.so'
  'libpng' 'libpng16.so'
  'librevenge' # 'librevenge-0.0.so'
  'libsigc++' 'libsigc-2.0.so'
  'libstdc++' 'libstdc++.so'
  'libvisio' # 'libvisio-0.1.so'
  'libwpg' # 'libwpg-0.3.so'
  'libx11'
  'libxml2' 'libxml2.so'
  'libxslt' 'libxslt.so'
  'pango' 'libpango-1.0.so' 'libpangocairo-1.0.so' 'libpangoft2-1.0.so'
  'pangomm' 'libpangomm-1.4.so'
  'poppler' 'libpoppler.so'
  'poppler-glib' 'libpoppler-glib.so'
  'potrace' # 'libpotrace.so'
  'python'
  'python-appdirs'
  'python-beautifulsoup4'
  'python-cachecontrol'
  'python-cairo'
  'python-certifi'
  'python-chardet'
  'python-cssselect'
  'python-filelock'
  'python-gobject'
  'python-idna'
  'python-lxml'
  'python-msgpack'
  'python-numpy'
  'python-packaging'
  'python-pillow'
  'python-pyserial'
  'python-requests'
  'python-tinycss2'
  'python-urllib3'
  'python-zstandard'
  'readline' 'libreadline.so'
  'scour'
  'ttf-font'
  'zlib' 'libz.so'
)

optdepends=(
  'fig2dev: xfig input'
  'gvfs: import clip art'
  'pstoedit: latex formulas'
  # this pulls in texlive-basic, so should suffice
  'texlive-pstricks: latex formulas'
)

source=("git+https://gitlab.com/inkscape/inkscape.git#tag=INKSCAPE_${pkgver//./_}"
        'inkscape-extensions::git+https://gitlab.com/inkscape/extensions.git'
        'inkscape-libcroco::git+https://gitlab.com/inkscape/libcroco.git'
        'inkscape-themes::git+https://gitlab.com/inkscape/themes.git'
        'inkscape-extras-extensions-gcodetools::git+https://gitlab.com/inkscape/extras/extensions-gcodetools.git'
        'inkscape-extras-extension-manager::git+https://gitlab.com/inkscape/extras/extension-manager.git'
        'inkscape-extras-inkscape-import-clipart::git+https://gitlab.com/inkscape/extras/inkscape-import-clipart.git'
        'inkscape-extras-extension-xaml::git+https://gitlab.com/inkscape/extras/extension-xaml.git'
        'inkscape-extras-extension-afdesign::git+https://gitlab.com/inkscape/extras/extension-afdesign.git'
        'inkscape-extras-extension-curve::git+https://gitlab.com/inkscape/extras/extension-curve.git')
sha256sums=('312548aa33fff38c1a54bd4093c494051c55ed8b20cf8650499620236c1d3471'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            'SKIP')

_backports=(
  # Fix build with poppler 26.01.0
  # https://gitlab.com/inkscape/inkscape/-/commit/3a528728ebe33e10bb44d152f47cfedfddbfe18a
  '3a528728ebe33e10bb44d152f47cfedfddbfe18a'
  # Fix build with Poppler 0.26.02
  # https://gitlab.com/inkscape/inkscape/-/commit/47e20c0503ab1464d528f2cc7dd5e6a6a85b70dc
  '47e20c0503ab1464d528f2cc7dd5e6a6a85b70dc'
)

_reverts=(
)

prepare() {
  cd "${pkgname}"
  git submodule init
  git submodule set-url share/extensions ../inkscape-extensions/
  git submodule deinit -f src/3rdparty/2geom
  git submodule set-url src/3rdparty/libcroco ../inkscape-libcroco/
  git submodule set-url share/themes ../inkscape-themes/
  git -c protocol.file.allow=always submodule update

  ( cd share/extensions/
    git submodule set-url other/gcodetools ../inkscape-extras-extensions-gcodetools/
    git submodule set-url other/inkman ../inkscape-extras-extension-manager/
    git submodule set-url other/clipart ../inkscape-extras-inkscape-import-clipart/
    git submodule set-url other/extension-xaml ../inkscape-extras-extension-xaml/
    git submodule set-url other/extension-afdesign ../inkscape-extras-extension-afdesign/
    git submodule set-url other/extension-curve ../inkscape-extras-extension-curve/
    git -c protocol.file.allow=always submodule update --init )

  local _c _l
  for _c in "${_backports[@]}"; do
    if [[ "${_c}" == *..* ]]; then _l='--reverse'; else _l='--max-count=1'; fi
    git log --oneline "${_l}" "${_c}"
    git cherry-pick --mainline 1 --no-commit -X ignore-all-space "${_c}"
  done
  for _c in "${_reverts[@]}"; do
    if [[ "${_c}" == *..* ]]; then _l='--reverse'; else _l='--max-count=1'; fi
    git log --oneline "${_l}" "${_c}"
    git revert --mainline 1 --no-commit "${_c}"
  done
}

build() {
  local cmake_options=(
    -B build
    -D CMAKE_BUILD_TYPE=None
    -D CMAKE_INSTALL_PREFIX:PATH=/usr
    -W no-dev
    -S $pkgname
  )

  cmake "${cmake_options[@]}"
  cmake --build build
}

package() {
  DESTDIR="${pkgdir}" cmake --build build --target install
}
