def setDependencies(self): self.runtimeDependencies["virtual/base"] = None self.buildDependencies["kde/frameworks/extra-cmake-modules"] = None self.runtimeDependencies["libs/qt5/qtbase"] = None self.runtimeDependencies["kde/frameworks/tier1/kconfig"] = None self.runtimeDependencies["kde/frameworks/tier2/kdoctools"] = None self.runtimeDependencies["kde/frameworks/tier1/kguiaddons"] = None self.runtimeDependencies["kde/frameworks/tier1/ki18n"] = None self.runtimeDependencies["kde/frameworks/tier3/kinit"] = None self.runtimeDependencies["kde/frameworks/tier2/kjobwidgets"] = None self.runtimeDependencies["kde/frameworks/tier3/kio"] = None self.runtimeDependencies["kde/frameworks/tier3/kparts"] = None self.runtimeDependencies["kde/frameworks/tier3/ktexteditor"] = None self.runtimeDependencies["kde/frameworks/tier1/kwindowsystem"] = None self.runtimeDependencies["kde/frameworks/tier3/kxmlgui"] = None self.runtimeDependencies["kde/frameworks/tier1/kdbusaddons"] = None self.runtimeDependencies["kde/frameworks/tier1/kitemmodels"] = None self.runtimeDependencies["kde/frameworks/tier3/kactivities"] = None self.runtimeDependencies["kde/frameworks/tier1/threadweaver"] = None self.runtimeDependencies["kde/frameworks/tier3/knewstuff"] = None if self.options.dynamic.fullPlasma: self.runtimeDependencies["kde/frameworks/tier3/plasma-framework"] = None if OsUtils.isUnix(): self.runtimeDependencies["kde/applications/konsole"] = None # try to use Breeze style as Windows style has severe issues for e.g. scaling self.runtimeDependencies["kde/plasma/breeze"] = None
def setDependencies(self): self.runtimeDependencies["virtual/base"] = "default" self.buildDependencies["frameworks/extra-cmake-modules"] = "default" self.runtimeDependencies["libs/qt5/qtbase"] = "default" self.runtimeDependencies["frameworks/tier1/kconfig"] = "default" self.runtimeDependencies["frameworks/tier2/kdoctools"] = "default" self.runtimeDependencies["frameworks/tier1/kguiaddons"] = "default" self.runtimeDependencies["frameworks/tier1/ki18n"] = "default" self.runtimeDependencies["frameworks/tier3/kinit"] = "default" self.runtimeDependencies["frameworks/tier2/kjobwidgets"] = "default" self.runtimeDependencies["frameworks/tier3/kio"] = "default" self.runtimeDependencies["frameworks/tier3/kparts"] = "default" self.runtimeDependencies["frameworks/tier3/ktexteditor"] = "default" self.runtimeDependencies["frameworks/tier1/kwindowsystem"] = "default" self.runtimeDependencies["frameworks/tier3/kxmlgui"] = "default" self.runtimeDependencies["frameworks/tier1/kdbusaddons"] = "default" self.runtimeDependencies["frameworks/tier1/kitemmodels"] = "default" self.runtimeDependencies["frameworks/tier3/kactivities"] = "default" if self.options.features.fullplasma: self.runtimeDependencies[ "frameworks/tier3/plasma-framework"] = "default" self.runtimeDependencies["frameworks/tier1/threadweaver"] = "default" self.runtimeDependencies["frameworks/tier3/knewstuff"] = "default" if OsUtils.isUnix(): self.runtimeDependencies["kde/applications/konsole"] = "default"
def makeProgram(self) -> str: if self.subinfo.options.make.supportsMultijob: if self.supportsNinja and CraftCore.settings.getboolean( "Compile", "UseNinja", False) and CraftCore.cache.findApplication("ninja"): return "ninja" if ("Compile", "MakeProgram") in CraftCore.settings: makeProgram = CraftCore.settings.get("Compile", "MakeProgram") CraftCore.log.debug(f"set custom make program: {makeProgram}") makeProgram = CraftCore.cache.findApplication(makeProgram) if makeProgram: return makeProgram else: CraftCore.log.warning( f"Failed to find {CraftCore.settings.get('Compile', 'MakeProgram')}" ) elif not self.subinfo.options.make.supportsMultijob: if "MAKE" in os.environ: del os.environ["MAKE"] if OsUtils.isWin(): if CraftCore.compiler.isMSVC() or CraftCore.compiler.isIntel(): return "nmake" elif CraftCore.compiler.isMinGW(): return "mingw32-make" else: CraftCore.log.critical( f"unknown {CraftCore.compiler} compiler") elif OsUtils.isUnix(): return "make"
def _compress(self, archiveName, sourceDir, destDir, createDigests=True) -> bool: archive = os.path.join(destDir, archiveName) utils.createDir(os.path.dirname(archive)) if os.path.isfile(archive): utils.deleteFile(archive) if OsUtils.isUnix(): if not self.__xz(archive, sourceDir): return False else: if not self.__7z(archive, sourceDir): return False if createDigests: if not CraftCore.settings.getboolean("Packager", "CreateCache"): self._generateManifest(destDir, archiveName) CraftHash.createDigestFiles(archive) else: if CraftCore.settings.getboolean("ContinuousIntegration", "UpdateRepository", False): manifestUrls = [self.cacheRepositoryUrls()[0]] else: manifestUrls = None self._generateManifest(destDir, archiveName, manifestLocation=self.cacheLocation(), manifestUrls=manifestUrls) return True
def install(self): # create post (un)install scripts if OsUtils.isWin(): scriptExt = ".cmd" elif OsUtils.isUnix(): scriptExt = ".sh" for pkgtype in ['bin', 'lib', 'doc', 'src', 'dbg']: script = os.path.join(self.packageDir(), "post-install-%s.%s") % (pkgtype, scriptExt) scriptName = "post-install-%s-%s.%s" % (self.package, pkgtype, scriptExt) # are there any cases there installDir should be honored ? destscript = os.path.join(self.imageDir(), "manifest", scriptName) if not os.path.exists(os.path.join(self.imageDir(), "manifest")): utils.createDir(os.path.join(self.imageDir(), "manifest")) if os.path.exists(script): utils.copyFile(script, destscript) script = os.path.join( self.packageDir(), "post-uninstall-%s.%s") % (pkgtype, scriptExt) scriptName = "post-uninstall-%s-%s.%s" % (self.package, pkgtype, scriptExt) # are there any cases there installDir should be honored ? destscript = os.path.join(self.imageDir(), "manifest", scriptName) if not os.path.exists(os.path.join(self.imageDir(), "manifest")): utils.createDir(os.path.join(self.imageDir(), "manifest")) if os.path.exists(script): utils.copyFile(script, destscript) return True
def setXDG(self): self.prependPath("XDG_DATA_DIRS", [os.path.join(CraftStandardDirs.craftRoot(), "share")]) if OsUtils.isUnix(): self.prependPath("XDG_CONFIG_DIRS", [os.path.join(CraftStandardDirs.craftRoot(), "etc", "xdg")]) self.addEnvVar("XDG_DATA_HOME", os.path.join(CraftStandardDirs.craftRoot(), "home", os.getenv("USER"), ".local5", "share")) self.addEnvVar("XDG_CONFIG_HOME", os.path.join(CraftStandardDirs.craftRoot(), "home", os.getenv("USER"), ".config")) self.addEnvVar("XDG_CACHE_HOME", os.path.join(CraftStandardDirs.craftRoot(), "home", os.getenv("USER"), ".cache"))
def __makeFileGenerator(self): """return cmake related make file generator""" if self.makeProgram == "ninja": return "Ninja" if OsUtils.isWin(): if CraftCore.compiler.isMSVC() and not CraftCore.compiler.isIntel(): return "NMake Makefiles" if CraftCore.compiler.isMinGW(): return "MinGW Makefiles" elif OsUtils.isUnix(): return "Unix Makefiles" else: CraftCore.log.critical(f"unknown {CraftCore.compiler} compiler")
def copyDir(srcdir, destdir, linkOnly=craftSettings.getboolean("General", "UseHardlinks", False), copiedFiles=None): """ copy directory from srcdir to destdir """ craftDebug.log.debug("copyDir called. srcdir: %s, destdir: %s" % (srcdir, destdir)) if (not srcdir.endswith(os.path.sep)): srcdir += os.path.sep if (not destdir.endswith(os.path.sep)): destdir += os.path.sep for root, dirNames, files in os.walk(srcdir): # do not copy files under .svn directories, because they are write-protected # and the they cannot easily be deleted... if (root.find(".svn") == -1): tmpdir = root.replace(srcdir, destdir) if not os.path.exists(tmpdir): os.makedirs(tmpdir) for fileName in files: # symlinks to files are included in `files` if copyFile(os.path.join(root, fileName), os.path.join(tmpdir, fileName), linkOnly=linkOnly) and copiedFiles != None: copiedFiles.append(os.path.join(tmpdir, fileName)) if OsUtils.isUnix(): for dirName in dirNames: # symlinks to directories are included in `dirNames` -- we only want to copy the symlinks srcPath = os.path.join(root, dirName) if os.path.islink(srcPath): linkTo = os.readlink(srcPath) if os.path.isabs(linkTo): craftDebug.log.warning( f"Not copying symlink targeting an absolute path -- not supported: {srcPath}" ) continue newLinkName = os.path.join(tmpdir, dirName) if os.path.exists(newLinkName): continue # re-create exact same symlink, but this time in the destdir if createSymlink(os.path.join(tmpdir, linkTo), newLinkName) and copiedFiles != None: copiedFiles.append(newLinkName) return True
def _createShortPath(longPath) -> str: if not CraftShortPath._useShortpaths: return longPath import utils utils.createDir(CraftCore.standardDirs.junctionsDir()) longPath = OsUtils.toNativePath(longPath) path = CraftCore.standardDirs.junctionsDir() / hex( zlib.crc32(bytes(longPath, "UTF-8")))[2:] delta = len(longPath) - len(str(path)) if delta <= 0: CraftCore.debug.log.debug( f"Using junctions for {longPath} wouldn't save characters returning original path" ) CraftCore.debug.log.debug(f"{longPath}\n" f"{path}, gain: {delta}") return longPath utils.createDir(longPath) if not os.path.isdir(path): if OsUtils.isUnix(): ok = utils.createSymlink(longPath, path, useAbsolutePath=True, targetIsDirectory=True) else: # note: mklink is a CMD command => needs shell ok = utils.system(["mklink", "/J", path, longPath], shell=True, stdout=subprocess.DEVNULL, logCommand=False) if not ok: CraftCore.debug.log.critical( f"Could not create shortpath {path}, for {longPath}") return longPath else: if not os.path.samefile(path, longPath): CraftCore.debug.log.critical( f"Existing short path {path}, did not match {longPath}") return longPath CraftCore.debug.log.debug(f"Mapped \n" f"{longPath} to\n" f"{path}, gained {delta}") return path
def install(self): """install the target""" if OsUtils.isUnix(): if not os.path.exists(self.installDir()): os.makedirs(self.installDir()) utils.copyDir(self.buildDir(), self.installDir()) return BuildSystemBase.install(self) else: if not BuildSystemBase.install(self): return False for root, dirs, files in os.walk(self.buildDir()): for f in files: if f.endswith(".dll"): utils.copyFile(os.path.join(root, f), os.path.join(self.imageDir(), "lib", f)) utils.copyFile(os.path.join(root, f), os.path.join(self.imageDir(), "bin", f)) elif f.endswith(".a") or f.endswith(".lib"): utils.copyFile(os.path.join(root, f), os.path.join(self.imageDir(), "lib", f)) return True
def makeProgram(self) -> str: if self.subinfo.options.make.supportsMultijob: if self.supportsNinja and CraftCore.settings.getboolean("Compile", "UseNinja", False): return "ninja" if ("Compile", "MakeProgram") in CraftCore.settings: CraftCore.log.debug("set custom make program: %s" % CraftCore.settings.get("Compile", "MakeProgram", "")) return CraftCore.settings.get("Compile", "MakeProgram", "") elif not self.subinfo.options.make.supportsMultijob: if "MAKE" in os.environ: del os.environ["MAKE"] if OsUtils.isWin(): if CraftCore.compiler.isMSVC() or CraftCore.compiler.isIntel(): return "nmake" elif CraftCore.compiler.isMinGW(): return "mingw32-make" else: CraftCore.log.critical(f"unknown {CraftCore.compiler} compiler") elif OsUtils.isUnix(): return "make"
def __makeFileGenerator(self): """return cmake related make file generator""" if self.makeProgram == "ninja": return "Ninja" if OsUtils.isWin(): if craftCompiler.isMSVC() and not ( self.subinfo.options.cmake.useIDE or self.subinfo.options. cmake.openIDE) or craftCompiler.isIntel(): return "NMake Makefiles" else: if craftCompiler.isMSVC2017(): return "Visual Studio 15 2017" + ( " Win64" if craftCompiler.isX64() else "") elif craftCompiler.isMSVC2015(): return "Visual Studio 14 2015" + ( " Win64" if craftCompiler.isX64() else "") elif craftCompiler.isMSVC2010(): return "Visual Studio 10" if craftCompiler.isMinGW(): return "MinGW Makefiles" elif OsUtils.isUnix(): return "Unix Makefiles" else: craftDebug.log.critical(f"unknown {craftCompiler} compiler")
def setupEnvironment(self): originaleEnv = CaseInsensitiveDict(os.environ) for var, value in CraftCore.settings.getSection( "Environment"): # set and override existing values # the ini is case insensitive so sections are lowercase.... self.addEnvVar(var.upper(), value) self.prependEnvVar("PATH", os.path.dirname(sys.executable)) os.environ.update(self.getEnv()) self.addEnvVar("KDEROOT", CraftCore.standardDirs.craftRoot()) self.addEnvVar( "SSL_CERT_FILE", os.path.join(CraftCore.standardDirs.etcDir(), "cacert.pem")) self.addEnvVar( "REQUESTS_CA_BUNDLE", os.path.join(CraftCore.standardDirs.etcDir(), "cacert.pem")) if CraftCore.settings.getboolean("Compile", "UseCCache", False): self.addEnvVar( "CCACHE_DIR", CraftCore.settings.get( "Paths", "CCACHE_DIR", os.path.join(CraftCore.standardDirs.craftRoot(), "build", "CCACHE"))) if CraftCore.settings.getboolean("QtSDK", "Enabled", "false"): sdkPath = os.path.join(CraftCore.settings.get("QtSDK", "Path"), CraftCore.settings.get("QtSDK", "Version"), CraftCore.settings.get("QtSDK", "Compiler"), "bin") if not os.path.exists(sdkPath): log(f"Please ensure that you have installed the Qt SDK in {sdkPath}", critical=True) self.prependEnvVar("PATH", sdkPath) if OsUtils.isWin(): self._setupWin() elif OsUtils.isMac(): self._setupMac() else: self._setupUnix() PKG_CONFIG_PATH = collections.OrderedDict.fromkeys([ os.path.join(CraftCore.standardDirs.craftRoot(), "lib", "pkgconfig") ]) if "PKG_CONFIG_PATH" in originaleEnv: PKG_CONFIG_PATH.update( collections.OrderedDict.fromkeys( originaleEnv["PKG_CONFIG_PATH"].split(os.path.pathsep))) else: pkgCOnfig = shutil.which("pkg-config", path=originaleEnv["PATH"]) if pkgCOnfig: out = self._getOutput( "pkg-config --variable pc_path pkg-config", shell=True) if out[0] == 0: PKG_CONFIG_PATH.update( collections.OrderedDict.fromkeys(out[1].split( os.path.pathsep))) self.prependEnvVar("PKG_CONFIG_PATH", os.path.pathsep.join(PKG_CONFIG_PATH.keys())) self.prependEnvVar("QT_PLUGIN_PATH", [ os.path.join(CraftCore.standardDirs.craftRoot(), "plugins"), os.path.join(CraftCore.standardDirs.craftRoot(), "lib", "plugins"), os.path.join(CraftCore.standardDirs.craftRoot(), "lib64", "plugins"), os.path.join(CraftCore.standardDirs.craftRoot(), "lib", "x86_64-linux-gnu", "plugins"), os.path.join(CraftCore.standardDirs.craftRoot(), "lib", "plugin") ]) self.prependEnvVar("QML2_IMPORT_PATH", [ os.path.join(CraftCore.standardDirs.craftRoot(), "qml"), os.path.join(CraftCore.standardDirs.craftRoot(), "lib", "qml"), os.path.join(CraftCore.standardDirs.craftRoot(), "lib64", "qml"), os.path.join(CraftCore.standardDirs.craftRoot(), "lib", "x86_64-linux-gnu", "qml") ]) self.prependEnvVar("QML_IMPORT_PATH", os.environ["QML2_IMPORT_PATH"]) self.prependEnvVar("QT_DATA_DIRS", CraftCore.standardDirs.locations.data) if CraftCore.settings.getboolean("General", "UseSandboxConfig", True): self.setXDG() self.prependEnvVar("PATH", CraftCore.standardDirs.craftBin()) # add python site packages to pythonpath self.prependEnvVar( "PYTHONPATH", os.path.join(CraftCore.standardDirs.craftRoot(), "lib", "site-packages")) # prepend our venv python self.prependEnvVar("PATH", [ os.path.join(CraftCore.standardDirs.etcDir(), f"virtualenv", "3", "Scripts" if CraftCore.compiler.isWindows else "bin"), os.path.join(CraftCore.standardDirs.etcDir(), f"virtualenv", "2", "Scripts" if CraftCore.compiler.isWindows else "bin") ]) # make sure that craftroot bin is the first to look for dlls etc self.prependEnvVar( "PATH", os.path.join(CraftCore.standardDirs.craftRoot(), "bin")) self.prependEnvVar( "PATH", os.path.join(CraftCore.standardDirs.craftRoot(), "dev-utils", "bin")) if CraftCore.compiler.isClang(): if OsUtils.isUnix() and CraftCore.settings.getboolean( "General", "UseSystemClang", True): self.addEnvVar("CC", "/usr/bin/clang") self.addEnvVar("CXX", "/usr/bin/clang++") else: if CraftCore.compiler.isMSVC(): self.addEnvVar("CC", "clang-cl") self.addEnvVar("CXX", "clang-cl") else: self.addEnvVar("CC", "clang") self.addEnvVar("CXX", "clang") elif CraftCore.compiler.isGCC(): if not CraftCore.compiler.isNative() and CraftCore.compiler.isX86( ): self.addEnvVar("CC", "gcc -m32") self.addEnvVar("CXX", "g++ -m32") self.addEnvVar("AS", "gcc -c -m32") else: self.addEnvVar("CC", "gcc") self.addEnvVar("CXX", "g++") if CraftCore.settings.getboolean( "General", "AllowAnsiColor", not CraftCore.settings.getboolean( "ContinuousIntegration", "Enabled", False)): # different non standard env switches self.addEnvVar("CLICOLOR_FORCE", "1") self.addEnvVar("CLICOLOR", "1") self.addEnvVar("ANSICON", "1") if CraftCore.compiler.isClang() and CraftCore.compiler.isMSVC(): self.prependEnvVar("CFLAGS", "-fcolor-diagnostics -fansi-escape-codes", sep=" ") self.prependEnvVar("CXXFLAGS", "-fcolor-diagnostics -fansi-escape-codes", sep=" ") elif CraftCore.compiler.isGCCLike(): self.prependEnvVar("CFLAGS", "-fdiagnostics-color=always", sep=" ") self.prependEnvVar("CXXFLAGS", "-fdiagnostics-color=always", sep=" ") if OsUtils.isWin(): self.addEnvVar( "TERM", "xterm-256color") # pretend to be a common smart terminal
def setupEnvironment(self): for var, value in CraftCore.settings.getSection( "Environment"): # set and override existing values # the ini is case insensitive so sections are lowercase.... self.addEnvVar(var.upper(), value) self.prependEnvVar("PATH", os.path.dirname(sys.executable)) os.environ = self.getEnv() self.checkForEvilApplication() self.addEnvVar("KDEROOT", CraftStandardDirs.craftRoot()) if CraftCore.settings.getboolean("Compile", "UseCCache", False): self.addEnvVar( "CCACHE_DIR", CraftCore.settings.get( "Paths", "CCACHE_DIR", os.path.join(CraftStandardDirs.craftRoot(), "build", "CCACHE"))) if OsUtils.isWin(): self._setupWin() else: self.setXDG() self.prependEnvVar( "PKG_CONFIG_PATH", os.path.join(CraftStandardDirs.craftRoot(), "lib", "pkgconfig")) self.prependEnvVar("QT_PLUGIN_PATH", [ os.path.join(CraftStandardDirs.craftRoot(), "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib64", "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "x86_64-linux-gnu", "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "plugin") ]) self.prependEnvVar("QML2_IMPORT_PATH", [ os.path.join(CraftStandardDirs.craftRoot(), "qml"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "qml"), os.path.join(CraftStandardDirs.craftRoot(), "lib64", "qml"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "x86_64-linux-gnu", "qml") ]) self.prependEnvVar("QML_IMPORT_PATH", os.environ["QML2_IMPORT_PATH"]) self.setXDG() self.prependEnvVar("PATH", CraftStandardDirs.craftBin()) # make sure thate craftroot bin is the first to look for dlls etc self.prependEnvVar("PATH", os.path.join(CraftStandardDirs.craftRoot(), "bin")) self.prependEnvVar( "PATH", os.path.join(CraftStandardDirs.craftRoot(), "dev-utils", "bin")) # add python site packages to pythonpath self.prependEnvVar( "PYTHONPATH", os.path.join(CraftStandardDirs.craftRoot(), "lib", "site-packages")) if CraftCore.compiler.isClang(): if OsUtils.isUnix(): self.addEnvVar("CC", "/usr/bin/clang") self.addEnvVar("CXX", "/usr/bin/clang++") else: if CraftCore.compiler.isMSVC(): self.addEnvVar("CC", "clang-cl") self.addEnvVar("CXX", "clang-cl") else: self.addEnvVar("CC", "clang") self.addEnvVar("CXX", "clang") if CraftCore.settings.getboolean("General", "AllowAnsiColor", False): self.addEnvVar("CLICOLOR_FORCE", "1") self.addEnvVar("CLICOLOR", "1") if CraftCore.compiler.isClang() and CraftCore.compiler.isMSVC(): self.prependEnvVar("CFLAGS", "-fcolor-diagnostics", sep=" ") self.prependEnvVar("CXXFLAGS", "-fcolor-diagnostics", sep=" ") elif CraftCore.compiler.isGCCLike(): self.prependEnvVar("CFLAGS", "-fdiagnostics-color=always", sep=" ") self.prependEnvVar("CXXFLAGS", "-fdiagnostics-color=always", sep=" ") if OsUtils.isWin(): os.environ[ "TERM"] = "xterm" # pretend to be a common smart terminal
def setupEnvironment(self): for var, value in craftSettings.getSection("Environment"): # set and overide existing values self.addEnvVar(var, value) self.prependPath("PATH", os.path.dirname(sys.executable)) self.getEnv() self.checkForEvilApplication() self.addEnvVar("KDEROOT", CraftStandardDirs.craftRoot()) if craftSettings.getboolean("Compile", "UseCCache", False): self.addEnvVar("CCACHE_DIR", craftSettings.get("Paths", "CCACHE_DIR", os.path.join(CraftStandardDirs.craftRoot(), "build", "CCACHE"))) if self.version < 2: self.addEnvVar("GIT_SSH", "plink") self.addEnvVar("SVN_SSH", "plink") if not "HOME" in os.environ: self.addEnvVar("HOME", os.getenv("USERPROFILE")) self.prependPath("PKG_CONFIG_PATH", os.path.join(CraftStandardDirs.craftRoot(), "lib", "pkgconfig")) self.prependPath("QT_PLUGIN_PATH", [os.path.join(CraftStandardDirs.craftRoot(), "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib64", "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "x86_64-linux-gnu", "plugins"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "plugin") ]) self.prependPath("QML2_IMPORT_PATH", [os.path.join(CraftStandardDirs.craftRoot(), "qml"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "qml"), os.path.join(CraftStandardDirs.craftRoot(), "lib64", "qml"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "x86_64-linux-gnu", "qml") ]) self.prependPath("QML_IMPORT_PATH", os.environ["QML2_IMPORT_PATH"]) if OsUtils.isUnix(): self.prependPath("LD_LIBRARY_PATH", [os.path.join(CraftStandardDirs.craftRoot(), "lib"), os.path.join(CraftStandardDirs.craftRoot(), "lib", "x86_64-linux-gnu")]) if OsUtils.isMac(): self.prependPath("DYLD_LIBRARY_PATH", [os.path.join(CraftStandardDirs.craftRoot(), "lib")]) self.setXDG() if craftSettings.getboolean("QtSDK", "Enabled", "false"): self.prependPath("PATH", os.path.join(craftSettings.get("QtSDK", "Path"), craftSettings.get("QtSDK", "Version"), craftSettings.get("QtSDK", "Compiler"), "bin")) if craftCompiler.isMinGW(): if not craftSettings.getboolean("QtSDK", "Enabled", "false"): if craftCompiler.isX86(): self.prependPath("PATH", os.path.join(CraftStandardDirs.craftRoot(), "mingw", "bin")) else: self.prependPath("PATH", os.path.join(CraftStandardDirs.craftRoot(), "mingw64", "bin")) else: compilerName = craftSettings.get("QtSDK", "Compiler") compilerMap = {"mingw53_32": "mingw530_32"} self.prependPath("PATH", os.path.join(craftSettings.get("QtSDK", "Path"), "Tools", compilerMap.get(compilerName, compilerName), "bin")) if OsUtils.isUnix(): self.prependPath("PATH", CraftStandardDirs.craftBin()) self.prependPath("PATH", os.path.join(CraftStandardDirs.craftRoot(), "dev-utils", "bin")) # make sure thate craftroot bin is the first to look for dlls etc self.prependPath("PATH", os.path.join(CraftStandardDirs.craftRoot(), "bin")) # add python site packages to pythonpath self.prependPath("PythonPath", os.path.join(CraftStandardDirs.craftRoot(), "lib", "site-packages"))