| Index: pylib/gyp/generator/msvs.py
|
| diff --git a/pylib/gyp/generator/msvs.py b/pylib/gyp/generator/msvs.py
|
| index eb1e17d5bff1da91cfc267fd692a6e0507f6a55d..946c8d1fae6cd8c1001d4eaa5d37851741146eae 100644
|
| --- a/pylib/gyp/generator/msvs.py
|
| +++ b/pylib/gyp/generator/msvs.py
|
| @@ -134,44 +134,49 @@ def _GetDomainAndUserName():
|
| fixpath_prefix = None
|
|
|
|
|
| -def _NormalizedSource(source):
|
| +def _NormalizedSource(source, curdir=None):
|
| """Normalize the path.
|
|
|
| But not if that gets rid of a variable, as this may expand to something
|
| larger than one directory.
|
|
|
| Arguments:
|
| - source: The path to be normalize.d
|
| + source: The path to be normalized
|
| + curdir: Current direcory to normalize against (optional)
|
|
|
| Returns:
|
| The normalized path.
|
| """
|
| normalized = os.path.normpath(source)
|
| + if curdir:
|
| + normalized = os.path.normpath(os.path.join(curdir, normalized))
|
| + normalized = os.path.relpath(normalized, curdir)
|
| if source.count('$') == normalized.count('$'):
|
| source = normalized
|
| return source
|
|
|
|
|
| -def _FixPath(path):
|
| +def _FixPath(path, curdir=None):
|
| """Convert paths to a form that will make sense in a vcproj file.
|
|
|
| Arguments:
|
| path: The path to convert, may contain / etc.
|
| + curdir: Current directory of path (optional)
|
| Returns:
|
| The path with all slashes made into backslashes.
|
| """
|
| if fixpath_prefix and path and not os.path.isabs(path) and not path[0] == '$':
|
| path = os.path.join(fixpath_prefix, path)
|
| path = path.replace('/', '\\')
|
| - path = _NormalizedSource(path)
|
| + path = _NormalizedSource(path, curdir)
|
| if path and path[-1] == '\\':
|
| path = path[:-1]
|
| return path
|
|
|
|
|
| -def _FixPaths(paths):
|
| +def _FixPaths(paths, curdir=None):
|
| """Fix each of the paths of the list."""
|
| - return [_FixPath(i) for i in paths]
|
| + return [_FixPath(i, curdir) for i in paths]
|
|
|
|
|
| def _ConvertSourcesToFilterHierarchy(sources, prefix=None, excluded=None,
|
| @@ -1479,7 +1484,7 @@ def _AdjustSourcesAndConvertToFilterHierarchy(
|
| # Convert to proper windows form.
|
| # NOTE: sources goes from being a set to a list here.
|
| # NOTE: excluded_sources goes from being a set to a list here.
|
| - sources = _FixPaths(sources)
|
| + sources = _FixPaths(sources, _FixPath(gyp_dir))
|
| # Convert to proper windows form.
|
| excluded_sources = _FixPaths(excluded_sources)
|
|
|
|
|