mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-29 22:40:06 +00:00
98 lines
2.8 KiB
Bash
Executable file
98 lines
2.8 KiB
Bash
Executable file
#!/bin/bash
|
|
script_source="${BASH_SOURCE[0]:-$0}"
|
|
script_dir="$(cd "$(dirname "${script_source}")" && pwd)"
|
|
|
|
# Assign user-specified Python Virtual Environment
|
|
if [ "${1:-}" = "none" ]; then
|
|
unset venv_path
|
|
else
|
|
venv_arg="${1:-${script_dir}/../.venv}"
|
|
# Portable way to get absolute path without requiring the directory to exist
|
|
case "${venv_arg}" in
|
|
/*) venv_path="${venv_arg}" ;;
|
|
*) venv_path="$(cd "$(dirname "${venv_arg}")" && pwd)/$(basename "${venv_arg}")" ;;
|
|
esac
|
|
export venv_path
|
|
fi
|
|
|
|
# Load custom build settings
|
|
if [ -f "${script_dir}/lib/user-setup.sh" ]; then
|
|
source "${script_dir}/lib/user-setup.sh"
|
|
fi
|
|
|
|
# Activate Python Virtual Environment
|
|
if [ -n "${venv_path:-}" ]; then
|
|
python3 -m venv "${venv_path}"
|
|
source "${venv_path}/bin/activate"
|
|
fi
|
|
|
|
# Detect if a Python Virtual Environment was specified above, or elsewhere
|
|
IN_VENV=$(python3 -c 'import sys; print(sys.prefix != getattr(sys, "base_prefix", sys.prefix))')
|
|
|
|
if [ "${IN_VENV}" = "True" ]; then
|
|
# In a virtual environment, don't use --user
|
|
PIP_FLAGS="--upgrade"
|
|
else
|
|
# Not in a virtual environment, use --user
|
|
PIP_FLAGS="--upgrade --user"
|
|
fi
|
|
|
|
# Install Python packages
|
|
python3 -m pip install ${PIP_FLAGS} --upgrade pip
|
|
python3 -m pip install ${PIP_FLAGS} -r "${script_dir}/../requirements.txt"
|
|
|
|
# Configure default Conan profile
|
|
conan profile detect -e
|
|
|
|
# Conan profiles
|
|
if [[ "$(uname)" == "Darwin" ]]; then
|
|
# macOS profiles
|
|
conan_profiles=(
|
|
"scwx-macos_clang-18"
|
|
"scwx-macos_clang-18_armv8"
|
|
)
|
|
else
|
|
# Linux profiles
|
|
conan_profiles=(
|
|
"scwx-linux_clang-17"
|
|
"scwx-linux_clang-17_armv8"
|
|
"scwx-linux_clang-18"
|
|
"scwx-linux_clang-18_armv8"
|
|
"scwx-linux_gcc-11"
|
|
"scwx-linux_gcc-11_armv8"
|
|
"scwx-linux_gcc-12"
|
|
"scwx-linux_gcc-12_armv8"
|
|
"scwx-linux_gcc-13"
|
|
"scwx-linux_gcc-13_armv8"
|
|
"scwx-linux_gcc-14"
|
|
"scwx-linux_gcc-14_armv8"
|
|
)
|
|
fi
|
|
|
|
# Install Conan profiles
|
|
for profile_name in "${conan_profiles[@]}"; do
|
|
# Install original profile
|
|
conan config install "${script_dir}/conan/profiles/${profile_name}" -tf profiles
|
|
|
|
# Create debug profile in temp directory
|
|
debug_profile="/tmp/${profile_name}-debug"
|
|
cp "${script_dir}/conan/profiles/${profile_name}" "${debug_profile}"
|
|
|
|
# Replace build_type=Release with build_type=Debug
|
|
if [[ "$(uname)" == "Darwin" ]]; then
|
|
sed -i '' 's/build_type=Release/build_type=Debug/g' "${debug_profile}"
|
|
else
|
|
sed -i 's/build_type=Release/build_type=Debug/g' "${debug_profile}"
|
|
fi
|
|
|
|
# Install the debug profile
|
|
conan config install "${debug_profile}" -tf profiles
|
|
|
|
# Remove temporary debug profile
|
|
rm "${debug_profile}"
|
|
done
|
|
|
|
# Deactivate Python Virtual Environment
|
|
if [ -n "${venv_path:-}" ]; then
|
|
deactivate
|
|
fi
|