MCPcopy Index your code
hub / github.com/nodejs/node / _AdjustLibrary

Method _AdjustLibrary

tools/gyp/pylib/gyp/xcode_emulation.py:1246–1272  ·  view source on GitHub ↗
(self, library, config_name=None)

Source from the content-addressed store, hash-verified

1244 return pre + postbuilds + post
1245
1246 def _AdjustLibrary(self, library, config_name=None):
1247 if library.endswith(".framework"):
1248 l_flag = "-framework " + os.path.splitext(os.path.basename(library))[0]
1249 else:
1250 m = self.library_re.match(library)
1251 l_flag = "-l" + m.group(1) if m else library
1252
1253 sdk_root = self._SdkPath(config_name)
1254 if not sdk_root:
1255 sdk_root = ""
1256 # Xcode 7 started shipping with ".tbd" (text based stubs) files instead of
1257 # ".dylib" without providing a real support for them. What it does, for
1258 # "/usr/lib" libraries, is do "-L/usr/lib -lname" which is dependent on the
1259 # library order and cause collision when building Chrome.
1260 #
1261 # Instead substitute ".tbd" to ".dylib" in the generated project when the
1262 # following conditions are both true:
1263 # - library is referenced in the gyp file as "$(SDKROOT)/**/*.dylib",
1264 # - the ".dylib" file does not exists but a ".tbd" file do.
1265 library = l_flag.replace("$(SDKROOT)", sdk_root)
1266 if l_flag.startswith("$(SDKROOT)"):
1267 basename, ext = os.path.splitext(library)
1268 if ext == ".dylib" and not os.path.exists(library):
1269 tbd_library = basename + ".tbd"
1270 if os.path.exists(tbd_library):
1271 library = tbd_library
1272 return library
1273
1274 def AdjustLibraries(self, libraries, config_name=None):
1275 """Transforms entries like 'Cocoa.framework' in libraries into entries like

Callers 1

AdjustLibrariesMethod · 0.95

Calls 3

_SdkPathMethod · 0.95
matchMethod · 0.65
existsMethod · 0.45

Tested by

no test coverage detected