# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem              1.0
PortGroup               app 1.1
PortGroup               github 1.0
PortGroup               makefile 1.0

github.setup            atlas-engineer nyxt 3.5.0
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from     tarball
revision                0

checksums               rmd160  ff4877172e92ded69b5bd30d2cea966c14aebbb9 \
                        sha256  75776454c9d6ac23b33cf1473d840e769a5dd44da13ccd05cf0455b6f4aaf308 \
                        size    642479

categories-append       www
maintainers             nomaintainer
license                 BSD

description             Extensible web browser in Common Lisp

long_description        {*}${description}

patchfiles-append       macos-compatibility.diff

# it is complied only by SBCL and uses nasdf
depends_build-append    path:bin/sbcl:sbcl \
                        port:cl-nasdf

# we're managing dependencies via MacPorts
build.env-append        NYXT_SUBMODULES=false

# seems that GTK is the only working option
# See: https://github.com/atlas-engineer/nyxt/issues/3118
build.env-append        NYXT_RENDERER=gtk

# majority of dependencies are build time only, and will be included into image
depends_build-append    port:cl-alexandria \
                        port:cl-base64 \
                        port:cl-bordeaux-threads \
                        port:cl-calispel \
                        port:cl-closer-mop \
                        port:cl-clss \
                        port:cl-cluffer \
                        port:cl-colors2 \
                        port:cl-containers \
                        port:cl-dexador \
                        port:cl-dissect \
                        port:cl-enchant \
                        port:cl-flexi-streams \
                        port:cl-gopher \
                        port:cl-history-tree \
                        port:cl-html-diff \
                        port:cl-idna \
                        port:cl-iolib \
                        port:cl-json \
                        port:cl-lass \
                        port:cl-local-time \
                        port:cl-log4cl \
                        port:cl-lparallel \
                        port:cl-montezuma \
                        port:cl-moptilities \
                        port:cl-nclasses \
                        port:cl-ndebug \
                        port:cl-nfiles \
                        port:cl-nhooks \
                        port:cl-njson \
                        port:cl-nkeymaps \
                        port:cl-nsymbols \
                        port:cl-parenscript \
                        port:cl-phos \
                        port:cl-plump \
                        port:cl-ppcre \
                        port:cl-ppcre-unicode \
                        port:cl-prevalence \
                        port:cl-prompter \
                        port:cl-py-configparser \
                        port:cl-qrencode \
                        port:cl-quri \
                        port:cl-serapeum \
                        port:cl-slynk \
                        port:cl-spinneret \
                        port:cl-str \
                        port:cl-swank \
                        port:cl-tld \
                        port:cl-trivia \
                        port:cl-trivial-clipboard \
                        port:cl-trivial-features \
                        port:cl-trivial-garbage \
                        port:cl-trivial-package-local-nicknames \
                        port:cl-trivial-types \
                        port:cl-unix-opts \
                        port:cl-cffi-gtk \
                        port:cl-webkit2

# It builds lisp image as binary executable file which contains links to shared
# libraries, you may use command below to get actual list
#   nyxt --eval "(format t \"~{  ~A~%~}\" (mapcar 'sb-alien::shared-object-pathname sb-sys:*shared-objects*))" --quit | xargs port provides

depends_lib-append      path:lib/pkgconfig/cairo.pc:cairo \
                        path:lib/pkgconfig/gdk-pixbuf-2.0.pc:gdk-pixbuf2 \
                        path:lib/pkgconfig/glib-2.0.pc:glib2 \
                        path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \
                        port:libfixposix \
                        path:lib/libssl.dylib:openssl \
                        path:lib/pkgconfig/pango.pc:pango \
                        path:lib/pkgconfig/webkit2gtk-4.0.pc:webkit2-gtk

app.icon                assets/nyxt_512x512.png
app.retina              no
app.dark_mode           no
app.use_launch_script   yes
app.hide_dock_icon      yes

destroot.env            {*}${build.env}
