# -*- 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           compiler_blacklist_versions 1.0
PortGroup           meson 1.0

name                babl
conflicts           babl-devel
version             0.1.82
license             LGPL-3+
set branch          [join [lrange [split ${version} .] 0 1] .]
categories          graphics
maintainers         {devans @dbevans} openmaintainer
platforms           darwin

description         Babl is a library for dynamically handling pixel formats and managing \
                    conversions between them.
long_description    ${description}

homepage            http://gegl.org/babl
master_sites        gimp:${name}/${branch}/

use_xz              yes

checksums           rmd160  4d1a990773217d2a2536c773f6621fa511dd5598 \
                    sha256  c62d93d4ad6774cb8e3231bbbc7f2e61e551e7242d78640d757505ee1a9fadc5 \
                    size    299348

configure.args-append \
                    -Dwith-docs=false

depends_build-append \
                    port:pkgconfig \
                    port:librsvg

depends_lib-append  port:lcms2 \
                    port:gobject-introspection \
                    port:vala

# require C11 (typedef redefinition)
# babl-icc.c:1031:25: error: redefinition of typedef 'UTF8' is invalid in C
compiler.c_standard 2011

# In 0.1.12, i386 fails to compile with SL's gcc-4.2:
#    babl-cpuaccel.c:169: error: ‘asm’ operand has impossible constraints
compiler.blacklist-append *gcc-3.* *gcc-4.*

# babl-0.1.72 default compiler on macOS 10.10 (clang-700.1.81) has trouble with extension sse-half
# babl-0.1.72/extensions/sse-half.c:49:24: error: invalid conversion between vector type '__v4sf' (vector of 4 'float' values) and integer type 'int' of different size
#       __v4sf out_val = (__v4sf)_mm_cvtph_ps(in_val);
#                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compiler.blacklist-append {clang > 700 < 800}

if {${os.platform} eq "darwin" && ${os.major} < 10} {
    patchfiles-append  patch-babl-32bitfix.diff
    patchfiles-append  patch-babl-linker-fix-darwin.diff
    patchfiles-append  patch-babl-allow-non-clang-compilers-on-darwin.diff
}

# gobject-introspection uses g-ir-scanner, which uses $CC from env
if {[variant_isset universal]} {
    foreach arch ${configure.universal_archs} {
        lappend merger_build_env(${arch})  "CC=${configure.cc} -arch ${arch}"
        lappend merger_destroot_env(${arch})  "CC=${configure.cc} -arch ${arch}"
    }
} else {
    build.env-append       "CC=${configure.cc} ${configure.cc_archflags}"
    destroot.env-append    "CC=${configure.cc} ${configure.cc_archflags}"
}

platform darwin 8 {
    # meson on Tiger cannot use rpaths, so we workaround with this to find dylib
	build.env-append       "DYLD_LIBRARY_PATH=${build_dir}/${name}"
	destroot.env-append    "DYLD_LIBRARY_PATH=${build_dir}/${name}"
 }

variant docs description {Generate optional docs} {
    depends_build-append   port:w3m

    configure.args-delete  -Dwith-docs=false
    configure.args-append  -Dwith-docs=true

    post-destroot {
        xinstall -m 0755 -d ${destroot}${prefix}/share/doc/${name}
        xinstall -m 0644 -W ${build.dir} README \
            ${destroot}${prefix}/share/doc/${name}
    }
}

livecheck.type      regex
livecheck.url       http://download.gimp.org/pub/${name}/${branch}/
livecheck.regex     "${name}-(\\d+(?:\\.\\d+)+)"
