mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-12 13:33:45 -05:00
Use TCLTK_* and pkg-config for 3.11+ instead of --with-tcl-* and pkg-config
Fixes warnings "configure: WARNING: unrecognized options: --with-tcltk-libs, --with-tcltk-includes" fix script
This commit is contained in:
@@ -1888,20 +1888,34 @@ use_homebrew_tcltk() {
|
||||
local tcltk_libdir="$(brew --prefix "${tcltk}" 2>/dev/null || true)"
|
||||
if [ -d "$tcltk_libdir" ]; then
|
||||
echo "python-build: use tcl-tk from homebrew"
|
||||
if [[ -z "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then
|
||||
local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')"
|
||||
package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version"
|
||||
# In Homebrew Tcl/Tk 8.6.13, headers have been moved to the 'tcl-tk' subdir.
|
||||
# We're not using tclConfig.sh here 'cuz it produces the version-specific path to <brew prefix>/Cellar
|
||||
# and we'd rather have rpath set to <brew prefix>/opt/<...> to allow micro release upgrades without rebuilding
|
||||
# XXX: do use tclConfig.sh and translate the paths if more path shenanigans appear in later releases
|
||||
if [ -d "$tcltk_libdir/include/tcl-tk" ]; then
|
||||
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include/tcl-tk"
|
||||
else
|
||||
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include"
|
||||
fi
|
||||
local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')"
|
||||
local tcltk_includes tcltk_libs
|
||||
# In Homebrew Tcl/Tk 8.6.13, headers have been moved to the 'tcl-tk' subdir.
|
||||
# We're not using tclConfig.sh here 'cuz it produces the version-specific path to <brew prefix>/Cellar
|
||||
# and we'd rather have rpath set to <brew prefix>/opt/<...> to allow micro release upgrades without rebuilding
|
||||
# XXX: do use tclConfig.sh and translate the paths if more shenanigans appear in later releases
|
||||
if [ -d "$tcltk_libdir/include/tcl-tk" ]; then
|
||||
tcltk_includes="-I$tcltk_libdir/include/tcl-tk"
|
||||
else
|
||||
tcltk_includes="-I$tcltk_libdir/include"
|
||||
fi
|
||||
tcltk_libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version"
|
||||
# Since 2.7.6, 3.3.3, 3.4.0 (Issue #1584): --with-tcltk-includes + --with-tcltk-libs Configure options
|
||||
# Since 3.11.0 (bpo-45847): `pkg-config` call, TCLTK_CFLAGS + TCLTK_LIBS override
|
||||
if [[ -n "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then
|
||||
# pkg-config is not present out of the box in MacOS.
|
||||
# There's no way to provide a fallback only if it's is not present
|
||||
# and Configure's logic of detecting if it's present is complicated.
|
||||
# So we just override it always
|
||||
export TCLTK_CFLAGS="$tcltk_includes"
|
||||
export TCLTK_LIBS="$tcltk_libs"
|
||||
else
|
||||
package_option python configure --with-tcltk-includes="$tcltk_includes"
|
||||
package_option python configure --with-tcltk-libs="$tcltk_libs"
|
||||
fi
|
||||
#set in either case as a failsafe
|
||||
export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
|
||||
|
||||
lock_in homebrew
|
||||
return 0
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user