You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.0 KiB
71 lines
2.0 KiB
#!/bin/bash
|
|
|
|
# solves problem with macdeployqt on Qt 5.4 RC and Qt 5.5
|
|
# http://qt-project.org/forums/viewthread/50118
|
|
|
|
BUILD_FOLDER_PATH=$1
|
|
BUILD_QML_FOLDER_PATH="$BUILD_FOLDER_PATH/Resources/qml"
|
|
BUILD_PLUGINS_FOLDER_PATH="$BUILD_FOLDER_PATH/PlugIns"
|
|
|
|
if [ -d ${BUILD_QML_FOLDER_PATH} ]; then
|
|
|
|
declare -a BROKEN_FILES;
|
|
k=0;
|
|
for j in $(find ${BUILD_QML_FOLDER_PATH} -name *.dylib); do
|
|
BROKEN_FILES[${k}]=$j
|
|
|
|
((k=k+1))
|
|
done
|
|
|
|
|
|
for i in "${BROKEN_FILES[@]}"; do
|
|
REPLACE_STRING="$BUILD_FOLDER_PATH/"
|
|
APP_CONTENT_FILE=${i//$REPLACE_STRING/""}
|
|
IFS='/' read -a array <<< "$APP_CONTENT_FILE"
|
|
LENGTH=${#array[@]}
|
|
LAST_ITEM_INDEX=$((LENGTH-1))
|
|
FILE=${array[${LENGTH} - 1]}
|
|
|
|
ORIGINE_PATH=$(find ${BUILD_PLUGINS_FOLDER_PATH} -name ${FILE})
|
|
ORIGINE_PATH=${ORIGINE_PATH//$REPLACE_STRING/""}
|
|
s=""
|
|
for((l=0;l<${LAST_ITEM_INDEX};l++)) do
|
|
s=$s"../"
|
|
done
|
|
s=$s$ORIGINE_PATH
|
|
echo "s: $s"
|
|
|
|
REMOVE_BROKEN_ALIAS=$(rm -rf $i)
|
|
RESULT=$(ln -s $s $i)
|
|
done
|
|
fi
|
|
|
|
# replace framework links
|
|
declare -a BROKEN_FRAMEWORKS;
|
|
k=0;
|
|
BUILD_FRAMEWORKS_FOLDER_PATH="$BUILD_FOLDER_PATH/Frameworks"
|
|
for j in $(find ${BUILD_FRAMEWORKS_FOLDER_PATH} -name Qt*.framework); do
|
|
BROKEN_FRAMEWORKS[${k}]=$j
|
|
((k=k+1))
|
|
done
|
|
for i in "${BROKEN_FRAMEWORKS[@]}"; do
|
|
FRAMEWORK_FILE=$i/$(basename -s ".framework" $i)
|
|
otool -L $FRAMEWORK_FILE | grep -o /usr/.*Qt.*framework/\\w* | while read -a libs ; do
|
|
install_name_tool -change ${libs[0]} @loader_path/../../../`basename ${libs[0]}`.framework/`basename ${libs[0]}` $FRAMEWORK_FILE
|
|
done
|
|
done
|
|
|
|
declare -a BROKEN_PLUGINS;
|
|
k=0;
|
|
BUILD_PLUGINS_FOLDER_PATH="$BUILD_FOLDER_PATH/PlugIns"
|
|
for j in $(find ${BUILD_PLUGINS_FOLDER_PATH} -name *.dylib); do
|
|
BROKEN_PLUGINS[${k}]=$j
|
|
((k=k+1))
|
|
done
|
|
for i in "${BROKEN_PLUGINS[@]}"; do
|
|
FRAMEWORK_FILE=$i
|
|
otool -L $FRAMEWORK_FILE | grep -o /usr/.*Qt.*framework/\\w* | while read -a libs ; do
|
|
install_name_tool -change ${libs[0]} @loader_path/../../Frameworks/`basename ${libs[0]}`.framework/`basename ${libs[0]}` $FRAMEWORK_FILE
|
|
done
|
|
done
|
|
|
|
|