mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-11-04 08:04:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
resolve()
 | 
						|
{
 | 
						|
   dir="${1%/*}"
 | 
						|
   base="${1##*/}"
 | 
						|
   while [ -n "${base}" ]
 | 
						|
   do
 | 
						|
      lib="${dir}/${base}"
 | 
						|
      base=$(readlink "${dir}/${base}")
 | 
						|
   done
 | 
						|
   echo $lib
 | 
						|
}
 | 
						|
 | 
						|
update_paths()
 | 
						|
{
 | 
						|
   local indent="${1}"
 | 
						|
   local path=$(resolve "${2}")
 | 
						|
   local base="${path##*/}"
 | 
						|
 | 
						|
   if [ -e "${LIBPATH}/${base}" ]
 | 
						|
   then
 | 
						|
      return
 | 
						|
   fi
 | 
						|
   
 | 
						|
   printf "%${indent}.${indent}cCopying '${path}' into bundle\n" " "
 | 
						|
   cp -p "${path}" "${LIBPATH}"
 | 
						|
 | 
						|
   for lib in $(otool -L "${path}" | awk '/libwx.*dylib /{print $1}')
 | 
						|
   do
 | 
						|
      path=$(resolve "${lib}")
 | 
						|
 | 
						|
      printf "%${indent}.${indent}cChanging '${lib}' to '@loader_path/../Frameworks/${path##*/}'\n" " "
 | 
						|
      install_name_tool -change "${lib}" "@loader_path/../Frameworks/${path##*/}" "${LIBPATH}/${base}"
 | 
						|
 | 
						|
      update_paths $((indent + 2)) "${path}"
 | 
						|
   done
 | 
						|
}
 | 
						|
 | 
						|
# For testing
 | 
						|
# BUILT_PRODUCTS_DIR=/tmp/Audacity.app/Contents
 | 
						|
# EXECUTABLE_PATH=MacOS/audacity
 | 
						|
# FRAMEWORKS_FOLDER_PATH=Frameworks
 | 
						|
 | 
						|
EXEPATH="${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}"
 | 
						|
LIBPATH="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
 | 
						|
 | 
						|
mkdir -p "${LIBPATH}"
 | 
						|
 | 
						|
echo "Updating Audacity executable"
 | 
						|
 | 
						|
for lib in $(otool -L "${EXEPATH}" | awk '/libwx.*dylib /{print $1}')
 | 
						|
do
 | 
						|
   path=$(resolve "${lib}")
 | 
						|
 | 
						|
   printf "Changing '${lib}' to '@executable_path/../Frameworks/${path##*/}'\n"
 | 
						|
   install_name_tool -change "${lib}" "@executable_path/../Frameworks/${path##*/}" "${EXEPATH}"
 | 
						|
 | 
						|
   update_paths 2 "${path}"
 | 
						|
done
 | 
						|
 | 
						|
exit 0
 |