<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>