code: def interrogate(self, platformIdentifier, configuration, libraries, libOverrides = {}):
  		libModules = list([lib for lib in libraries if lib not in libOverrides])
  		details = ThirdPartyLibraryDetails()
  		if len(libModules) > 0:
  			modules = self._getThirdPartyLibs(platformIdentifier, configuration)
  			modules = [m for m in modules if m['Name'] in libModules]
  			names = [m['Name'] for m in modules]
  			unsupported = ['"' + m + '"' for m in libModules if m not in names]
  			if len(unsupported) > 0:
  				Utility.printStderr('Warning: unsupported libraries ' + ','.join(unsupported))
  			for module in modules:
  				if len(module['PublicAdditionalLibraries']) > 0 and len(module['PublicLibraryPaths']) > 0:
  					libPath = (self._absolutePaths(module['PublicLibraryPaths']))[0]
  					libs = list([lib.replace('\\', '/') for lib in module['PublicAdditionalLibraries']])
  					libs = list([os.path.join(libPath, lib) if '/' not in lib else lib for lib in libs])
  					module['PublicAdditionalLibraries'] = libs
  			fields = [
  				'Directory',
  				'PublicAdditionalLibraries',
  				'PublicLibraryPaths',
  				'PublicSystemIncludePaths',
  				'PublicIncludePaths',
  				'PrivateIncludePaths',
  				'PublicDefinitions'
  			]
  			flattened = {}
  			for field in fields:
  				transform = (lambda l: self._absolutePaths(l)) if field != 'Definitions' else None
  				flattened[field] = self._flatten(field, modules, transform)
  			libraryDirectories = flattened['PublicLibraryPaths']
  			headerDirectories  = flattened['PublicSystemIncludePaths'] + flattened['PublicIncludePaths'] + flattened['PrivateIncludePaths']
  			modulePaths        = flattened['Directory']
  			prefixDirectories  = list(set(flattened['Directory'] + headerDirectories + libraryDirectories + [os.path.dirname(p) for p in headerDirectories + libraryDirectories]))
  			details = ThirdPartyLibraryDetails(
  				prefixDirs  = prefixDirectories,
  				includeDirs = headerDirectories,
  				linkDirs    = libraryDirectories,
  				definitions = flattened['PublicDefinitions'],
  				libs        = flattened['PublicAdditionalLibraries']
  			)
  		overridesToApply = list([libOverrides[lib] for lib in libraries if lib in libOverrides])
  		for override in overridesToApply:
  			details.merge(override)
  		return details