import shutil from .base import ( Dependency, ReleaseDownload, MakeBuilder, QMakeBuilder) from kiwixbuild.utils import Remotefile, pj, SkipCommand class Qt(Dependency): name = 'qt' class Source(ReleaseDownload): name = "qt" source_dir = "qt-5.10.1" archive = Remotefile('qt-everywhere-src-5.10.1.tar.xz', '', 'http://ftp.oregonstate.edu/.1/blfs/conglomeration/qt5/qt-everywhere-src-5.10.1.tar.xz') class Builder(MakeBuilder): dependencies = ['icu4c', 'zlib'] dynamic_configure_options = ["-shared"] static_configure_options = ["-static"] @property def all_configure_options(self): yield from self.configure_options if self.buildEnv.platformInfo.static: yield from self.static_configure_options else: yield from self.dynamic_configure_options if not self.target.force_native_build: yield from self.buildEnv.platformInfo.configure_options yield from ('-prefix', self.buildEnv.install_dir) yield from ('-libdir', pj(self.buildEnv.install_dir, self.buildEnv.libprefix)) @property def configure_options(self): skip_modules = [ 'qt3d', 'qtcanvas3d', 'qtcharts', 'qtconnectivity', 'qtdatavis3d', # 'qtdeclarative', 'qtdoc', 'qtgamepad', 'qtgraphicaleffects', 'qtlocation', 'qtmultimedia', 'qtnetworkauth', 'qtpurchasing', # 'qtquickcontrols', 'qtquickcontrols2', 'qtremoteobjects', 'qtscript', 'qtscxml', 'qtsensors', 'qtserialbus', 'qtserialport', 'qtspeech', 'qtvirtualkeyboard', 'qtwayland', 'qtwebglplugin', 'qtwebsockets', # 'qtwebview', ] yield '-recheck' yield '-opensource' yield '-confirm-license' yield '-ccache' yield from ('-make', 'libs') for module in skip_modules: yield from ('-skip', module) class QtWebEngine(Dependency): name = "qtwebengine" Source = Qt.Source class Builder(QMakeBuilder): dependencies = ['qt'] subsource_dir = "qtwebengine"