diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-05-10 14:23:01 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-05-10 18:53:33 +0300 |
commit | f0fa74fde742b23f7de007140bd6c380550a513f (patch) | |
tree | 23f2ac2156062aa7b0e166b569a1421694f7cb6b /indra | |
parent | c0adc5e18106077eaf021599b80a822f7063df01 (diff) |
SL-17376 Do not fail build if vcruntime140_1 is missing
If there is no vcruntime140_1 in the build system, it is likely that file is not required for the viewer to run.
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/lib/python/indra/util/llmanifest.py | 43 | ||||
-rwxr-xr-x | indra/newview/viewer_manifest.py | 4 |
2 files changed, 45 insertions, 2 deletions
diff --git a/indra/lib/python/indra/util/llmanifest.py b/indra/lib/python/indra/util/llmanifest.py index 30b7228289..aedd3b7ee4 100755 --- a/indra/lib/python/indra/util/llmanifest.py +++ b/indra/lib/python/indra/util/llmanifest.py @@ -881,6 +881,49 @@ class LLManifest(object, metaclass=LLManifestRegistry): # particular, let caller notice 0. return count + def path_optional(self, src, dst=None): + sys.stdout.flush() + if src == None: + raise ManifestError("No source file, dst is " + dst) + if dst == None: + dst = src + dst = os.path.join(self.get_dst_prefix(), dst) + sys.stdout.write("Processing %s => %s ... " % (src, self._relative_dst_path(dst))) + + def try_path(src): + # expand globs + count = 0 + if self.wildcard_pattern.search(src): + for s,d in self.expand_globs(src, dst): + assert(s != d) + count += self.process_file(s, d) + else: + # if we're specifying a single path (not a glob), + # we should error out if it doesn't exist + self.check_file_exists(src) + count += self.process_either(src, dst) + return count + + try_prefixes = [self.get_src_prefix(), self.get_artwork_prefix(), self.get_build_prefix()] + for pfx in try_prefixes: + try: + count = try_path(os.path.join(pfx, src)) + except MissingError: + # if we produce MissingError, just try the next prefix + continue + # If we actually found nonzero files, stop looking + if count: + break + else: + sys.stdout.write("Skipping %s\n" % (src)) + return 0 + + print("%d files" % count) + + # Let caller check whether we processed as many files as expected. In + # particular, let caller notice 0. + return count + def do(self, *actions): self.actions = actions self.construct() diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 0f940dfa64..de5ac5ed3d 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -527,7 +527,7 @@ class WindowsManifest(ViewerManifest): # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx self.path("msvcp140.dll") self.path("vcruntime140.dll") - self.path("vcruntime140_1.dll") + self.path_optional("vcruntime140_1.dll") # SLVoice executable with self.prefix(src=os.path.join(pkgdir, 'bin', 'release')): @@ -605,7 +605,7 @@ class WindowsManifest(ViewerManifest): 'sharedlibs', 'Release')): self.path("msvcp140.dll") self.path("vcruntime140.dll") - self.path("vcruntime140_1.dll") + self.path_optional("vcruntime140_1.dll") # CEF files common to all configurations with self.prefix(src=os.path.join(pkgdir, 'resources')): |