mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-30 06:50: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
 | 
