Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1575)

Unified Diff: pylib/gyp/generator/ninja.py

Issue 208113002: silly hack for basic mixed-toolchain cross builds on mac Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pylib/gyp/generator/ninja.py
===================================================================
--- pylib/gyp/generator/ninja.py (revision 1953)
+++ pylib/gyp/generator/ninja.py (working copy)
@@ -375,6 +375,10 @@
self.config_name = config_name
self.name = spec['target_name']
self.toolset = spec['toolset']
+
+ if self.toolset == 'target' and generator_supports_multiple_toolsets:
+ self.flavor = 'linux' # lol
+
config = spec['configurations'][config_name]
self.target = Target(spec['type'])
self.is_standalone_static_library = bool(
@@ -943,6 +947,9 @@
variables, output, implicit = precompiled_header.GetFlagsModifications(
input, output, implicit, command, cflags_c, cflags_cc,
self.ExpandSpecial)
+ # hosting on win will need this too:
+ #if self.toolset == 'host':
+ #command += '_host'
ninja_file.build(output, command, input,
implicit=[gch for _, _, gch in implicit],
order_only=predepends, variables=variables)
@@ -1003,6 +1010,11 @@
}[spec['type']]
command_suffix = ''
+ if self.toolset == 'host':
+ # This is on command_suffix instead of command_suffix so that notoc
+ # versions become solink_notoc_host, not solink_host_notoc.
+ command_suffix += '_host'
+
implicit_deps = set()
solibs = set()
@@ -1497,7 +1509,8 @@
global generator_additional_non_configuration_keys
global generator_additional_path_sections
flavor = gyp.common.GetFlavor(params)
- if flavor == 'mac':
+ # Bleh, SHARED_LIB_SUFFIX is per-toolset; gyp doesn't expect that as of yet.
+ if False and flavor == 'mac':
default_variables.setdefault('OS', 'mac')
default_variables.setdefault('SHARED_LIB_SUFFIX', '.dylib')
default_variables.setdefault('SHARED_LIB_DIR',
@@ -1919,7 +1932,7 @@
'$arch $asm $defines $includes $asmflags /c /Fo $out $in' %
sys.executable))
- if flavor != 'mac' and flavor != 'win':
+ if True or flavor != 'mac' and flavor != 'win':
master_ninja.rule(
'alink',
description='AR $out',
@@ -1969,7 +1982,8 @@
command=('$ld $ldflags -o $out '
'-Wl,--start-group $in -Wl,--end-group $solibs $libs'),
pool='link_pool')
- elif flavor == 'win':
+
+ if flavor == 'win':
master_ninja.rule(
'alink',
description='LIB $out',
@@ -1980,7 +1994,7 @@
rspfile_content='$in_newline $libflags')
_AddWinLinkRules(master_ninja, embed_manifest=True)
_AddWinLinkRules(master_ninja, embed_manifest=False)
- else:
+ elif flavor == 'mac':
master_ninja.rule(
'objc',
description='OBJC $out',
@@ -1996,14 +2010,14 @@
depfile='$out.d',
deps=deps)
master_ninja.rule(
- 'alink',
+ 'alink_host',
description='LIBTOOL-STATIC $out, POSTBUILDS',
command='rm -f $out && '
'./gyp-mac-tool filter-libtool libtool $libtool_flags '
'-static -o $out $in'
'$postbuilds')
master_ninja.rule(
- 'lipo',
+ 'lipo_host',
description='LIPO $out, POSTBUILDS',
command='rm -f $out && lipo -create $in -output $out$postbuilds')
@@ -2031,7 +2045,7 @@
solink_suffix = '@$link_file_list$postbuilds'
master_ninja.rule(
- 'solink',
+ 'solink_host',
description='SOLINK $lib, POSTBUILDS',
restat=True,
command=mtime_preserving_solink_base % {'suffix': solink_suffix,
@@ -2040,7 +2054,7 @@
rspfile_content='$in $solibs $libs',
pool='link_pool')
master_ninja.rule(
- 'solink_notoc',
+ 'solink_notoc_host',
description='SOLINK $lib, POSTBUILDS',
restat=True,
command=solink_base % {'suffix':solink_suffix, 'type': '-shared'},
@@ -2049,7 +2063,7 @@
pool='link_pool')
master_ninja.rule(
- 'solink_module',
+ 'solink_module_host',
description='SOLINK(module) $lib, POSTBUILDS',
restat=True,
command=mtime_preserving_solink_base % {'suffix': solink_suffix,
@@ -2058,7 +2072,7 @@
rspfile_content='$in $solibs $libs',
pool='link_pool')
master_ninja.rule(
- 'solink_module_notoc',
+ 'solink_module_notoc_host',
description='SOLINK(module) $lib, POSTBUILDS',
restat=True,
command=solink_base % {'suffix': solink_suffix, 'type': '-bundle'},
@@ -2067,11 +2081,12 @@
pool='link_pool')
master_ninja.rule(
- 'link',
+ 'link_host',
description='LINK $out, POSTBUILDS',
command=('$ld $ldflags -o $out '
'$in $solibs $libs$postbuilds'),
pool='link_pool')
+
master_ninja.rule(
'preprocess_infoplist',
description='PREPROCESS INFOPLIST $out',
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698