From e11d78a554a184767383758185a3902e4d6c986d Mon Sep 17 00:00:00 2001 From: Samuli Piippo Date: Tue, 16 Jun 2015 15:43:26 +0300 Subject: Support BYOS for enterprise only addons When QT_SDK_PATH has been set, use sources for all enterprise addons from the SDK installation path. This allows customers to build enterprise only addos and b2qt addons without access to qt-gerrit. Change-Id: I66ad8a2ff81628333ba7dd6042659c3fa220be8c Reviewed-by: Eirik Aavitsland --- classes/local-sources.bbclass | 81 -------------------------------------- classes/sdk-sources.bbclass | 90 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 81 deletions(-) delete mode 100644 classes/local-sources.bbclass create mode 100644 classes/sdk-sources.bbclass (limited to 'classes') diff --git a/classes/local-sources.bbclass b/classes/local-sources.bbclass deleted file mode 100644 index b7c68fb..0000000 --- a/classes/local-sources.bbclass +++ /dev/null @@ -1,81 +0,0 @@ -############################################################################# -## -## Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -## -## This file is part of the Qt Enterprise Embedded Scripts of the Qt -## framework. -## -## $QT_BEGIN_LICENSE$ -## Commercial License Usage Only -## Licensees holding valid commercial Qt license agreements with Digia -## with an appropriate addendum covering the Qt Enterprise Embedded Scripts, -## may use this file in accordance with the terms contained in said license -## agreement. -## -## For further information use the contact form at -## http://www.qt.io/contact-us. -## -## -## $QT_END_LICENSE$ -## -############################################################################# - -python do_fetch () { - src_uri = (d.getVar('SRC_URI', True) or "").split() - if len(src_uri) == 0: - return - - sdk_path = d.getVar('QT_SDK_PATH', True) or "" - if len(sdk_path) != 0: - uris = list(src_uri); - for url in uris: - ud = list(bb.fetch2.decodeurl(url)) - if ("local-uri" in ud[5]): - src_uri.remove(url) - - try: - fetcher = bb.fetch2.Fetch(src_uri, d) - fetcher.download() - except bb.fetch2.BBFetchException as e: - raise bb.build.FuncFailed(e) -} - -python do_unpack () { - src_uri = (d.getVar('SRC_URI', True) or "").split() - if len(src_uri) == 0: - return - - rootdir = d.getVar('WORKDIR', True) - - sdk_path = d.getVar('QT_SDK_PATH', True) or "" - if len(sdk_path) != 0: - uris = list(src_uri); - for url in uris: - ud = list(bb.fetch2.decodeurl(url)) - if ("local-uri" in ud[5]): - unpack_local_uri(ud, d) - src_uri.remove(url) - - try: - fetcher = bb.fetch2.Fetch(src_uri, d) - fetcher.unpack(rootdir) - except bb.fetch2.BBFetchException as e: - raise bb.build.FuncFailed(e) -} - -def unpack_local_uri(ud, d): - import subprocess - rootdir = d.getVar('WORKDIR', True) - sdk_path = d.getVar('QT_SDK_PATH', True) - - destdir = os.path.join(rootdir, ud[5].get("destsuffix", "git")) - srcdir = os.path.join(sdk_path, ud[5].get("local-uri")) - cmd = "cp -vrf %s %s" % (srcdir, destdir) - - if os.path.exists(destdir): - bb.utils.prunedir(destdir) - - ret = subprocess.call(cmd, shell=True) - - if ret != 0: - raise bb.fetch.UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud) diff --git a/classes/sdk-sources.bbclass b/classes/sdk-sources.bbclass new file mode 100644 index 0000000..1c3629b --- /dev/null +++ b/classes/sdk-sources.bbclass @@ -0,0 +1,90 @@ +############################################################################# +## +## Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +## +## This file is part of the Qt Enterprise Embedded Scripts of the Qt +## framework. +## +## $QT_BEGIN_LICENSE$ +## Commercial License Usage Only +## Licensees holding valid commercial Qt license agreements with Digia +## with an appropriate addendum covering the Qt Enterprise Embedded Scripts, +## may use this file in accordance with the terms contained in said license +## agreement. +## +## For further information use the contact form at +## http://www.qt.io/contact-us. +## +## +## $QT_END_LICENSE$ +## +############################################################################# + +python do_fetch () { + src_uri = (d.getVar('SRC_URI', True) or "").split() + if len(src_uri) == 0: + return + + sdk_path = d.getVar('QT_SDK_PATH', True) or "" + if len(sdk_path) != 0: + uris = list(src_uri); + for url in uris: + ud = list(bb.fetch2.decodeurl(url)) + if ("sdk-uri" in ud[5]): + src_uri.remove(url) + + + if len(src_uri) == 0: + return + + try: + fetcher = bb.fetch2.Fetch(src_uri, d) + fetcher.download() + except bb.fetch2.BBFetchException as e: + raise bb.build.FuncFailed(e) +} + +python do_unpack () { + src_uri = (d.getVar('SRC_URI', True) or "").split() + if len(src_uri) == 0: + return + + rootdir = d.getVar('WORKDIR', True) + + sdk_path = d.getVar('QT_SDK_PATH', True) or "" + if len(sdk_path) != 0: + uris = list(src_uri); + for url in uris: + ud = list(bb.fetch2.decodeurl(url)) + if ("sdk-uri" in ud[5]): + unpack_local_uri(ud, d) + src_uri.remove(url) + + if len(src_uri) == 0: + return + + try: + fetcher = bb.fetch2.Fetch(src_uri, d) + fetcher.unpack(rootdir) + except bb.fetch2.BBFetchException as e: + raise bb.build.FuncFailed(e) +} + +def unpack_local_uri(ud, d): + import subprocess + rootdir = d.getVar('WORKDIR', True) + sdk_path = d.getVar('QT_SDK_PATH', True) + + destdir = os.path.join(rootdir, ud[5].get("destsuffix", "git")) + srcdir = os.path.join(sdk_path, ud[5].get("sdk-uri")) + cmd = "cp -vrf %s %s" % (srcdir, destdir) + + bb.note("Unpacking SDK sources %s to %s" % (srcdir, destdir)) + + if os.path.exists(destdir): + bb.utils.prunedir(destdir) + + ret = subprocess.call(cmd, shell=True) + + if ret != 0: + raise bb.fetch.UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud) -- cgit v1.2.3-54-g00ecf