This commit is contained in:
parent
96828af31e
commit
dd60d5fae2
@ -1742,9 +1742,9 @@ apply_patch() {
|
|||||||
|
|
||||||
|
|
||||||
build_package_symlink_version_suffix() {
|
build_package_symlink_version_suffix() {
|
||||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
if [[ "${PYTHON_CONFIGURE_OPTS_ARRAY[*]} $CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||||
if [ -e "${PREFIX_PATH}/bin" ]; then
|
if [ -e "${PREFIX_PATH}/bin" ]; then
|
||||||
# Always create `bin` as symlink to framework path if the version was built with `--enable-frameowrk` (#590)
|
# Always create `bin` as symlink to framework path if the version was built with `--enable-framework` (#590)
|
||||||
rm -rf "${PREFIX_PATH}/bin.orig"
|
rm -rf "${PREFIX_PATH}/bin.orig"
|
||||||
mv -f "${PREFIX_PATH}/bin" "${PREFIX_PATH}/bin.orig"
|
mv -f "${PREFIX_PATH}/bin" "${PREFIX_PATH}/bin.orig"
|
||||||
fi
|
fi
|
||||||
@ -2219,6 +2219,7 @@ if [[ "$PYPY_OPTS" == *"--shared"* ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
# Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
||||||
|
shopt -s extglob
|
||||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||||
if ! is_mac; then
|
if ! is_mac; then
|
||||||
echo "python-build: framework installation is not supported outside of MacOS." >&2
|
echo "python-build: framework installation is not supported outside of MacOS." >&2
|
||||||
@ -2237,15 +2238,29 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; the
|
|||||||
create_framework_dirs "${DEFINITION_PATH##*/}"
|
create_framework_dirs "${DEFINITION_PATH##*/}"
|
||||||
# the `/Library/Frameworks` suffix makes CPython build install apps under prefix rather than into /Applications (#1003)
|
# the `/Library/Frameworks` suffix makes CPython build install apps under prefix rather than into /Applications (#1003)
|
||||||
package_option python configure --enable-framework="${PREFIX_PATH}/Library/Frameworks"
|
package_option python configure --enable-framework="${PREFIX_PATH}/Library/Frameworks"
|
||||||
|
|
||||||
|
#FIXME: doesn't properly handle paths with spaces. Fix by parsing *OPTS into arrays.
|
||||||
|
CONFIGURE_OPTS="${CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}";
|
||||||
|
CONFIGURE_OPTS="${CONFIGURE_OPTS% }"
|
||||||
|
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}";
|
||||||
|
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }"
|
||||||
fi
|
fi
|
||||||
|
shopt -u extglob
|
||||||
|
|
||||||
# Build against universal SDK
|
# Build against universal SDK
|
||||||
|
shopt -s extglob
|
||||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then
|
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then
|
||||||
if ! is_mac; then
|
if ! is_mac; then
|
||||||
echo "python-build: universal installation is not supported outside of MacOS." >&2
|
echo "python-build: universal installation is not supported outside of MacOS." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
package_option python configure --enable-universalsdk=/
|
package_option python configure --enable-universalsdk=/
|
||||||
|
#FIXME: doesn't properly handle paths with spaces. Fix by parsing *OPTS into arrays.
|
||||||
|
CONFIGURE_OPTS="${CONFIGURE_OPTS//--enable-universalsdk?(=*([^ ]))?( )/}"
|
||||||
|
CONFIGURE_OPTS="${CONFIGURE_OPTS% }"
|
||||||
|
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-universalsdk?(=*([^ ]))?( )/}"
|
||||||
|
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }"
|
||||||
|
|
||||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--with-universal-archs"* ]]; then
|
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--with-universal-archs"* ]]; then
|
||||||
# in CPython's configure.ac, --with-universal-archs defaults to 'intel' which means i386 + x86_64
|
# in CPython's configure.ac, --with-universal-archs defaults to 'intel' which means i386 + x86_64
|
||||||
# since 2.7.5 and 3.3.0 -- i.e. in all non-EOL versions
|
# since 2.7.5 and 3.3.0 -- i.e. in all non-EOL versions
|
||||||
@ -2255,6 +2270,7 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]];
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
shopt -u extglob
|
||||||
|
|
||||||
# Compile with `--enable-unicode=ucs4` by default (#257)
|
# Compile with `--enable-unicode=ucs4` by default (#257)
|
||||||
if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then
|
if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then
|
||||||
|
@ -245,25 +245,27 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "enable framework" {
|
@test "enable framework" {
|
||||||
mkdir -p "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin"
|
framework_path="${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin"
|
||||||
touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3"
|
mkdir -p "$framework_path"
|
||||||
chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3"
|
for executable in python3{,.4}{,-config}; do
|
||||||
touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4"
|
touch "$framework_path/$executable"
|
||||||
chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4"
|
chmod +x "$framework_path/$executable"
|
||||||
touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3-config"
|
done
|
||||||
chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3-config"
|
unset framework_path executable
|
||||||
touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config"
|
|
||||||
chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config"
|
|
||||||
|
|
||||||
for i in {1..3}; do stub uname '-s : echo Darwin'; done
|
for i in {1..3}; do stub uname '-s : echo Darwin'; done
|
||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
|
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
||||||
|
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
||||||
verify_python python3.4
|
verify_python python3.4
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<EOS
|
assert_output <<EOS
|
||||||
PYTHON_CONFIGURE_OPTS_ARRAY=(--libdir=${TMP}/install/lib --enable-framework=${TMP}/install/Library/Frameworks)
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--libdir=${TMP}/install/lib --enable-framework=${TMP}/install/Library/Frameworks)
|
||||||
|
PYTHON_CONFIGURE_OPTS=()
|
||||||
|
CONFIGURE_OPTS=()
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
[ -L "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python" ]
|
[ -L "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python" ]
|
||||||
@ -277,10 +279,14 @@ EOS
|
|||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
|
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
||||||
|
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<EOS
|
assert_output <<EOS
|
||||||
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${TMP}/install/lib --enable-universalsdk=/)
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${TMP}/install/lib --enable-universalsdk=/)
|
||||||
|
PYTHON_CONFIGURE_OPTS=()
|
||||||
|
CONFIGURE_OPTS=()
|
||||||
EOS
|
EOS
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -291,10 +297,14 @@ EOS
|
|||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition <<OUT
|
||||||
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
|
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
||||||
|
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<EOS
|
assert_output <<EOS
|
||||||
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${TMP}/install/lib --enable-universalsdk=/ --with-universal-archs=universal2)
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${TMP}/install/lib --enable-universalsdk=/ --with-universal-archs=universal2)
|
||||||
|
PYTHON_CONFIGURE_OPTS=()
|
||||||
|
CONFIGURE_OPTS=()
|
||||||
EOS
|
EOS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user