name=qt5 submodule=base majver=5.9 version=$majver.1 update_url='https://www.qt.io/download-open-source/' update_names="qt-everywhere-opensource-src-$version.tar.xz" optional_libraries='libpng libjpeg freetype harfbuzz xcb xkbcommon-x11' for opt in $optional_libraries; do define_option "$opt: Enable support for $opt" done dlextract "http://download.qt.io/official_releases/qt/$majver/$version/submodules/qt$submodule-opensource-src-$version.tar.xz" \ '5a74869fc3731bcb8311e62e235d11a7' header_end cd "qt$submodule-opensource-src-$version" # Build using custom CFLAGS, CXXFLAGS and LDFLAGS (Shamelessly stolen from ArchLinux) sed -i -e "s/^\(QMAKE_CFLAGS_RELEASE.*\)/\1 $(safe_sed "$CFLAGS")/" mkspecs/common/gcc-base.conf sed -i -e "s/^\(QMAKE_CXXFLAGS_RELEASE.*\)/\1 $(safe_sed "$CXXFLAGS")/" mkspecs/common/gcc-base.conf sed -i -e "s/^\(QMAKE_LFLAGS_RELEASE.*\)/\1 $(safe_sed "$LDFLAGS")/" mkspecs/common/g++-unix.conf # Make sure all the possible libraries are linked from the OS, as Qt might use it's own if they aren't available. optional="" for opt in $optional_libraries; do option $opt && optional="$optional -system-$opt" || optional="$optional -no-$opt" done # NOTE: Only double-conversion from Qt itself is used, as there's no recent stable version available, due to lack of maintenance (last I can find is 1.1.5 from 2014, but there's scripts to build 2.0.1, for example in AUR, yet there's no proper place to get the sources for that). ./configure -confirm-license -opensource \ -prefix "/$dir_prefix" \ -libdir "/$dir_prefix/$dir_libdir" \ -headerdir "/$dir_prefix/$dir_includedir/$name" \ -sysconfdir "/$dir_prefix/$dir_sysconfdir/xdg" \ -datadir "/$dir_prefix/$dir_datadir/$name" \ -bindir "/$dir_prefix/$dir_libdir/$name/bin" \ -archdatadir "/$dir_prefix/$dir_libdir/$name" \ -docdir "/$dir_prefix/$dir_docdir/$name" \ -examplesdir "/$dir_prefix/$dir_docdir/$name/examples" \ -system-sqlite \ -system-zlib \ -system-pcre \ -qt-doubleconversion \ -openssl-linked \ -dbus-linked \ -nomake examples \ $optional make make INSTALL_ROOT="$dir_install" install mkdir -p "$dir_install/$dir_prefix/$dir_bindir" find "$dir_install/$dir_prefix/$dir_libdir/$name/bin/" -type f -printf '%P\n' | while IFS= read bin; do ln -s "/$dir_prefix/$dir_libdir/$name/bin/$bin" "$dir_install/$dir_prefix/$dir_bindir/$bin-$name" done # vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab: