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)
|
# Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
||||||
if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
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() {
|
create_framework_dirs() {
|
||||||
local version="$(echo "$1" | sed -E 's/^[^0-9]*([0-9]+\.[0-9]+).*$/\1/')"
|
local version="$(echo "$1" | sed -E 's/^[^0-9]*([0-9]+\.[0-9]+).*$/\1/')"
|
||||||
mkdir -p "${PREFIX_PATH}/Python.framework/Versions/${version}"
|
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}"
|
package_option python configure --enable-framework="${PREFIX_PATH}"
|
||||||
fi
|
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)
|
# 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
|
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
|
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"
|
GET_PIP_URL="https://raw.githubusercontent.com/pypa/pip/${PIP_VERSION}/contrib/get-pip.py"
|
||||||
fi
|
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").$$"
|
SEED="$(date "+%Y%m%d%H%M%S").$$"
|
||||||
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
||||||
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
||||||
|
|
|
@ -216,6 +216,7 @@ OUT
|
||||||
@test "number of CPU cores defaults to 2" {
|
@test "number of CPU cores defaults to 2" {
|
||||||
cached_tarball "Python-3.2.1"
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sysctl false
|
stub sysctl false
|
||||||
stub_make_install
|
stub_make_install
|
||||||
|
@ -240,6 +241,7 @@ OUT
|
||||||
@test "number of CPU cores is detected on Mac" {
|
@test "number of CPU cores is detected on Mac" {
|
||||||
cached_tarball "Python-3.2.1"
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub uname '-s : echo Darwin'
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sysctl '-n hw.ncpu : echo 4'
|
stub sysctl '-n hw.ncpu : echo 4'
|
||||||
stub_make_install
|
stub_make_install
|
||||||
|
@ -316,6 +318,7 @@ OUT
|
||||||
@test "make on FreeBSD defaults to gmake" {
|
@test "make on FreeBSD defaults to gmake" {
|
||||||
cached_tarball "Python-3.2.1"
|
cached_tarball "Python-3.2.1"
|
||||||
|
|
||||||
|
stub uname "-s : echo FreeBSD"
|
||||||
stub uname "-s : echo FreeBSD"
|
stub uname "-s : echo FreeBSD"
|
||||||
MAKE=gmake stub_make_install
|
MAKE=gmake stub_make_install
|
||||||
|
|
||||||
|
@ -389,3 +392,37 @@ OUT
|
||||||
run python-build "${TMP}/build-definition" "$INSTALL_ROOT"
|
run python-build "${TMP}/build-definition" "$INSTALL_ROOT"
|
||||||
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
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