name=qt5 submodule=base majver=5.7 version=$majver.0 update_url='https://www.qt.io/download-open-source/' update_names="qt-everywhere-opensource-src-$version.tar.gz" optional_libraries='libpng libjpeg freetype harfbuzz' 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" \ '184f9460b40752d71b15b827260580c2' 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 -v -confirm-license -opensource \ -prefix "/$dir_prefix" \ -libdir "/$dir_prefix/$dir_libdir" \ -headerdir "/$dir_prefix/include/$name" \ -sysconfdir "/$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 \ -system-xcb \ -system-xkbcommon-x11 \ -qt-doubleconversion \ -openssl-linked \ -dbus-linked \ -nomake examples \ $optional make make INSTALL_ROOT="$dir_install" install mkdir -p "$dir_install/$dir_prefix/$dir_bindir" for bin in "$dir_install/$dir_prefix/$dir_libdir/$name/bin/"*; do ln -s "../$dir_libdir/$name/bin/$(basename "$bin")" "$dir_install/$dir_prefix/$dir_bindir/$(basename "$bin")-$name" done # vim:set tabstop=4 shiftwidth=4 syntax=sh et: