mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05:00
Merge pull request #222 from yyuu/macosx-deployment-target
Setting MACOSX_DEPLOYMENT_TARGET on Darwin
This commit is contained in:
commit
82aaef7842
2 changed files with 63 additions and 0 deletions
|
@ -1603,6 +1603,10 @@ fi
|
|||
|
||||
# Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
||||
if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||
if [[ "Darwin" != "$(uname -s)" ]]; then
|
||||
echo "python-build: framework installation is not supported." >&2
|
||||
exit 1
|
||||
fi
|
||||
create_framework_dirs() {
|
||||
local version="$(echo "$1" | sed -E 's/^[^0-9]*([0-9]+\.[0-9]+).*$/\1/')"
|
||||
mkdir -p "${PREFIX_PATH}/Python.framework/Versions/${version}"
|
||||
|
@ -1617,6 +1621,15 @@ if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
|||
package_option python configure --enable-framework="${PREFIX_PATH}"
|
||||
fi
|
||||
|
||||
# Build against universal SDK (#219, #220)
|
||||
if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then
|
||||
if [[ "Darwin" != "$(uname -s)" ]]; then
|
||||
echo "python-build: universal installation is not supported." >&2
|
||||
exit 1
|
||||
fi
|
||||
package_option python configure --enable-universalsdk=/ --with-universal-archs=intel
|
||||
fi
|
||||
|
||||
# SSL Certificate error with older wget that does not support Server Name Indication (#60)
|
||||
if ! command -v curl 1>/dev/null 2>&1 && [[ "$(wget --version 2>/dev/null || true)" = "GNU Wget 1.1"[0-3]* ]]; then
|
||||
echo "python-build: wget (< 1.14) doesn't support Server Name Indication. Please install curl (>= 7.18.1) and try again" >&2
|
||||
|
@ -1642,6 +1655,19 @@ if [ -n "${PIP_VERSION}" ]; then
|
|||
GET_PIP_URL="https://raw.githubusercontent.com/pypa/pip/${PIP_VERSION}/contrib/get-pip.py"
|
||||
fi
|
||||
|
||||
# Set MACOSX_DEPLOYMENT_TARGET from the product version of OS X (#219, #220)
|
||||
if [[ "Darwin" == "$(uname -s)" ]]; then
|
||||
MACOS_VERSION="$(sw_vers -productVersion 2>/dev/null || true)"
|
||||
MACOS_VERSION_ARRAY=(${MACOS_VERSION//\./ })
|
||||
if [ "${#MACOS_VERSION_ARRAY[@]}" -ge 2 ]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET="${MACOS_VERSION_ARRAY[0]}.${MACOS_VERSION_ARRAY[1]}"
|
||||
else
|
||||
{ colorize 1 "WARNING"
|
||||
echo ": Could not detect the product version of OS X for MACOSX_DEPLOYMENT_TARGET. Use default setting."
|
||||
} >&2
|
||||
fi
|
||||
fi
|
||||
|
||||
SEED="$(date "+%Y%m%d%H%M%S").$$"
|
||||
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
||||
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
||||
|
|
|
@ -216,6 +216,7 @@ OUT
|
|||
@test "number of CPU cores defaults to 2" {
|
||||
cached_tarball "Python-3.2.1"
|
||||
|
||||
stub uname '-s : echo Darwin'
|
||||
stub uname '-s : echo Darwin'
|
||||
stub sysctl false
|
||||
stub_make_install
|
||||
|
@ -240,6 +241,7 @@ OUT
|
|||
@test "number of CPU cores is detected on Mac" {
|
||||
cached_tarball "Python-3.2.1"
|
||||
|
||||
stub uname '-s : echo Darwin'
|
||||
stub uname '-s : echo Darwin'
|
||||
stub sysctl '-n hw.ncpu : echo 4'
|
||||
stub_make_install
|
||||
|
@ -316,6 +318,7 @@ OUT
|
|||
@test "make on FreeBSD defaults to gmake" {
|
||||
cached_tarball "Python-3.2.1"
|
||||
|
||||
stub uname "-s : echo FreeBSD"
|
||||
stub uname "-s : echo FreeBSD"
|
||||
MAKE=gmake stub_make_install
|
||||
|
||||
|
@ -389,3 +392,37 @@ OUT
|
|||
run python-build "${TMP}/build-definition" "$INSTALL_ROOT"
|
||||
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
||||
}
|
||||
|
||||
@test "setting MACOSX_DEPLOYMENT_TARGET from the product version of OS X" {
|
||||
stub uname '-s : echo Darwin'
|
||||
stub sw_vers '-productVersion : echo 10.9.4'
|
||||
|
||||
run_inline_definition <<DEF
|
||||
echo "MACOSX_DEPLOYMENT_TARGET=\${MACOSX_DEPLOYMENT_TARGET}" > "$INSTALL_ROOT/build.log"
|
||||
DEF
|
||||
assert_success
|
||||
|
||||
assert_build_log <<OUT
|
||||
MACOSX_DEPLOYMENT_TARGET=10.9
|
||||
OUT
|
||||
|
||||
unstub uname
|
||||
unstub sw_vers
|
||||
}
|
||||
|
||||
@test "not setting MACOSX_DEPLOYMENT_TARGET if the product version of OS X is not available" {
|
||||
stub uname '-s : echo Darwin'
|
||||
stub sw_vers false
|
||||
|
||||
run_inline_definition <<DEF
|
||||
echo "MACOSX_DEPLOYMENT_TARGET=\${MACOSX_DEPLOYMENT_TARGET}" > "$INSTALL_ROOT/build.log"
|
||||
DEF
|
||||
assert_success
|
||||
|
||||
assert_build_log <<OUT
|
||||
MACOSX_DEPLOYMENT_TARGET=
|
||||
OUT
|
||||
|
||||
unstub uname
|
||||
unstub sw_vers
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue