<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/436d44791094aec51186cc9d3e9a181450315112">https://github.com/macports/macports-ports/commit/436d44791094aec51186cc9d3e9a181450315112</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 436d44791094aec51186cc9d3e9a181450315112
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Fri Jun 4 10:23:47 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    boost PG: Add better support for meson builds
</span>---
 _resources/port1.0/group/boost-1.0.tcl | 89 +++++++++++++++++++++++-----------
 1 file changed, 62 insertions(+), 27 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/boost-1.0.tcl b/_resources/port1.0/group/boost-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index c22f0f11404..fa136b45126 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/boost-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/boost-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13,12 +13,13 @@ default boost.version 1.76
</span> options boost.depends_type
 default boost.depends_type lib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set boost_last_version_nodot ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set boost_last_depends       ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set boost_last_cxxflags      ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set boost_last_ldflags       ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set boost_last_cmake_flags   ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set boost_last_cmake         0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boost_cache_version_nodot ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boost_cache_depends       ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boost_cache_cpath         ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boost_cache_cxxflags      ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boost_cache_ldflags       ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boost_cache_cmake_flags   ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boost_cache_env_vars      ""
</span> 
 proc boost::version {} {
     return [option boost.version]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,43 +43,77 @@ proc boost::lib_dir {} {
</span> }
 
 proc boost::configure_build {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global cmake.build_dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    global boost_last_version_nodot boost_last_depends boost_last_cxxflags
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    global boost_last_ldflags boost_last_cmake_flags boost_last_cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global cmake.build_dir meson.build_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global boost_cache_version_nodot boost_cache_depends boost_cache_cxxflags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global boost_cache_ldflags boost_cache_cmake_flags boost_cache_cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global boost_cache_env_vars boost_cache_cpath
</span> 
     ui_debug "boost PG: Configure build for boost [boost::version]"
 
     # Set the requested boost dependency
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { ${boost_last_version_nodot} ne "" && ${boost_last_depends} ne "" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_${boost_last_depends}-delete port:boost${boost_last_version_nodot} 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${boost_cache_version_nodot} ne "" && ${boost_cache_depends} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_${boost_cache_depends}-delete port:boost${boost_cache_version_nodot} 
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set boost_last_depends       [option boost.depends_type]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set boost_last_version_nodot [boost::version_nodot]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set boost_cache_depends       [option boost.depends_type]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set boost_cache_version_nodot [boost::version_nodot]
</span>     depends_[option boost.depends_type]-append port:boost[boost::version_nodot]
 
     # Append to the build flags to find the isolated headers/libs
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { ${boost_last_cxxflags} ne "" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.cxxflags-delete ${boost_last_cxxflags}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${boost_cache_cxxflags} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cxxflags-delete ${boost_cache_cxxflags}
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if { ${boost_last_ldflags} ne "" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.ldflags-delete ${boost_last_ldflags}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${boost_cache_ldflags} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.ldflags-delete ${boost_cache_ldflags}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set boost_cache_cxxflags -isystem[boost::include_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set boost_cache_ldflags  -L[boost::lib_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxxflags-prepend ${boost_cache_cxxflags}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ldflags-prepend  ${boost_cache_ldflags}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Some build systems (meson) need configure/build env vars to be set.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Do this unconditionally, as setting env vars shouldn't harm builds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # that do not use them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${boost_cache_env_vars} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach var ${boost_cache_env_vars} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach phase {configure build} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${phase}.env-delete ${var}
</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;'>+    set boost_cache_env_vars [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                  BOOST_ROOT=[boost::install_area] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                  BOOST_LIBRARYDIR=[boost::lib_dir] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                  BOOST_INCLUDEDIR=[boost::include_dir] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach var ${boost_cache_env_vars} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach phase {configure build} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${phase}.env-append ${var}
</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;'>+    # For meson, add to compiler.cpath. See discussion at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/macports/macports-ports/commit/f55147262b22ec1f81831cd58295bd0bdfc25f01
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # limit this to meson, for now, incase appending to compiler.cpath hurts other builds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { [info exists meson.build_type] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${boost_cache_cpath} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            compiler.cpath-delete ${boost_cache_cpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set boost_cache_cpath [boost::include_dir]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        compiler.cpath-prepend ${boost_cache_cpath}
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set boost_last_cxxflags -isystem[boost::include_dir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set boost_last_ldflags  -L[boost::lib_dir]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.cxxflags-prepend ${boost_last_cxxflags}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.ldflags-prepend  ${boost_last_ldflags}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # are we using cmake ?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Are we using cmake ?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # As we are appending to configure flags, need to check if cmake is in use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # before appending the cmake specific flags
</span>     if { [info exists cmake.build_dir] } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set boost_last_cmake 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { ${boost_last_cmake_flags} ne "" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            foreach flag ${boost_last_cmake_flags} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${boost_cache_cmake_flags} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach flag ${boost_cache_cmake_flags} {
</span>                 configure.args-delete ${flag}
             }
         }
         # Try and cover all bases here and set all possible variables ...
         # See https://cmake.org/cmake/help/latest/module/FindBoost.html
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set boost_last_cmake_flags [list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set boost_cache_cmake_flags [list \
</span>                                         -DBOOST_ROOT=[boost::install_area] \
                                         -DBOOSTROOT=[boost::install_area] \
                                         -DBOOST_INCLUDEDIR=[boost::include_dir] \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,7 +122,7 @@ proc boost::configure_build {} {
</span>                                         -DBoost_INCLUDE_DIR=[boost::include_dir] \
                                         -DBoost_DIR=[boost::install_area] \
                                        ]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach flag ${boost_last_cmake_flags} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach flag ${boost_cache_cmake_flags} {
</span>             configure.args-append ${flag}
         }
     }
</pre><pre style='margin:0'>

</pre>