コード例 #1
0
ファイル: hifi_vcpkg.py プロジェクト: ctrlaltdavid/hifi
    def __init__(self, args):
        self.args = args
        # our custom ports, relative to the script location
        self.sourcePortsPath = args.ports_path
        self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8]
        self.configFilePath = os.path.join(args.build_root, 'vcpkg.cmake')

        # OS dependent information
        system = platform.system()

        if self.args.vcpkg_root is not None:
            self.path = args.vcpkg_root
        else:
            if 'Darwin' == system:
                defaultBasePath = os.path.expanduser('~/hifi/vcpkg')
            else:
                defaultBasePath = os.path.join(tempfile.gettempdir(), 'hifi', 'vcpkg')
            self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath)
            if self.basePath == defaultBasePath:
                print("Warning: Environment variable HIFI_VCPKG_BASE not set, using {}".format(defaultBasePath))
            if self.args.android:
                self.basePath = os.path.join(self.basePath, 'android')
            if (not os.path.isdir(self.basePath)):
                os.makedirs(self.basePath)
            self.path = os.path.join(self.basePath, self.id)

        print("Using vcpkg path {}".format(self.path))
        lockDir, lockName = os.path.split(self.path)
        lockName += '.lock'
        if not os.path.isdir(lockDir):
            os.makedirs(lockDir)

        self.lockFile = os.path.join(lockDir, lockName)
        self.tagFile = os.path.join(self.path, '.id')
        # A format version attached to the tag file... increment when you want to force the build systems to rebuild 
        # without the contents of the ports changing
        self.version = 1
        self.tagContents = "{}_{}".format(self.id, self.version)

        if 'Windows' == system:
            self.exe = os.path.join(self.path, 'vcpkg.exe')
            self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-win32.tar.gz?versionId=YZYkDejDRk7L_hrK_WVFthWvisAhbDzZ'
            self.vcpkgHash = '3e0ff829a74956491d57666109b3e6b5ce4ed0735c24093884317102387b2cb1b2cd1ff38af9ed9173501f6e32ffa05cc6fe6d470b77a71ca1ffc3e0aa46ab9e'
            self.hostTriplet = 'x64-windows'
        elif 'Darwin' == system:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-osx.tar.gz?versionId=_fhqSxjfrtDJBvEsQ8L_ODcdUjlpX9cc'
            self.vcpkgHash = '519d666d02ef22b87c793f016ca412e70f92e1d55953c8f9bd4ee40f6d9f78c1df01a6ee293907718f3bbf24075cc35492fb216326dfc50712a95858e9cbcb4d'
            self.hostTriplet = 'x64-osx'
        else:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-linux.tar.gz?versionId=97Nazh24etEVKWz33XwgLY0bvxEfZgMU'
            self.vcpkgHash = '6a1ce47ef6621e699a4627e8821ad32528c82fce62a6939d35b205da2d299aaa405b5f392df4a9e5343dd6a296516e341105fbb2dd8b48864781d129d7fba10d'
            self.hostTriplet = 'x64-linux'

        if self.args.android:
            self.triplet = 'arm64-android'
            self.androidPackagePath = os.getenv('HIFI_ANDROID_PRECOMPILED', os.path.join(self.path, 'android'))
        else:
            self.triplet = self.hostTriplet
コード例 #2
0
ファイル: hifi_vcpkg.py プロジェクト: annabrewer/hifi
    def __init__(self, args):
        self.args = args
        # our custom ports, relative to the script location
        self.sourcePortsPath = args.ports_path
        self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8]
        self.configFilePath = os.path.join(args.build_root, 'vcpkg.cmake')

        # OS dependent information
        system = platform.system()

        if self.args.vcpkg_root is not None:
            self.path = args.vcpkg_root
        else:
            if 'Darwin' == system:
                defaultBasePath = os.path.expanduser('~/hifi/vcpkg')
            else:
                defaultBasePath = os.path.join(tempfile.gettempdir(), 'hifi',
                                               'vcpkg')
            self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath)
            if self.basePath == defaultBasePath:
                print(
                    "Warning: Environment variable HIFI_VCPKG_BASE not set, using {}"
                    .format(defaultBasePath))
            if self.args.android:
                self.basePath = os.path.join(self.basePath, 'android')
            if (not os.path.isdir(self.basePath)):
                os.makedirs(self.basePath)
            self.path = os.path.join(self.basePath, self.id)

        print("Using vcpkg path {}".format(self.path))
        lockDir, lockName = os.path.split(self.path)
        lockName += '.lock'
        if not os.path.isdir(lockDir):
            os.makedirs(lockDir)

        self.lockFile = os.path.join(lockDir, lockName)
        self.tagFile = os.path.join(self.path, '.id')
        # A format version attached to the tag file... increment when you want to force the build systems to rebuild
        # without the contents of the ports changing
        self.version = 1
        self.tagContents = "{}_{}".format(self.id, self.version)

        if 'Windows' == system:
            self.exe = os.path.join(self.path, 'vcpkg.exe')
            self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-win32.tar.gz?versionId=YZYkDejDRk7L_hrK_WVFthWvisAhbDzZ'
            self.vcpkgHash = '3e0ff829a74956491d57666109b3e6b5ce4ed0735c24093884317102387b2cb1b2cd1ff38af9ed9173501f6e32ffa05cc6fe6d470b77a71ca1ffc3e0aa46ab9e'
            self.hostTriplet = 'x64-windows'
        elif 'Darwin' == system:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-osx.tar.gz?versionId=_fhqSxjfrtDJBvEsQ8L_ODcdUjlpX9cc'
            self.vcpkgHash = '519d666d02ef22b87c793f016ca412e70f92e1d55953c8f9bd4ee40f6d9f78c1df01a6ee293907718f3bbf24075cc35492fb216326dfc50712a95858e9cbcb4d'
            self.hostTriplet = 'x64-osx'
        else:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.vcpkgUrl = 'https://hifi-public.s3.amazonaws.com/dependencies/vcpkg/vcpkg-linux.tar.gz?versionId=97Nazh24etEVKWz33XwgLY0bvxEfZgMU'
            self.vcpkgHash = '6a1ce47ef6621e699a4627e8821ad32528c82fce62a6939d35b205da2d299aaa405b5f392df4a9e5343dd6a296516e341105fbb2dd8b48864781d129d7fba10d'
            self.hostTriplet = 'x64-linux'

        if self.args.android:
            self.triplet = 'arm64-android'
            self.androidPackagePath = os.getenv(
                'HIFI_ANDROID_PRECOMPILED', os.path.join(self.path, 'android'))
        else:
            self.triplet = self.hostTriplet
コード例 #3
0
    def __init__(self, args):
        self.args = args
        # our custom ports, relative to the script location
        self.sourcePortsPath = args.ports_path
        self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8]
        self.configFilePath = os.path.join(args.build_root, 'vcpkg.cmake')
        self.assets_url = self.readVar('EXTERNAL_BUILD_ASSETS')

        # The noClean flag indicates we're doing weird dependency maintenance stuff
        # i.e. we've got an explicit checkout of vcpkg and we don't want the script to 
        # do stuff it might otherwise do.  It typically indicates that we're using our 
        # own git checkout of vcpkg and manually managing it
        self.noClean = False

        # OS dependent information
        system = platform.system()

        if 'HIFI_VCPKG_PATH' in os.environ:
            self.path = os.environ['HIFI_VCPKG_PATH']
            self.noClean = True
        elif self.args.vcpkg_root is not None:
            self.path = args.vcpkg_root
            self.noClean = True
        else:
            defaultBasePath = os.path.expanduser('~/hifi/vcpkg')
            self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath)
            if self.args.android:
                self.basePath = os.path.join(self.basePath, 'android')
            if (not os.path.isdir(self.basePath)):
                os.makedirs(self.basePath)
            self.path = os.path.join(self.basePath, self.id)

        print("Using vcpkg path {}".format(self.path))
        lockDir, lockName = os.path.split(self.path)
        lockName += '.lock'
        if not os.path.isdir(lockDir):
            os.makedirs(lockDir)

        self.lockFile = os.path.join(lockDir, lockName)
        self.tagFile = os.path.join(self.path, '.id')
        self.prebuildTagFile = os.path.join(self.path, '.prebuild')
        # A format version attached to the tag file... increment when you want to force the build systems to rebuild 
        # without the contents of the ports changing
        self.version = 1
        self.tagContents = "{}_{}".format(self.id, self.version)
        self.bootstrapEnv = os.environ.copy()
        self.buildEnv = os.environ.copy()
        self.prebuiltArchive = None
        usePrebuilt = ('CI_BUILD' in os.environ) and os.environ["CI_BUILD"] == "Github" and (not self.noClean)

        if 'Windows' == system:
            self.exe = os.path.join(self.path, 'vcpkg.exe')
            self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.bat') ]
            self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/builds/vcpkg-win32-client.zip%3FversionId=tSFzbw01VkkVFeRQ6YuAY4dro2HxJR9U'
            self.vcpkgHash = 'a650db47a63ccdc9904b68ddd16af74772e7e78170b513ea8de5a3b47d032751a3b73dcc7526d88bcb500753ea3dd9880639ca842bb176e2bddb1710f9a58cd3'
            self.hostTriplet = 'x64-windows'
            if usePrebuilt:
               self.prebuiltArchive = self.assets_url + "/dependencies/vcpkg/builds/vcpkg-win32.zip%3FversionId=3SF3mDC8dkQH1JP041m88xnYmWNzZflx"
        elif 'Darwin' == system:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '--allowAppleClang' ]
            self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/builds/vcpkg-osx-client.tgz%3FversionId=j0b4azo_zTlH_Q9DElEWOz1UMYZ2nqQw'
            self.vcpkgHash = '519d666d02ef22b87c793f016ca412e70f92e1d55953c8f9bd4ee40f6d9f78c1df01a6ee293907718f3bbf24075cc35492fb216326dfc50712a95858e9cbcb4d'
            self.hostTriplet = 'x64-osx'
            if usePrebuilt:
                self.prebuiltArchive = self.assets_url + "/dependencies/vcpkg/builds/vcpkg-osx.tgz%3FversionId=6JrIMTdvpBF3MAsjA92BMkO79Psjzs6Z"
        else:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh') ]
            self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/builds/vcpkg-linux-client.tgz%3FversionId=y7mct0gFicEXz5hJy3KROBugcLR56YWf'
            self.vcpkgHash = '6a1ce47ef6621e699a4627e8821ad32528c82fce62a6939d35b205da2d299aaa405b5f392df4a9e5343dd6a296516e341105fbb2dd8b48864781d129d7fba10d'
            self.hostTriplet = 'x64-linux'

        if self.args.android:
            self.triplet = 'arm64-android'
            self.androidPackagePath = os.getenv('HIFI_ANDROID_PRECOMPILED', os.path.join(self.path, 'android'))
        else:
            self.triplet = self.hostTriplet
コード例 #4
0
ファイル: hifi_vcpkg.py プロジェクト: vsladjan/vircadia
    def __init__(self, args):
        self.args = args
        # our custom ports, relative to the script location
        self.sourcePortsPath = args.ports_path
        self.vcpkgBuildType = args.vcpkg_build_type
        if (self.vcpkgBuildType):
            self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8] + "-" + self.vcpkgBuildType
        else:
            self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8]
        self.configFilePath = os.path.join(args.build_root, 'vcpkg.cmake')
        self.assets_url = self.readVar('EXTERNAL_BUILD_ASSETS')

        # The noClean flag indicates we're doing weird dependency maintenance stuff
        # i.e. we've got an explicit checkout of vcpkg and we don't want the script to
        # do stuff it might otherwise do.  It typically indicates that we're using our
        # own git checkout of vcpkg and manually managing it
        self.noClean = False

        # OS dependent information
        system = platform.system()
        machine = platform.machine()

        if 'HIFI_VCPKG_PATH' in os.environ:
            self.path = os.environ['HIFI_VCPKG_PATH']
            self.noClean = True
        elif self.args.vcpkg_root is not None:
            self.path = args.vcpkg_root
            self.noClean = True
        else:
            defaultBasePath = os.path.expanduser('~/hifi/vcpkg')
            self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath)
            if self.args.android:
                self.basePath = os.path.join(self.basePath, 'android')
            if (not os.path.isdir(self.basePath)):
                os.makedirs(self.basePath)
            self.path = os.path.join(self.basePath, self.id)

        print("Using vcpkg path {}".format(self.path))
        lockDir, lockName = os.path.split(self.path)
        lockName += '.lock'
        if not os.path.isdir(lockDir):
            os.makedirs(lockDir)

        self.lockFile = os.path.join(lockDir, lockName)
        self.tagFile = os.path.join(self.path, '.id')
        self.prebuildTagFile = os.path.join(self.path, '.prebuild')
        # A format version attached to the tag file... increment when you want to force the build systems to rebuild 
        # without the contents of the ports changing
        self.version = 1
        self.tagContents = "{}_{}".format(self.id, self.version)
        self.bootstrapEnv = os.environ.copy()
        self.buildEnv = os.environ.copy()
        self.prebuiltArchive = None
        usePrebuilt = False
        # usePrebuild Disabled, to re-enabled using the prebuilt archives for GitHub action builds uncomment the following line:
        # usePrebuilt = ('CI_BUILD' in os.environ) and os.environ["CI_BUILD"] == "Github" and (not self.noClean)

        if 'Windows' == system:
            self.exe = os.path.join(self.path, 'vcpkg.exe')
            self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.bat'), '-disableMetrics' ]
            self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/vcpkg-win32-client-20210122.zip'
            self.vcpkgHash = '3df86b7d58c827bf08b3b7744f456f414b86a6d9bd58a507924103bc5a88f01ee495ce1f0fbf2f5b27f1ef6bfb1526e580ec13d3b9f87a89a462b3c50589fd6a'
            self.hostTriplet = 'x64-windows'
            if usePrebuilt:
                self.prebuiltArchive = self.assets_url + "/dependencies/vcpkg/builds/vcpkg-win32.zip%3FversionId=3SF3mDC8dkQH1JP041m88xnYmWNzZflx"
        elif 'Darwin' == system:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '--allowAppleClang', '-disableMetrics' ]
            self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/builds/vcpkg-osx-client.tgz%3FversionId=j0b4azo_zTlH_Q9DElEWOz1UMYZ2nqQw'
            self.vcpkgHash = '519d666d02ef22b87c793f016ca412e70f92e1d55953c8f9bd4ee40f6d9f78c1df01a6ee293907718f3bbf24075cc35492fb216326dfc50712a95858e9cbcb4d'
            self.hostTriplet = 'x64-osx'
            # Potential fix for a vcpkg build issue on OSX (see https://github.com/microsoft/vcpkg/issues/9029)
            self.bootstrapEnv['CXXFLAGS'] = '-D_CTERMID_H_'
            if usePrebuilt:
                self.prebuiltArchive = self.assets_url + "/dependencies/vcpkg/builds/vcpkg-osx.tgz%3FversionId=6JrIMTdvpBF3MAsjA92BMkO79Psjzs6Z"
        elif 'Linux' == system and 'aarch64' == machine:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '-disableMetrics' ]
            self.vcpkgUrl = 'http://motofckr9k.ddns.net/vircadia_packages/vcpkg-2020.11-1_arm64.tar.xz'
            self.vcpkgHash = 'f39fa1c34d2ba820954b8ce4acc05e3d0ce5fa5efe5440516ba910ff222c85c658ba4bbfc92b3fa6cbb594f99be115cda69ebe44ed38d4d3988058fb1faefbb3'
            self.hostTriplet = 'arm64-linux'
        else:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '-disableMetrics' ]
            self.vcpkgUrl = self.assets_url + '/dependencies/vcpkg/builds/vcpkg-linux-client.tgz%3FversionId=y7mct0gFicEXz5hJy3KROBugcLR56YWf'
            self.vcpkgHash = '6a1ce47ef6621e699a4627e8821ad32528c82fce62a6939d35b205da2d299aaa405b5f392df4a9e5343dd6a296516e341105fbb2dd8b48864781d129d7fba10d'
            self.hostTriplet = 'x64-linux'

        if self.args.android:
            self.triplet = 'arm64-android'
            self.androidPackagePath = os.getenv('HIFI_ANDROID_PRECOMPILED', os.path.join(self.path, 'android'))
        else:
            self.triplet = self.hostTriplet
コード例 #5
0
ファイル: hifi_vcpkg.py プロジェクト: ctrlaltdavid/vircadia
    def __init__(self, args):
        self.args = args
        # our custom ports, relative to the script location
        self.sourcePortsPath = args.ports_path
        self.vcpkgBuildType = args.vcpkg_build_type
        if (self.vcpkgBuildType):
            self.id = hifi_utils.hashFolder(
                self.sourcePortsPath)[:8] + "-" + self.vcpkgBuildType
        else:
            self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8]
        self.configFilePath = os.path.join(args.build_root, 'vcpkg.cmake')

        # The noClean flag indicates we're doing weird dependency maintenance stuff
        # i.e. we've got an explicit checkout of vcpkg and we don't want the script to
        # do stuff it might otherwise do.  It typically indicates that we're using our
        # own git checkout of vcpkg and manually managing it
        self.noClean = False

        # OS dependent information
        system = platform.system()
        machine = platform.machine()

        if 'HIFI_VCPKG_PATH' in os.environ:
            self.path = os.environ['HIFI_VCPKG_PATH']
            self.noClean = True
        elif self.args.vcpkg_root is not None:
            self.path = args.vcpkg_root
            self.noClean = True
        else:
            defaultBasePath = os.path.expanduser('~/vircadia-files/vcpkg')
            if 'CI_WORKSPACE' in os.environ:
                self.basePath = os.path.join(os.getenv('CI_WORKSPACE'),
                                             'vircadia-files/vcpkg')
            else:
                self.basePath = os.getenv('HIFI_VCPKG_BASE', defaultBasePath)
            if self.args.android:
                self.basePath = os.path.join(self.basePath, 'android')
            if (not os.path.isdir(self.basePath)):
                os.makedirs(self.basePath)
            self.path = os.path.join(self.basePath, self.id)

        print("Using vcpkg path {}".format(self.path))
        lockDir, lockName = os.path.split(self.path)
        lockName += '.lock'
        if not os.path.isdir(lockDir):
            os.makedirs(lockDir)

        self.lockFile = os.path.join(lockDir, lockName)
        self.tagFile = os.path.join(self.path, '.id')
        self.prebuildTagFile = os.path.join(self.path, '.prebuild')
        # A format version attached to the tag file... increment when you want to force the build systems to rebuild
        # without the contents of the ports changing
        self.version = 1
        self.tagContents = "{}_{}".format(self.id, self.version)
        self.bootstrapEnv = os.environ.copy()
        self.buildEnv = os.environ.copy()
        self.prebuiltArchive = None
        usePrebuilt = False
        # usePrebuild Disabled, to re-enabled using the prebuilt archives for GitHub action builds uncomment the following line:
        # usePrebuilt = ('CI_BUILD' in os.environ) and os.environ["CI_BUILD"] == "Github" and (not self.noClean)

        if 'Windows' == system:
            self.exe = os.path.join(self.path, 'vcpkg.exe')
            self.bootstrapCmds = [
                os.path.join(self.path, 'bootstrap-vcpkg.bat'),
                '-disableMetrics'
            ]
            self.vcpkgUrl = self.readVar(
                'EXTERNAL_VCPKG_WIN_CLIENT_URLS').split(';')
            self.hostTriplet = 'x64-windows'
            if usePrebuilt:
                self.prebuiltArchive = self.readVar(
                    'EXTERNAL_VCPKG_WIN_URLS').split(';')
        elif 'Darwin' == system:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [
                os.path.join(self.path, 'bootstrap-vcpkg.sh'),
                '--allowAppleClang', '-disableMetrics'
            ]
            self.vcpkgUrl = self.readVar(
                'EXTERNAL_VCPKG_MAC_CLIENT_URLS').split(';')
            self.hostTriplet = 'x64-osx'
            # Potential fix for a vcpkg build issue on OSX (see https://github.com/microsoft/vcpkg/issues/9029)
            self.bootstrapEnv['CXXFLAGS'] = '-D_CTERMID_H_'
            if usePrebuilt:
                self.prebuiltArchive = self.readVar(
                    'EXTERNAL_VCPKG_MAC_URLS').split(';')
        elif 'Linux' == system and 'aarch64' == machine:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [
                os.path.join(self.path, 'bootstrap-vcpkg.sh'),
                '-disableMetrics'
            ]
            self.vcpkgUrl = self.readVar(
                'EXTERNAL_VCPKG_LINUX_AARCH64_URLS').split(';')
            self.hostTriplet = 'arm64-linux'
        else:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [
                os.path.join(self.path, 'bootstrap-vcpkg.sh'),
                '-disableMetrics'
            ]
            self.vcpkgUrl = self.readVar(
                'EXTERNAL_VCPKG_LINUX_CLIENT_URLS').split(';')
            self.hostTriplet = 'x64-linux'

        if self.args.android:
            self.triplet = 'arm64-android'
            self.androidPackagePath = os.getenv(
                'HIFI_ANDROID_PRECOMPILED', os.path.join(self.path, 'android'))
        else:
            self.triplet = self.hostTriplet
コード例 #6
0
ファイル: hifi_vcpkg.py プロジェクト: gunrose/interface
    def __init__(self, args):
        self.args = args
        # our custom ports, relative to the script location
        self.sourcePortsPath = args.ports_path
        self.vcpkgBuildType = args.vcpkg_build_type
        if (self.vcpkgBuildType):
            self.id = hifi_utils.hashFolder(
                self.sourcePortsPath)[:8] + "-" + self.vcpkgBuildType
        else:
            self.id = hifi_utils.hashFolder(self.sourcePortsPath)[:8]
        self.configFilePath = os.path.join(args.build_root, 'vcpkg.cmake')
        # The noClean flag indicates we're doing weird dependency maintenance stuff
        # i.e. we've got an explicit checkout of vcpkg and we don't want the script to
        # do stuff it might otherwise do.  It typically indicates that we're using our
        # own git checkout of vcpkg and manually managing it
        self.noClean = False

        # OS dependent information
        system = platform.system()

        if 'TIVOLI_VCPKG_PATH' in os.environ:
            self.path = os.environ['TIVOLI_VCPKG_PATH']
            self.noClean = True
        elif self.args.vcpkg_root is not None:
            self.path = args.vcpkg_root
            self.noClean = True
        else:
            defaultBasePath = os.path.expanduser('~/tivoli/vcpkg')
            self.basePath = os.getenv('TIVOLI_VCPKG_BASE', defaultBasePath)
            if self.args.android:
                self.basePath = os.path.join(self.basePath, 'android')
            if (not os.path.isdir(self.basePath)):
                os.makedirs(self.basePath)
            self.path = os.path.join(self.basePath, self.id)

        print("Using vcpkg path {}".format(self.path))
        lockDir, lockName = os.path.split(self.path)
        lockName += '.lock'
        if not os.path.isdir(lockDir):
            os.makedirs(lockDir)

        self.lockFile = os.path.join(lockDir, lockName)
        self.tagFile = os.path.join(self.path, '.id')
        self.prebuildTagFile = os.path.join(self.path, '.prebuild')
        # A format version attached to the tag file... increment when you want to force the build systems to rebuild
        # without the contents of the ports changing
        self.version = 1
        self.vcpkgVersion = "2020.11-1"
        self.tagContents = "{}_{}".format(self.id, self.version)
        self.bootstrapEnv = os.environ.copy()
        self.buildEnv = os.environ.copy()
        self.prebuiltArchive = None
        usePrebuilt = ('CI_BUILD' in os.environ
                       ) and os.environ["CI_BUILD"] == "Github" and (
                           not self.noClean)

        if 'Windows' == system:
            self.exe = os.path.join(self.path, 'vcpkg.exe')
            self.bootstrapCmds = [
                os.path.join(self.path, 'bootstrap-vcpkg.bat'),
                '-disableMetrics'
            ]
            # self.vcpkgUrl = 'https://cdn.tivolicloud.com/dependencies/vcpkg/vcpkg-win32-client.zip'
            # self.vcpkgHash = 'a650db47a63ccdc9904b68ddd16af74772e7e78170b513ea8de5a3b47d032751a3b73dcc7526d88bcb500753ea3dd9880639ca842bb176e2bddb1710f9a58cd3'
            self.hostTriplet = 'x64-windows'

            if usePrebuilt:
                self.prebuiltArchive = "https://cdn.tivolicloud.com/dependencies/vcpkg/builds/vcpkg-win32.zip"

        elif 'Darwin' == system:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [
                os.path.join(self.path, 'bootstrap-vcpkg.sh'),
                '-disableMetrics', "-allowAppleClang"
            ]
            # self.vcpkgUrl = 'https://cdn.tivolicloud.com/dependencies/vcpkg/vcpkg-osx-client.tar'
            # self.vcpkgHash = '519d666d02ef22b87c793f016ca412e70f92e1d55953c8f9bd4ee40f6d9f78c1df01a6ee293907718f3bbf24075cc35492fb216326dfc50712a95858e9cbcb4d'
            self.hostTriplet = 'x64-osx'

            if usePrebuilt:
                self.prebuiltArchive = "https://cdn.tivolicloud.com/dependencies/vcpkg/builds/vcpkg-osx.tgz"

            macVersion = hifi_utils.getMacVersion()
            self.bootstrapEnv["MACOSX_DEPLOYMENT_TARGET"] = str(
                macVersion[0]) + "." + str(macVersion[1])

            # vcpkg uses tools for 10.15 that dont work on older version of macOS
            if macVersion[0] <= 10 and macVersion[1] <= 14:
                self.bootstrapCmds.append("-useSystemBinaries")
                self.buildEnv["VCPKG_FORCE_SYSTEM_BINARIES"] = "1"

        else:
            self.exe = os.path.join(self.path, 'vcpkg')
            self.bootstrapCmds = [
                os.path.join(self.path, 'bootstrap-vcpkg.sh'),
                '-disableMetrics'
            ]
            # self.vcpkgUrl = 'https://cdn.tivolicloud.com/dependencies/vcpkg/vcpkg-linux-client.tar'
            # self.vcpkgHash = '6a1ce47ef6621e699a4627e8821ad32528c82fce62a6939d35b205da2d299aaa405b5f392df4a9e5343dd6a296516e341105fbb2dd8b48864781d129d7fba10d'
            self.hostTriplet = 'x64-linux'

            if platform.machine() == "aarch64":
                self.bootstrapCmds.append("-useSystemBinaries")
                self.buildEnv["VCPKG_FORCE_SYSTEM_BINARIES"] = "1"
                self.hostTriplet = "arm64-linux"

        if self.args.android:
            self.triplet = 'arm64-android'
            self.androidPackagePath = os.getenv(
                'HIFI_ANDROID_PRECOMPILED', os.path.join(self.path, 'android'))
        else:
            self.triplet = self.hostTriplet