| Index: pylib/gyp/generator/ninja.py
|
| ===================================================================
|
| --- pylib/gyp/generator/ninja.py (revision 1630)
|
| +++ pylib/gyp/generator/ninja.py (working copy)
|
| @@ -768,6 +768,19 @@
|
| [QuoteShellArgument('-I' + self.GypPathToNinja(i, env), self.flavor)
|
| for i in include_dirs])
|
|
|
| + library_dirs = config.get('library_dirs', [])
|
| + if self.flavor == 'win':
|
| + library_dirs = [
|
| + self.msvs_settings.ConvertVSMacros(library_dir, config_name)
|
| + for library_dir in library_dirs]
|
| + self.WriteVariableList('libdirs',
|
| + [QuoteShellArgument('-LIBPATH:' + self.GypPathToNinja(l), self.flavor)
|
| + for l in library_dirs])
|
| + else:
|
| + self.WriteVariableList('libdirs',
|
| + [QuoteShellArgument('-L' + self.GypPathToNinja(l), self.flavor)
|
| + for l in library_dirs])
|
| +
|
| pch_commands = precompiled_header.GetPchBuildCommands()
|
| if self.flavor == 'mac':
|
| self.WriteVariableList('cflags_pch_c',
|
| @@ -1575,18 +1588,19 @@
|
| restat=True,
|
| command=(mtime_preserving_solink_base % {
|
| 'suffix': '-Wl,--whole-archive $in $solibs -Wl,--no-whole-archive '
|
| - '$libs'}))
|
| + '$libdirs $libs'}))
|
| master_ninja.rule(
|
| 'solink_module',
|
| description='SOLINK(module) $lib',
|
| restat=True,
|
| command=(mtime_preserving_solink_base % {
|
| - 'suffix': '-Wl,--start-group $in $solibs -Wl,--end-group $libs'}))
|
| + 'suffix': '-Wl,--start-group $in $solibs -Wl,--end-group '
|
| + '$libdirs $libs'}))
|
| master_ninja.rule(
|
| 'link',
|
| description='LINK $out',
|
| command=('$ld $ldflags -o $out '
|
| - '-Wl,--start-group $in $solibs -Wl,--end-group $libs'))
|
| + '-Wl,--start-group $in $solibs -Wl,--end-group $libdirs $libs'))
|
| elif flavor == 'win':
|
| master_ninja.rule(
|
| 'alink',
|
| @@ -1608,11 +1622,11 @@
|
| sys.executable)
|
| master_ninja.rule('solink', description=dlldesc, command=dllcmd,
|
| rspfile='$dll.rsp',
|
| - rspfile_content='$libs $in_newline $ldflags',
|
| + rspfile_content='$libdirs $libs $in_newline $ldflags',
|
| restat=True)
|
| master_ninja.rule('solink_module', description=dlldesc, command=dllcmd,
|
| rspfile='$dll.rsp',
|
| - rspfile_content='$libs $in_newline $ldflags',
|
| + rspfile_content='$libdirs $libs $in_newline $ldflags',
|
| restat=True)
|
| # Note that ldflags goes at the end so that it has the option of
|
| # overriding default settings earlier in the command line.
|
| @@ -1627,7 +1641,7 @@
|
| '$mt -nologo -manifest $manifests -out:$out.manifest' %
|
| (sys.executable, sys.executable, sys.executable)),
|
| rspfile='$out.rsp',
|
| - rspfile_content='$in_newline $libs $ldflags')
|
| + rspfile_content='$in_newline $libdirs $libs $ldflags')
|
| else:
|
| master_ninja.rule(
|
| 'objc',
|
| @@ -1678,19 +1692,19 @@
|
| description='SOLINK $lib, POSTBUILDS',
|
| restat=True,
|
| command=(mtime_preserving_solink_base % {
|
| - 'suffix': '$in $solibs $libs$postbuilds'}))
|
| + 'suffix': '$in $solibs $libdirs $libs$postbuilds'}))
|
| master_ninja.rule(
|
| 'solink_module',
|
| description='SOLINK(module) $lib, POSTBUILDS',
|
| restat=True,
|
| command=(mtime_preserving_solink_base % {
|
| - 'suffix': '$in $solibs $libs$postbuilds'}))
|
| + 'suffix': '$in $solibs $libdirs $libs$postbuilds'}))
|
|
|
| master_ninja.rule(
|
| 'link',
|
| description='LINK $out, POSTBUILDS',
|
| command=('$ld $ldflags -o $out '
|
| - '$in $solibs $libs$postbuilds'))
|
| + '$in $solibs $libdirs $libs$postbuilds'))
|
| master_ninja.rule(
|
| 'infoplist',
|
| description='INFOPLIST $out',
|
|
|