# -*- 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           github 1.0
PortGroup           cmake 1.1

github.setup        KhronosGroup Vulkan-Loader 1.4.321.0 vulkan-sdk-
github.tarball_from archive
name                vulkan-loader
revision            0

categories          graphics devel
license             Apache-2
maintainers         {judaew @judaew} openmaintainer

description         Vulkan loader
long_description    Loader for Vulkan Installable Client Drivers (ICDs) and Vulkan Layers. \
                    While MoltenVK on macOS can be linked to directly, it is a Level 0 ICD \
                    and thus requires a loader in order to use Layers.
homepage            https://vulkan.lunarg.com

set py_ver          3.13
set py_ver_nodot    [string map {. {}} ${py_ver}]

depends_build-append \
                    port:MoltenVK \
                    port:python${py_ver_nodot} \
                    port:vulkan-headers \
                    path:bin/pkg-config:pkgconfig

checksums           sha256  9e0315bd13d8def7d130524d0b69d0bef3e967374327ac69dd9c54cd2b716e8f \
                    rmd160  853f68f9b8517ef8a7d9e4a2f4c71004c800a6dc \
                    size    1762904
# looked into /opt/local/include instead of the vulkan-headers include paths.
# Corrected use off file(GLOB_RECURSE ...) .
patchfiles          vulkan-headers-find.patch

configure.args-append \
                    -DPython_ADDITIONAL_VERSIONS=${py_ver} \
                    -DFALLBACK_DATA_DIRS=${prefix}/share:/usr/local/share:/usr/share \
                    -DCMAKE_INSTALL_PREFIX=${prefix}

variant manifest description {Install default MoltenVK ICD Manifest} {}

post-destroot {
    copy ${workpath}/build/loader/vulkan.framework ${destroot}${frameworks_dir}/vulkan.framework
    delete ${destroot}${prefix}/loader

    if {[variant_isset manifest]} {
        xinstall -d ${destroot}${prefix}/share/vulkan/icd.d
        copy ${filespath}/MoltenVK_icd.json ${workpath}/MoltenVK_icd.json
        reinplace "s|@@PREFIX@@|${prefix}|g" ${workpath}/MoltenVK_icd.json
        xinstall -m 644 ${workpath}/MoltenVK_icd.json ${destroot}${prefix}/share/vulkan/icd.d/MoltenVK_icd.json
    }
}

default_variants +manifest
