--- /dev/null
+From 511840e82116662aa825088fb8a52a9f799f7767 Mon Sep 17 00:00:00 2001
+From: Nathan Rajlich <nathan@tootallnate.net>
+Date: Wed, 14 Nov 2012 16:54:04 -0800
+Subject: [PATCH 2/3] gyp: apply https://codereview.chromium.org/11361103/
+
+---
+ gyp/pylib/gyp/generator/msvs.py | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/gyp/pylib/gyp/generator/msvs.py b/gyp/pylib/gyp/generator/msvs.py
+index d8e0872..c59aea1 100644
+--- a/gyp/pylib/gyp/generator/msvs.py
++++ b/gyp/pylib/gyp/generator/msvs.py
+@@ -2720,6 +2720,9 @@ def _GetMSBuildAttributes(spec, config, build_file):
+ product_name = spec.get('product_name', '$(ProjectName)')
+ target_name = prefix + product_name
+ msbuild_attributes['TargetName'] = target_name
++ if 'TargetExt' not in msbuild_attributes and 'product_extension' in spec:
++ ext = spec.get('product_extension')
++ msbuild_attributes['TargetExt'] = '.' + ext
+
+ if spec.get('msvs_external_builder'):
+ external_out_dir = spec.get('msvs_external_builder_out_dir', '.')
+@@ -2773,6 +2776,9 @@ def _GetMSBuildConfigurationGlobalProperties(spec, configurations, build_file):
+ attributes['OutputDirectory'])
+ _AddConditionalProperty(properties, condition, 'TargetName',
+ attributes['TargetName'])
++ if 'TargetExt' in attributes:
++ _AddConditionalProperty(properties, condition, 'TargetExt',
++ attributes['TargetExt'])
+
+ if attributes.get('TargetPath'):
+ _AddConditionalProperty(properties, condition, 'TargetPath',
+--
+2.3.2 (Apple Git-55)
+