Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #http://qt-project.org/wiki/Build_Qt5_mysql_plugin_for_Android
- here="$(realpath -e "$(dirname "$0")")"
- export ANDROID_NDK_ROOT="$HOME/Applications/android-ndk-r9/"
- SR="$ANDROID_NDK_ROOT/platforms/android-9/arch-arm"
- BR="$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-"
- find "$SR" > "$here/rootfs_files_before.txt" || exit 1
- checkChanges() {
- find "$SR" > "$here/rootfs_files_after.txt" || exit 1
- echo "Changes:"
- diff -u "$here/rootfs_files_before.txt" "$here/rootfs_files_after.txt"
- }
- trap checkChanges EXIT
- # OpenSSL
- #pkg=openssl-1.0.1f.tar.gz
- pkg=openssl-1.0.1e.tar.gz
- dir=$(basename $pkg .tar.gz)
- if [ ! -d $dir ]; then
- [ -f $pkg ] || wget http://www.openssl.org/source/$pkg
- tar -xf $pkg || exit 1
- fi
- pushd $dir
- RANLIB="$BR"ranlib CC="$BR"gcc ./Configure android-armv7 --prefix=$SR/usr
- ANDROID_DEV=$SR/usr make #|| exit 1
- ANDROID_DEV=$SR/usr make || exit 1
- make install_sw || exit 1
- popd
- # libiconv
- pkg=libiconv-1.14.tar.gz
- dir=$(basename $pkg .tar.gz)
- if [ ! -d $dir ]; then
- [ -f $pkg ] || wget http://ftp.gnu.org/pub/gnu/libiconv/$pkg
- tar -xf $pkg || exit 1
- fi
- pushd $dir
- STRIP="$BR"strip RANLIB="$BR"ranlib OBJDUMP="$BR"objdump AR="$BR"ar CC="$BR"gcc CFLAGS=--sysroot=$SR CPP="$BR"cpp CPPFLAGS=$CFLAGS ./configure --build=x86_64 --host=arm --prefix=$SR/usr --with-sysroot=$SR
- make || exit 1
- make install || exit 1
- popd
- # mariadbclient
- if [ ! -d mariadb-native-client ]; then
- bzr branch lp:mariadb-native-client || exit 1
- fi
- pushd mariadb-native-client
- sed -i -e "s|ADD_SUBDIRECTORY(unittest/libmariadb)|#ADD_SUBDIRECTORY(unittest/libmariadb)|" CMakeLists.txt
- sed -i -e "N; s|typedef unsigned short ushort;\n#endif|#endif\ntypedef unsigned short ushort;|" include/my_global.h
- sed -i -e "N; s|SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION.*||" libmariadb/CMakeLists.txt
- sed -i -e "N; s|SOVERSION \${CPACK_PACKAGE_VERSION_MAJOR})||" libmariadb/CMakeLists.txt # Pig disgusting: the previous multiline thingie should've done it
- sed -i -e "N; s|\${CPACK_PACKAGE_VERSION_MAJOR}||" libmariadb/CMakeLists.txt # Pig disgusting: what the fuck
- mkdir build
- pushd build
- PKG_CONFIG_PATH=$SR/usr/lib/pkgconfig cmake -DCMAKE_AR="$BR"ar -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="$BR"gcc -DCMAKE_C_FLAGS=--sysroot=$SR -DCMAKE_INSTALL_PREFIX=$SR/usr -DCMAKE_LINKER="$BR"ld -DCMAKE_NM="$BR"nm -DCMAKE_OBJCOPY="$BR"objcopy -DCMAKE_OBJDUMP="$BR"objdump -DCMAKE_RANLIB="$BR"ranlib -DCMAKE_STRIP="$BR"strip -DWITH_EXTERNAL_ZLIB=ON -DICONV_INCLUDE_DIR=$SR/usr/include -DICONV_LIBRARIES=$SR/usr/lib/libiconv.a -DZLIB_INCLUDE_DIR=$SR/usr/include -DZLIB_LIBRARY=$SR/usr/lib/libz.so ../ || exit 1
- make install || exit 1
- popd
- # ???
- pwd
- cp build/libmariadb/*.{a,so} "$SR/usr/lib/mariadb/" || exit 1
- popd
- # qt
- #pkg=qt-everywhere-opensource-src-5.2.1.tar.gz
- pkg=qtbase-opensource-src-5.2.1.tar.gz
- dir=$(basename $pkg .tar.gz)
- if [ ! -d $dir ]; then
- #[ -f $pkg ] || wget http://download.qt-project.org/official_releases/qt/5.2/5.2.1/single/$pkg
- [ -f $pkg ] || wget http://download.qt-project.org/official_releases/qt/5.2/5.2.1/submodules/$pkg
- tar -xf $pkg || exit 1
- fi
- pushd $dir/src/plugins/sqldrivers/mysql/
- #qmake=~/"Applications/Qt/5.2.1/gcc/bin/qmake"
- qmake=~/"Applications/Qt/5.2.1/android_armv7/bin/qmake"
- $qmake "INCLUDEPATH+=$SR/usr/include/mariadb" "LIBS+=$SR/usr/lib/mariadb/libmariadbclient.a $SR/usr/lib/libssl.a $SR/usr/lib/libcrypto.a $SR/usr/lib/libiconv.a" "LIBPATH+=$SR/usr/lib/mariadb" -o Makefile mysql.pro
- make || exit 1
- make install || exit 1
- popd
- echo
- echo "BOOYAH!!!"
- echo
Advertisement
Add Comment
Please, Sign In to add comment