aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/create_macosx_bundle.sh
blob: f5c595b826c0d39a71e90a024f8e770e67be0474 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/bin/sh

printUsage() {
  echo "$0 <sqlitestudio build output directory> <qmake path> [dmg|dist|dist_full]"
}

if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
  printUsage
  exit 1
fi

if [ "$#" -eq 3 ] && [ "$3" != "dmg" ] && [ "$3" != "dist" ] && [ "$3" != "dist_plugins" ] && [ "$3" != "dist_full" ]; then
  printUsage
  exit 1
fi

qt_deploy_bin="${2/qmake/macdeployqt}"
ls $qt_deploy_bin >/dev/null 2>&1
if [ "$?" -ne 0 ]; then
  echo "macdeployqt program missing!"
  exit 1
fi

cd $1/SQLiteStudio

rm -rf SQLiteStudio.app/Contents/Frameworks
rm -rf SQLiteStudio.app/Contents/PlugIns
rm -f SQLiteStudio.app/Contents/MacOS/sqlitestudiocli
rm -f SQLiteStudio.app/Contents/Resources/qt.conf

mkdir SQLiteStudio.app/Contents/Frameworks

cp -RP plugins SQLiteStudio.app/Contents
mv SQLiteStudio.app/Contents/plugins SQLiteStudio.app/Contents/PlugIns

cp -RP lib*SQLiteStudio*.dylib SQLiteStudio.app/Contents/Frameworks

# CLI paths
qtcore_path=`otool -L sqlitestudiocli | grep QtCore | awk '{print $1;}'`
new_qtcore_path="@rpath/QtCore.framework/Versions/5/QtCore"

cp -P sqlitestudiocli SQLiteStudio.app/Contents/MacOS
install_name_tool -change libcoreSQLiteStudio.1.dylib "@rpath/libcoreSQLiteStudio.1.dylib" SQLiteStudio.app/Contents/MacOS/sqlitestudiocli
install_name_tool -change $qtcore_path $new_qtcore_path SQLiteStudio.app/Contents/MacOS/sqlitestudiocli

# SQLiteStudio binary paths
install_name_tool -change libcoreSQLiteStudio.1.dylib "@rpath/libcoreSQLiteStudio.1.dylib" SQLiteStudio.app/Contents/MacOS/SQLiteStudio
install_name_tool -change libguiSQLiteStudio.1.dylib "@rpath/libguiSQLiteStudio.1.dylib" SQLiteStudio.app/Contents/MacOS/SQLiteStudio

# Lib paths
install_name_tool -change libcoreSQLiteStudio.1.dylib "@rpath/libcoreSQLiteStudio.1.dylib" SQLiteStudio.app/Contents/Frameworks/libguiSQLiteStudio.1.dylib

cp -RP ../../../lib/*.dylib SQLiteStudio.app/Contents/Frameworks

# Plugin paths
for f in `ls SQLiteStudio.app/Contents/PlugIns`
do
    PLUGIN_FILE=SQLiteStudio.app/Contents/PlugIns/$f
    install_name_tool -change libcoreSQLiteStudio.1.dylib "@rpath/libcoreSQLiteStudio.1.dylib" $PLUGIN_FILE
    install_name_tool -change libguiSQLiteStudio.1.dylib "@rpath/libguiSQLiteStudio.1.dylib" $PLUGIN_FILE
done

function replaceInfo() {
    echo Replacing Info.plist
    cd $1/SQLiteStudio
    VERSION=`SQLiteStudio.app/Contents/MacOS/sqlitestudiocli -v | awk '{print $2}'`
    YEAR=`date '+%Y'`

    cd SQLiteStudio.app/Contents
    sed "s/%VERSION%/$VERSION/g" Info.plist | sed "s/%YEAR%/$YEAR/g" > Info.plist.new
    echo "New plist:"
    cat Info.plist.new
    mv Info.plist.new Info.plist
}


if [ "$3" == "dmg" ]; then
    $qt_deploy_bin SQLiteStudio.app -dmg
    replaceInfo $1
elif [ "$3" == "dist" ] || [ "$3" == "dist_plugins" ] || [ "$3" == "dist_full" ]; then
    if [ "$3" == "dist" ] || [ "$3" == "dist_full" ]; then
        $qt_deploy_bin SQLiteStudio.app -dmg -executable=SQLiteStudio.app/Contents/MacOS/SQLiteStudio -always-overwrite -verbose=3 2> /tmp/log.txt
	replaceInfo $1

        cd $1/SQLiteStudio
        VERSION=`SQLiteStudio.app/Contents/MacOS/sqlitestudiocli -v | awk '{print $2}'`

        mv SQLiteStudio.dmg sqlitestudio-$VERSION.dmg

        # App
        echo "Building incremental update package: sqlitestudio-$VERSION.zip"
        cp -R SQLiteStudio.app app
        cd app/Contents
        if [ "$3" == "dist" ]; then
            rm -rf PlugIns
            rm -rf Frameworks/Qt*.framework
        fi
        find Frameworks -type l -exec rm -f {} \;
        cd ..
        zip -r sqlitestudio-$VERSION.zip *
        mv sqlitestudio-$VERSION.zip ..
        cd ..
        rm -rf app
    else
        $qt_deploy_bin SQLiteStudio.app
	replaceInfo $1
    fi

    # Plugins
    mkdir Contents Contents/PlugIns
    SQLiteStudio.app/Contents/MacOS/SQLiteStudio --list-plugins | while read line
    do
    PLUGIN=`echo $line | awk '{print $1}'`
    PLUGIN_VER=`echo $line | awk '{print $2}'`
    PLUGIN_FILE=SQLiteStudio.app/Contents/PlugIns/lib$PLUGIN.dylib
    if [ -f $PLUGIN_FILE ]; then
        echo "Building plugin package: $PLUGIN-$PLUGIN_VER.tar.gz"
        cp SQLiteStudio.app/Contents/PlugIns/lib$PLUGIN.dylib Contents/PlugIns
        zip -r $PLUGIN\-$PLUGIN_VER.zip Contents
    fi
    rm -f Contents/PlugIns/*
    done
    rm -rf Contents
    echo "Done."
else
    $qt_deploy_bin SQLiteStudio.app
    replaceInfo $1
fi