diff --git gyp/generator/ninja.py gyp/generator/ninja.py index 51c288b..d996bbd 100644 --- gyp/generator/ninja.py +++ gyp/generator/ninja.py @@ -741,7 +741,16 @@ class NinjaWriter(object): for path in copy['files']: # Normalize the path so trailing slashes don't confuse us. path = os.path.normpath(path) - basename = os.path.split(path)[1] + (parent_path, basename) = os.path.split(path) + + # Xcode uses .lproj directories for localized resources. Add a special + # case to maintain the localization directory component if present. + if parent_path != '': + parent_basename = os.path.basename(parent_path) + (parent_root, parent_ext) = os.path.splitext(parent_basename) + if parent_ext == '.lproj': + basename = os.path.join(parent_basename, basename) + src = self.GypPathToNinja(path, env) dst = self.GypPathToNinja(os.path.join(copy['destination'], basename), env) diff --git gyp/msvs_emulation.py gyp/msvs_emulation.py index ce5c46e..2f03c01 100644 --- gyp/msvs_emulation.py +++ gyp/msvs_emulation.py @@ -1017,8 +1017,10 @@ def GenerateEnvironmentFiles(toplevel_build_dir, generator_flags, args = vs.SetupScript(arch) args.extend(('&&', 'set')) popen = subprocess.Popen( - args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + args, shell=True, stdout=subprocess.PIPE) variables, _ = popen.communicate() + if popen.returncode != 0: + raise Exception('Error invoking setup script: ' + repr(args)) env = _ExtractImportantEnvironment(variables) # Inject system includes from gyp files into INCLUDE.