Index: pylib/gyp/input.py |
diff --git a/pylib/gyp/input.py b/pylib/gyp/input.py |
index b09a2c8540500fab92ca4d65f1f0445c73909f57..055adff791677656dbe3f9635d7d53f4c83072b3 100644 |
--- a/pylib/gyp/input.py |
+++ b/pylib/gyp/input.py |
@@ -28,7 +28,12 @@ from gyp.common import OrderedSet |
# A list of types that are treated as linkable. |
-linkable_types = ['executable', 'shared_library', 'loadable_module'] |
+linkable_types = [ |
+ 'executable', |
+ 'shared_library', |
+ 'loadable_module', |
+ 'extension' |
+] |
# A list of sections that contain links to other targets. |
dependency_sections = ['dependencies', 'export_dependent_settings'] |
@@ -1703,11 +1708,12 @@ class DependencyGraphNode(object): |
dependencies.add(self.ref) |
return dependencies |
- # Executables and loadable modules are already fully and finally linked. |
- # Nothing else can be a link dependency of them, there can only be |
- # dependencies in the sense that a dependent target might run an |
+ # Executables, loadable modules, and extensions are already fully and |
+ # finally linked. Nothing else can be a link dependency of them, there can |
+ # only be dependencies in the sense that a dependent target might run an |
# executable or load the loadable_module. |
- if not initial and target_type in ('executable', 'loadable_module'): |
+ FULLY_LINKED_TYPES = ('executable', 'loadable_module', 'extension') |
+ if not initial and target_type in FULLY_LINKED_TYPES: |
return dependencies |
# Shared libraries are already fully linked. They should only be included |
@@ -2450,7 +2456,7 @@ def ValidateTargetType(target, target_dict): |
""" |
VALID_TARGET_TYPES = ('executable', 'loadable_module', |
'static_library', 'shared_library', |
- 'none') |
+ 'extension', 'none') |
target_type = target_dict.get('type', None) |
if target_type not in VALID_TARGET_TYPES: |
raise GypError("Target %s has an invalid target type '%s'. " |