<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1236dae7287f217465fbfa4a97fd72b502cbd73e">https://github.com/macports/macports-ports/commit/1236dae7287f217465fbfa4a97fd72b502cbd73e</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 1236dae7287f217465fbfa4a97fd72b502cbd73e
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Tue Mar 23 23:22:35 2021 +0000

<span style='display:block; white-space:pre;color:#404040;'>    py-tensorflow-metadata: use bazel PG
</span>---
 python/py-tensorflow-metadata/Portfile | 71 ++++++----------------------------
 1 file changed, 12 insertions(+), 59 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-tensorflow-metadata/Portfile b/python/py-tensorflow-metadata/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 5542850ff64..10d42d9662f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/python/py-tensorflow-metadata/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-tensorflow-metadata/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,8 @@
</span> # -*- 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 style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> PortSystem          1.0
 PortGroup           github 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           java 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           bazel 1.0
</span> PortGroup           python 1.0
 
 github.setup        tensorflow metadata 0.28.0 v
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,14 +24,6 @@ checksums           rmd160  ad8357a3c917ed00ed211c62eefda02da6a51981 \
</span>                     sha256  06ce0decf556f98f1a32d38e2a26545ff6ccac57afeb64969f913b75a9a2eda0 \
                     size    36000
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Required java version
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-java.version        11+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# LTS JDK port to install if required java not found
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-java.fallback       openjdk11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# JDK only needed at build time, but java PG sets lib dependency so
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# declare no conflict to allow redistribution of binaries.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-license_noconflict  ${java.fallback}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> python.versions     37 38 39
 
 proc python_listify {tcl_list} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,8 +35,11 @@ proc python_listify {tcl_list} {
</span> }
 
 if {${name} ne ${subport}} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    bazel.version "3.7"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    bazel.define_build_phase no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     depends_build-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:bazel-3.7 \
</span>                     port:py${python.version}-pip \
                     port:py${python.version}-pkginfo \
                     port:py${python.version}-setuptools
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -52,39 +48,6 @@ if {${name} ne ${subport}} {
</span>                     port:py${python.version}-google-api \
                     port:py${python.version}-protobuf3
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Limit the number of parallel jobs to the number of physical, not logical, cpus.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # First current setting to ensure we would be reducing the current setting.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set physicalcpus [sysctl hw.physicalcpu]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { ${build.jobs} > ${physicalcpus} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.jobs ${physicalcpus}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Build using the wonderful bazel build system ...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set bazel_output_user_root ${workpath}/bazel_build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set bazel_cmd_opts "--max_idle_secs=15 --output_user_root=${bazel_output_user_root}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set bazel_build_opts "--subcommands --verbose_failures"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Limit bazel resource utilisation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set bazel_build_opts "${bazel_build_opts} --jobs ${build.jobs} --local_ram_resources=HOST_RAM*0.75 --local_cpu_resources=HOST_CPUS*.75"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Explicitly pass SDK https://github.com/bazelbuild/rules_go/issues/1554
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Check versioned SDK actually exists... https://trac.macports.org/ticket/60317
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[string first ${configure.sdk_version} ${configure.sdkroot}] != -1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set bazel_build_opts "${bazel_build_opts} --macos_sdk_version=${configure.sdk_version}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_warn "configure.sdkroot='${configure.sdkroot}' does not match configure.sdk_version='${configure.sdk_version}'"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # hack to try and transfer MP c, c++ and ld options to bazel...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach opt [list {*}${configure.cflags} ] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set bazel_build_opts "${bazel_build_opts} --conlyopt \"${opt}\""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach opt [list {*}${configure.cxxflags} ] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set bazel_build_opts "${bazel_build_opts} --cxxopt \"${opt}\""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach opt [list {*}${configure.ldflags} ] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set bazel_build_opts "${bazel_build_opts} --linkopt \"${opt}\""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_debug "Bazel command options: ${bazel_cmd_opts}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_debug "Bazel build options: ${bazel_build_opts}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     # see ${worksrcpath}/bazel-bin/tensorflow_metadata/move_generated_files
     set bazel_build_workspace_path \
                     ${workpath}/build
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -92,45 +55,35 @@ if {${name} ne ${subport}} {
</span>                     ${bazel_build_workspace_path}/tensorflow_metadata/proto/v0
     
     post-extract {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ${workpath}/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ${bazel_build_proto_path}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d ${workpath}/bin ${bazel_build_proto_path}
</span>         ln -s ${python.bin} ${workpath}/bin/python
     }
 
     # replace with patch files after this repo is a little more stable
     post-patch {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -E "s|\\\[(self\\._bazel_cmd), ('run'),|\[\\1, [python_listify ${bazel_cmd_opts}] 'build',|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -E "s|\\\[(self\\._bazel_cmd), ('run'),|\[\\1, [python_listify [option bazel.cmd_opts]] 'build',|" \
</span>                     ${worksrcpath}/setup.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -E "s|(self\\._additional_build_options = )\\\[\\\]|\\1\[[python_listify ${bazel_build_opts}]]|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -E "s|(self\\._additional_build_options = )\\\[\\\]|\\1\[[python_listify [option bazel.build_opts]]]|" \
</span>                     ${worksrcpath}/setup.py
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # turn off -j option in build; bazel will use its own parallelism
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    use_parallel_build no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     build.env-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    JAVA_HOME=${java.home} \
</span>                     "PATH=${workpath}/bin:$env(PATH)"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     build.asroot    yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     destroot.env-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    JAVA_HOME=${java.home} \
</span>                     "PATH=${workpath}/bin:$env(PATH)"
     destroot.asroot yes
 
     test.run        yes
     test.cmd        python${python.branch}
     test.target     ${github.author}_${github.project}/python/proto_test.py
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    test.env-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    PYTHONPATH=${worksrcpath}/build/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.env-append PYTHONPATH=${worksrcpath}/build/lib
</span> 
     post-destroot {
         set docdir ${prefix}/share/doc/${subport}
         xinstall -d ${destroot}${docdir}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 0644 -W ${worksrcpath} LICENSE README.md \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${destroot}${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0644 -W ${worksrcpath} LICENSE README.md ${destroot}${docdir}
</span>     }
 
     livecheck.type  none
</pre><pre style='margin:0'>

</pre>