<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/0158c885021cbd84ab54114f4cb436a9c0a23213">https://github.com/macports/macports-ports/commit/0158c885021cbd84ab54114f4cb436a9c0a23213</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 0158c885021cbd84ab54114f4cb436a9c0a23213
</span>Author: Renee Otten <reneeotten@macports.org>
AuthorDate: Sat Oct 21 21:18:09 2023 -0400

<span style='display:block; white-space:pre;color:#404040;'>    py-meson: new port
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/68208
</span>---
 python/py-meson/Portfile                           | 171 +++++++++++++++++++++
 python/py-meson/files/cross/arm64-darwin           |   9 ++
 python/py-meson/files/cross/i386-darwin            |   9 ++
 python/py-meson/files/cross/ppc-darwin             |   9 ++
 python/py-meson/files/cross/ppc64-darwin           |   9 ++
 python/py-meson/files/cross/x86_64-darwin          |   9 ++
 python/py-meson/files/patch-meson-32bit-apple.diff |  49 ++++++
 ...tch-meson-clang-unknown-optimization-error.diff |  13 ++
 .../files/patch-meson-gcc-appleframeworks.diff     |  12 ++
 python/py-meson/files/patch-meson-gnome.diff       |  34 ++++
 .../patch-meson-remove-Wl,-no_weak_imports.diff    |  23 +++
 .../patch-meson-search-prefix-for-cross-files.diff |  21 +++
 .../py-meson/files/patch-meson64-32bit-apple.diff  |  39 +++++
 ...h-meson64-clang-unknown-optimization-error.diff |  13 ++
 .../files/patch-meson64-gcc-appleframeworks.diff   |  12 ++
 python/py-meson/files/patch-meson64-gnome.diff     |  16 ++
 .../patch-meson64-remove-Wl,-no_weak_imports.diff  |  23 +++
 ...atch-meson64-search-prefix-for-cross-files.diff |  21 +++
 .../files/patch-meson64-tiger-no-rpath-fix.diff    |  89 +++++++++++
 19 files changed, 581 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/Portfile b/python/py-meson/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..70ad89e1634
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,171 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           python 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                py-meson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# update version and revision also in the meson port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        mesonbuild meson 1.2.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from releases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  b059e5c44efb0671373c78659f5ed36956d7dc1b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  4a0f04de331fbc7af3b802a844fc8838f4ccd1ded1e792ba4f8f2faf8c5fe4d6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    2190455
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             Apache-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories-append   devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {soap.za.net:git @SoapZA} {reneeotten @reneeotten} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs     noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           {darwin any}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://mesonbuild.com
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Meson - A high productivity build system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    Meson is a build system designed to optimize programmer productivity. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    It aims to do this by providing simple, out-of-the-box support for modern \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    software development tools and practices, such as unit tests, coverage reports, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    Valgrind, CCache and the like. It is both extremely fast, and, even more importantly, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    as user friendly as possible.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions     38 39 310 311 312
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} ne ${name}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:py${python.version}-setuptools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_run-append  port:py${python.version}-setuptools \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:ninja
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # requires a newer install_name_tool on older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.platform} eq "darwin" && ${os.major} <= 9} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_run-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.platform} eq "darwin" && ${os.major} <= 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-meson-remove-Wl,-no_weak_imports.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/mesonbuild/meson/issues/6187
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-meson-32bit-apple.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/mesonbuild/meson/pull/9211
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-meson-gcc-appleframeworks.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Compiled typelib files need their dylibs' full install path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-meson-gnome.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # disable warning not accepted by older clang versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # this manifests currently on systems up to 10.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/mesonbuild/meson/issues/8307
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.platform} eq "darwin" && ${os.major} <= 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-meson-clang-unknown-optimization-error.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # add a search path for crossfiles in our prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-meson-search-prefix-for-cross-files.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    platform darwin 8 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # this meson is modified for systems without @rpath support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # and is therefore fragile. Keep pegged, and update occasionally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        github.setup        mesonbuild meson 0.64.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        github.tarball_from releases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums           rmd160  6ed7a0c8b1ac2a0de91d25aa253ad2efa132c6dc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            sha256  3a8e030c2334f782085f81627062cc6d4a6771edf31e055ffe374f9e6b089ab9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            size    2089752
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles          patch-meson64-tiger-no-rpath-fix.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            patch-meson64-remove-Wl,-no_weak_imports.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            patch-meson64-32bit-apple.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            patch-meson64-gcc-appleframeworks.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            patch-meson64-gnome.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            patch-meson64-clang-unknown-optimization-error.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            patch-meson64-search-prefix-for-cross-files.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/data/shell-completions/bash/meson \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                             ${worksrcpath}/mesonbuild/coredata.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|@@SUBPORT@@|${subport}|g" ${worksrcpath}/data/shell-completions/bash/meson \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                             ${worksrcpath}/mesonbuild/coredata.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # install our MacPorts cross files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0755 -d ${destroot}${prefix}/share/${subport}/meson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        copy ${filespath}/cross ${destroot}${prefix}/share/${subport}/meson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        fs-traverse f ${destroot}${prefix}/share/${subport}/meson/cross/ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {![file isdirectory ${f}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                reinplace "s|@@PREFIX@@|${prefix}|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # install shell completion files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set bash_completion_dir ${prefix}/share/${subport}/bash-completion/completions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d ${destroot}${bash_completion_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0644 ${worksrcpath}/data/shell-completions/bash/meson ${destroot}${bash_completion_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0644 ${worksrcpath}/data/shell-completions/bash/meson ${destroot}${bash_completion_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set zsh_completion_dir ${prefix}/share/${subport}/zsh/site-functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d ${destroot}${zsh_completion_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0644 ${worksrcpath}/data/shell-completions/zsh/_meson ${destroot}${zsh_completion_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0644 ${worksrcpath}/data/shell-completions/zsh/_meson ${destroot}${zsh_completion_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # install editor syntax files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set vim_dir ${prefix}/share/${subport}/vim/vimfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach d {ftdetect ftplugin syntax indent} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -d ${destroot}${vim_dir}/${d}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 0644 ${worksrcpath}/data/syntax-highlighting/vim/${d}/meson.vim ${destroot}${vim_dir}/${d}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 0644 ${worksrcpath}/data/syntax-highlighting/vim/${d}/meson.vim ${destroot}${vim_dir}/${d}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-activate {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # the original meson port new pyXY-meson ports conflict
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![catch {lindex [registry_active meson] 0} installed]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set _version [lindex $installed 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[vercmp $_version 1.2.3] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                registry_deactivate_composite meson "" [list ports_nodepcheck 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # the following block avoids requiring users to 'sudo port select python3 python37'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # doing a file test for ${prefix}/bin/python3 and requiring this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # to be honest would have been much simpler, but not the "MacPorts way"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-test {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|/usr/bin/env python3$|${python.bin}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/run_tests.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/run_cross_test.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/run_meson_command_tests.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/run_project_tests.py \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/run_unittests.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set testpath "${worksrcpath}/test\\ cases"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        fs-traverse f ${testpath} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if { [string match *.py ${f}] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                reinplace "s|/usr/bin/env python3$|${python.bin}|" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    python.test_framework
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.env            CXX=${configure.cxx} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        "CXXFLAGS=${configure.cxxflags} [get_canonical_archflags cxx]" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        "CFLAGS=${configure.cflags} [get_canonical_archflags cc]" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        "LDFLAGS=${configure.ldflags} [get_canonical_archflags ld]" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        PREFIX=${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.cmd            ./run_tests.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # restrict livecheck to release versions only, no pre-releases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.livecheck.regex  {(\d+(?:\.\d+)*)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/cross/arm64-darwin b/python/py-meson/files/cross/arm64-darwin
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f7d98c21090
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/cross/arm64-darwin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[host_machine]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+system = 'darwin'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu_family = 'aarch64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu = 'arm64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endian = 'little'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[binaries]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pkgconfig = '@@PREFIX@@/bin/pkg-config'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake = '@@PREFIX@@/bin/cmake'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/cross/i386-darwin b/python/py-meson/files/cross/i386-darwin
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8c9f8016092
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/cross/i386-darwin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[host_machine]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+system = 'darwin'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu_family = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu = 'i386'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endian = 'little'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[binaries]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pkgconfig = '@@PREFIX@@/bin/pkg-config'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake = '@@PREFIX@@/bin/cmake'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/cross/ppc-darwin b/python/py-meson/files/cross/ppc-darwin
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0daab987131
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/cross/ppc-darwin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[host_machine]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+system = 'darwin'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu_family = 'ppc'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu = 'ppc'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endian = 'big'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[binaries]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pkgconfig = '@@PREFIX@@/bin/pkg-config'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake = '@@PREFIX@@/bin/cmake'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/cross/ppc64-darwin b/python/py-meson/files/cross/ppc64-darwin
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..669d96e9699
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/cross/ppc64-darwin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[host_machine]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+system = 'darwin'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu_family = 'ppc64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu = 'ppc64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endian = 'big'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[binaries]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pkgconfig = '@@PREFIX@@/bin/pkg-config'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake = '@@PREFIX@@/bin/cmake'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/cross/x86_64-darwin b/python/py-meson/files/cross/x86_64-darwin
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7a7d24f2ef7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/cross/x86_64-darwin
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[host_machine]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+system = 'darwin'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu_family = 'x86_64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cpu = 'x86_64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+endian = 'little'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[binaries]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pkgconfig = '@@PREFIX@@/bin/pkg-config'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake = '@@PREFIX@@/bin/cmake'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson-32bit-apple.diff b/python/py-meson/files/patch-meson-32bit-apple.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..80ba35a739f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson-32bit-apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,49 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git mesonbuild/environment.py.orig mesonbuild/environment.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 71286a5..0b004e7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/environment.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/environment.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14,6 +14,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import itertools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import os, platform, re, sys, shutil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++import subprocess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import typing as T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import collections
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -284,6 +285,23 @@ def detect_windows_arch(compilers: CompilersDict) -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return os_arch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++def detect_osx_arch() -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    per #6187, handle early Mac 64-bit Intel CPU with 64-bit OSX using a **32-bit kernel**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    testing this requires old MacOS and hardware, not easily available for cloud CI,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    so users needing this functionality may kindly need to help with debugging info.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ret = subprocess.run(['sysctl', '-n', 'hw.cpu64bit_capable'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).stdout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        trial = 'x86_64' if ret.strip() == '1' else 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    except subprocess.SubprocessError:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # very old MacOS version with implicit 32-bit CPU due to calling if-elif stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return trial
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def any_compiler_has_define(compilers: CompilersDict, define):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for c in compilers.values():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -308,7 +326,11 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         trial = platform.machine().lower()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if trial.startswith('i') and trial.endswith('86'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if mesonlib.is_osx():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # handle corner case with early Mac 64-bit CPU and older OSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            trial = detect_osx_arch()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elif trial == 'bepc':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elif trial == 'arm64':
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson-clang-unknown-optimization-error.diff b/python/py-meson/files/patch-meson-clang-unknown-optimization-error.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f8a8b109500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson-clang-unknown-optimization-error.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git mesonbuild/compilers/mixins/clang.py.orig mesonbuild/compilers/mixins/clang.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index acdb352..0a3e879 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/compilers/mixins/clang.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/compilers/mixins/clang.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,7 +81,7 @@ class ClangCompiler(GnuLikeCompiler):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         myargs = []  # type: T.List[str]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if mode is CompileCheckMode.COMPILE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             myargs.extend(['-Werror=unknown-warning-option', '-Werror=unused-command-line-argument'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            if mesonlib.version_compare(self.version, '>=3.6.0'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if mesonlib.version_compare(self.version, '>=9.6.0'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 myargs.append('-Werror=ignored-optimization-argument')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return super().get_compiler_check_args(mode) + myargs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson-gcc-appleframeworks.diff b/python/py-meson/files/patch-meson-gcc-appleframeworks.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e90cc85ddb5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson-gcc-appleframeworks.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/compilers/mixins/clike.py.orig      2022-01-03 04:12:32.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/compilers/mixins/clike.py   2022-04-06 05:50:19.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1123,9 +1123,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         unless you select a particular macOS SDK with the -isysroot flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         You can also add to this by setting -F in CFLAGS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         '''
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # TODO: this really needs to be *AppleClang*, not just any clang.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if self.id != 'clang':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            raise mesonlib.MesonException('Cannot find framework path with non-clang compiler')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Construct the compiler command-line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         commands = self.get_exelist() + ['-v', '-E', '-']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         commands += self.get_always_args()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson-gnome.diff b/python/py-meson/files/patch-meson-gnome.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f5fcfea0877
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson-gnome.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Due to a presumed bug in MP's g-ir-scanner[1], generated typelib files often
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+point to the dylib's relative build path. E.g. running
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    g-ir-inspect --print-shlibs Pango
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Will print something like
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    shlib: ./pango/libpango-1.0.0.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+At run-time, the GObject Introspection infrastructure won't be able to find the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+libpango dylib, and panic ensues. This patch ensures that the full install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+paths are specified in the typelib file. You can ensure correct operation with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the above command, which should print something like
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    shlib: /opt/local/lib/libpango-1.0.0.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+[1] https://trac.macports.org/ticket/62391
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/modules/gnome.py.orig       2022-03-22 05:17:35.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/modules/gnome.py    2022-04-06 05:54:44.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1177,6 +1177,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for incdir in typelib_includes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             typelib_cmd += ["--includedir=" + incdir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for target in girtargets:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if isinstance(target, build.SharedLibrary):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                typelib_cmd += ["--shared-library=" +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        os.path.join(state.environment.get_prefix(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                     state.environment.get_shared_lib_dir(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                     target.filename)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         typelib_target = self._make_typelib_target(state, typelib_output, typelib_cmd, generated_files, T.cast('T.Dict[str, T.Any]', kwargs))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._devenv_prepend('GI_TYPELIB_PATH', os.path.join(state.environment.get_build_dir(), state.subdir))
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson-remove-Wl,-no_weak_imports.diff b/python/py-meson/files/patch-meson-remove-Wl,-no_weak_imports.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..26ea92099e7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson-remove-Wl,-no_weak_imports.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Don't use -Wl,-no_weak_imports when checking function existence.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This patch should only be applied on Snow Leopard and earlier because
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the version of ld64 that MacPorts uses by default on Snow Leopard and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+earlier doesn't understand that option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Temporary workaround for https://github.com/mesonbuild/meson/issues/7204
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/compilers/mixins/clang.py.orig      2020-04-26 04:07:10.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/compilers/mixins/clang.py   2020-05-28 08:15:20.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,13 +81,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      dependencies: T.Optional[T.List['Dependency']] = None) -> bool:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if extra_args is None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             extra_args = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Starting with XCode 8, we need to pass this to force linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # visibility to obey OS X/iOS/tvOS minimum version targets with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # -mmacosx-version-min, -miphoneos-version-min, -mtvos-version-min etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # https://github.com/Homebrew/homebrew-core/issues/3727
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # TODO: this really should be communicated by the linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if isinstance(self.linker, AppleDynamicLinker) and mesonlib.version_compare(self.version, '>=8.0'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            extra_args.append('-Wl,-no_weak_imports')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return super().has_function(funcname, prefix, env, extra_args=extra_args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                     dependencies=dependencies)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson-search-prefix-for-cross-files.diff b/python/py-meson/files/patch-meson-search-prefix-for-cross-files.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..fed7f9025b1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson-search-prefix-for-cross-files.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- data/shell-completions/bash/meson.orig 2020-08-03 09:20:31.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ data/shell-completions/bash/meson      2020-08-03 09:21:01.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,6 +114,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     cross-file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       _filedir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in "$XDG_DATA_DIRS"/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      COMPREPLY+=($(_filedir_in @@PREFIX@@/share/@@SUBPORT@@/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in /usr/local/share/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in /usr/share/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in "$XDG_DATA_HOME"/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./mesonbuild/coredata.py.orig  2020-08-03 09:46:13.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./mesonbuild/coredata.py       2020-08-03 09:46:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -431,7 +431,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if sys.platform != 'win32':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 paths = [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                ] + os.environ.get('XDG_DATA_DIRS', '@@PREFIX@@/share/@@SUBPORT@@:/usr/local/share:/usr/share').split(':')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 for path in paths:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     path_to_try = os.path.join(path, 'meson', ftype, f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     if os.path.isfile(path_to_try):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson64-32bit-apple.diff b/python/py-meson/files/patch-meson64-32bit-apple.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0dbc4e2bbcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson64-32bit-apple.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,39 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/environment.py.orig 2020-07-05 13:13:14.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/environment.py      2020-07-14 13:46:43.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -314,6 +314,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return os_arch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++def detect_osx_arch() -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    per #6187, handle early Mac 64-bit Intel CPU with 64-bit OSX using a **32-bit kernel**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    testing this requires old MacOS and hardware, not easily available for cloud CI,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    so users needing this functionality may kindly need to help with debugging info.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    """
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        ret = subprocess.run(['sysctl', '-n', 'hw.cpu64bit_capable'],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).stdout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        trial = 'x86_64' if ret.strip() == '1' else 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    except subprocess.SubprocessError:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # very old MacOS version with implicit 32-bit CPU due to calling if-elif stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return trial
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def any_compiler_has_define(compilers: CompilersDict, define):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for c in compilers.values():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -338,7 +355,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         trial = platform.machine().lower()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if trial.startswith('i') and trial.endswith('86'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if mesonlib.is_osx():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # handle corner case with early Mac 64-bit CPU and older OSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            trial = detect_osx_arch()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elif trial == 'bepc':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         trial = 'x86'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     elif trial == 'arm64':
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson64-clang-unknown-optimization-error.diff b/python/py-meson/files/patch-meson64-clang-unknown-optimization-error.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f8a8b109500
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson64-clang-unknown-optimization-error.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git mesonbuild/compilers/mixins/clang.py.orig mesonbuild/compilers/mixins/clang.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index acdb352..0a3e879 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/compilers/mixins/clang.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/compilers/mixins/clang.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,7 +81,7 @@ class ClangCompiler(GnuLikeCompiler):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         myargs = []  # type: T.List[str]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if mode is CompileCheckMode.COMPILE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             myargs.extend(['-Werror=unknown-warning-option', '-Werror=unused-command-line-argument'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            if mesonlib.version_compare(self.version, '>=3.6.0'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if mesonlib.version_compare(self.version, '>=9.6.0'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 myargs.append('-Werror=ignored-optimization-argument')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return super().get_compiler_check_args(mode) + myargs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson64-gcc-appleframeworks.diff b/python/py-meson/files/patch-meson64-gcc-appleframeworks.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e90cc85ddb5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson64-gcc-appleframeworks.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/compilers/mixins/clike.py.orig      2022-01-03 04:12:32.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/compilers/mixins/clike.py   2022-04-06 05:50:19.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1123,9 +1123,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         unless you select a particular macOS SDK with the -isysroot flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         You can also add to this by setting -F in CFLAGS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         '''
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # TODO: this really needs to be *AppleClang*, not just any clang.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if self.id != 'clang':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            raise mesonlib.MesonException('Cannot find framework path with non-clang compiler')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Construct the compiler command-line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         commands = self.get_exelist() + ['-v', '-E', '-']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         commands += self.get_always_args()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson64-gnome.diff b/python/py-meson/files/patch-meson64-gnome.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..8000b7ca66b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson64-gnome.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/modules/gnome.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/modules/gnome.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -816,6 +816,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for incdir in typelib_includes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             typelib_cmd += ["--includedir=" + incdir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for target in girtargets:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if isinstance(target, build.SharedLibrary):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                typelib_cmd += ["--shared-library=" +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        os.path.join(state.environment.get_prefix(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                     state.environment.get_shared_lib_dir(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                     target.filename)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         typelib_target = self._make_typelib_target(state, typelib_output, typelib_cmd, generated_files, T.cast('T.Dict[str, T.Any]', kwargs))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         self._devenv_prepend('GI_TYPELIB_PATH', os.path.join(state.environment.get_build_dir(), state.subdir))
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson64-remove-Wl,-no_weak_imports.diff b/python/py-meson/files/patch-meson64-remove-Wl,-no_weak_imports.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..26ea92099e7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson64-remove-Wl,-no_weak_imports.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Don't use -Wl,-no_weak_imports when checking function existence.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This patch should only be applied on Snow Leopard and earlier because
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the version of ld64 that MacPorts uses by default on Snow Leopard and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+earlier doesn't understand that option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Temporary workaround for https://github.com/mesonbuild/meson/issues/7204
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/compilers/mixins/clang.py.orig      2020-04-26 04:07:10.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/compilers/mixins/clang.py   2020-05-28 08:15:20.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,13 +81,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      dependencies: T.Optional[T.List['Dependency']] = None) -> bool:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if extra_args is None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             extra_args = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Starting with XCode 8, we need to pass this to force linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # visibility to obey OS X/iOS/tvOS minimum version targets with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # -mmacosx-version-min, -miphoneos-version-min, -mtvos-version-min etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # https://github.com/Homebrew/homebrew-core/issues/3727
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # TODO: this really should be communicated by the linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if isinstance(self.linker, AppleDynamicLinker) and mesonlib.version_compare(self.version, '>=8.0'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            extra_args.append('-Wl,-no_weak_imports')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return super().has_function(funcname, prefix, env, extra_args=extra_args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                     dependencies=dependencies)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson64-search-prefix-for-cross-files.diff b/python/py-meson/files/patch-meson64-search-prefix-for-cross-files.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..83b4df5ffc0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson64-search-prefix-for-cross-files.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- data/shell-completions/bash/meson.orig 2020-08-03 09:20:31.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ data/shell-completions/bash/meson      2020-08-03 09:21:01.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,6 +114,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     cross-file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       _filedir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in "$XDG_DATA_DIRS"/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      COMPREPLY+=($(_filedir_in @@PREFIX@@/share/@@SUBPORT@@meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in /usr/local/share/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in /usr/share/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       COMPREPLY+=($(_filedir_in "$XDG_DATA_HOME"/meson/cross))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./mesonbuild/coredata.py.orig  2020-08-03 09:46:13.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./mesonbuild/coredata.py       2020-08-03 09:46:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -431,7 +431,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if sys.platform != 'win32':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 paths = [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     os.environ.get('XDG_DATA_HOME', os.path.expanduser('~/.local/share')),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                ] + os.environ.get('XDG_DATA_DIRS', '/usr/local/share:/usr/share').split(':')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                ] + os.environ.get('XDG_DATA_DIRS', '@@PREFIX@@/share/@@SUBPORT@@:/usr/local/share:/usr/share').split(':')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 for path in paths:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     path_to_try = os.path.join(path, 'meson', ftype, f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     if os.path.isfile(path_to_try):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-meson/files/patch-meson64-tiger-no-rpath-fix.diff b/python/py-meson/files/patch-meson64-tiger-no-rpath-fix.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d810c1b20d6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-meson/files/patch-meson64-tiger-no-rpath-fix.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,89 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git mesonbuild/build.py mesonbuild/build.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a06979c..8b8d6ca 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/build.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/build.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -103,7 +103,7 @@ known_jar_kwargs = known_exe_kwargs | {'main_class'}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @lru_cache(maxsize=None)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def get_target_macos_dylib_install_name(ld) -> str:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    name = ['@rpath/', ld.prefix, ld.name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    name = ['@loader_path/', ld.prefix, ld.name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ld.soversion is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         name.append('.' + ld.soversion)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     name.append('.dylib')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/linkers/linkers.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/llnkers/linkers.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -678,7 +678,7 @@ class AppleDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def get_soname_args(self, env: 'Environment', prefix: str, shlib_name: str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         suffix: str, soversion: str, darwin_versions: T.Tuple[str, str]) -> T.List[str]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        install_name = ['@rpath/', prefix, shlib_name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        install_name = ['@loader_path/', prefix, shlib_name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if soversion is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             install_name.append('.' + soversion)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         install_name.append('.dylib')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -701,8 +701,8 @@ class AppleDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         all_paths = mesonlib.OrderedSet([os.path.join(origin_placeholder, p) for p in processed_rpaths])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if build_rpath != '':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             all_paths.add(build_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        for rp in all_paths:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            args.extend(self._apply_prefix('-rpath,' + rp))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #KEN for rp in all_paths:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #KEN    args.extend(self._apply_prefix('-rpath,' + rp))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return (args, set())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git mesonbuild/modules/gnome.py mesonbuild/modules/gnome.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1faa128..4ef1b07 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/modules/gnome.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/modules/gnome.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -277,8 +277,8 @@ class GnomeModule(ExtensionModule):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if isinstance(lib, build.SharedLibrary):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             libdir = os.path.join(state.environment.get_build_dir(), state.backend.get_target_dir(lib))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             link_command.append('-L' + libdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            if include_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                link_command.append('-Wl,-rpath,' + libdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #KEN if include_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            #KEN    link_command.append('-Wl,-rpath,' + libdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             new_depends.append(lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # Needed for the following binutils bug:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # https://github.com/mesonbuild/meson/issues/1911
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,8 +287,8 @@ class GnomeModule(ExtensionModule):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             for d in state.backend.determine_rpath_dirs(lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 d = os.path.join(state.environment.get_build_dir(), d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 link_command.append('-L' + d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                if include_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    link_command.append('-Wl,-rpath,' + d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                #KEN if include_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                #KEN    link_command.append('-Wl,-rpath,' + d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if use_gir_args and self._gir_has_option('--extra-library'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             link_command.append('--extra-library=' + lib.name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -345,8 +345,8 @@ class GnomeModule(ExtensionModule):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             getattr(dep, 'is_libtool', False)):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         lib_dir = os.path.dirname(flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         external_ldflags.update([f'-L{lib_dir}'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        if include_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                            external_ldflags.update([f'-Wl,-rpath {lib_dir}'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        #KEN if include_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        #KEN    external_ldflags.update([f'-Wl,-rpath {lib_dir}'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         libname = os.path.basename(flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         if libname.startswith("lib"):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             libname = libname[3:]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git mesonbuild/scripts/depfixer.py mesonbuild/scripts/depfixer.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f927693..c1e4541 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- mesonbuild/scripts/depfixer.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ mesonbuild/scripts/depfixer.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -424,9 +424,9 @@ def fix_darwin(fname, new_rpath, final_path, install_name_mappings):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   stdout=subprocess.DEVNULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   stderr=subprocess.DEVNULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         args = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if new_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            args += ['-add_rpath', new_rpath]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Rewrite -install_name @rpath/libfoo.dylib to /path/to/libfoo.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #KEN if new_rpath:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        #KEN    args += ['-add_rpath', new_rpath]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # Rewrite -install_name @loader_path/libfoo.dylib to /path/to/libfoo.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if fname.endswith('dylib'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             args += ['-id', final_path]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if install_name_mappings:
</span></pre><pre style='margin:0'>

</pre>