OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import os | 6 import os |
7 | 7 |
8 | 8 |
9 # | 9 # |
10 # Default macros for various platforms. | 10 # Default macros for various platforms. |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
102 PEXE_LINK_RULES = { | 102 PEXE_LINK_RULES = { |
103 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NAC L_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RUL E, | 103 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NAC L_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RUL E, |
104 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL _SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE , | 104 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL _SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE , |
105 } | 105 } |
106 | 106 |
107 WIN_LINK_RULES = { | 107 WIN_LINK_RULES = { |
108 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDG:$@.pdb /Zi $(<PROJ>_LDFLAGS) /DEBUG /LIBPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS) ', | 108 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDG:$@.pdb /Zi $(<PROJ>_LDFLAGS) /DEBUG /LIBPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS) ', |
109 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_ ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)' | 109 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_ ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)' |
110 } | 110 } |
111 | 111 |
112 WIN_LAUNCH_RULES = """ | |
113 HOST_ARGS:=--register-pepper-plugins=$(abspath win/<proj>.dll);application/x-nac l | |
114 LAUNCH_HOST: CHECK_FOR_CHROME all | |
115 <TAB>$(CHROME_PATH) $(HOST_ARGS) "localhost:5103/index_win.html" | |
116 """ | |
117 | 112 |
118 # | 113 # |
119 # Lib rules for various platforms. | 114 # Lib rules for various platforms. |
120 # | 115 # |
121 POSIX_LIB_RULES = { | 116 POSIX_LIB_RULES = { |
122 'Debug': | 117 'Debug': |
123 '<TAB>$(MKDIR) -p $(dir $@)\n' | 118 '<TAB>$(MKDIR) -p $(dir $@)\n' |
124 '<TAB>$(<LIB>) $@ $^', | 119 '<TAB>$(<LIB>) $@ $^', |
125 'Release': | 120 'Release': |
126 '<TAB>$(MKDIR) -p $(dir $@)\n' | 121 '<TAB>$(MKDIR) -p $(dir $@)\n' |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
163 'MAIN': '<tc>/<config>/<proj>.dll', | 158 'MAIN': '<tc>/<config>/<proj>.dll', |
164 'NMFMAIN': '<tc>/<config>/<proj>.dll', | 159 'NMFMAIN': '<tc>/<config>/<proj>.dll', |
165 'SO': None, | 160 'SO': None, |
166 'LIB': '$(NACL_SDK_ROOT)/lib/win_<ARCH>_host/<config>/<proj>.lib', | 161 'LIB': '$(NACL_SDK_ROOT)/lib/win_<ARCH>_host/<config>/<proj>.lib', |
167 } | 162 } |
168 | 163 |
169 LINUX_TOOL = { | 164 LINUX_TOOL = { |
170 'DEFINE': '-D%s', | 165 'DEFINE': '-D%s', |
171 'INCLUDE': '-I%s', | 166 'INCLUDE': '-I%s', |
172 'LIBRARY': '-l%s', | 167 'LIBRARY': '-l%s', |
173 'MAIN': '<tc>/<config>/lib<proj>_<ARCH>.so', | 168 'MAIN': '<tc>/<config>/lib<proj>.so', |
174 'NMFMAIN': '<tc>/<config>/lib<proj>_<ARCH>.so', | 169 'NMFMAIN': '<tc>/<config>/lib<proj>.so', |
175 'SO': '<tc>/<config>/lib<proj>_<ARCH>.so', | 170 'SO': '<tc>/<config>/lib<proj>.so', |
176 'LIB': '$(NACL_SDK_ROOT)/lib/linux_<ARCH>_host/<config>/lib<proj>.a', | 171 'LIB': '$(NACL_SDK_ROOT)/lib/linux_<ARCH>_host/<config>/lib<proj>.a', |
177 } | 172 } |
178 | 173 |
179 NACL_TOOL = { | 174 NACL_TOOL = { |
180 'DEFINE': '-D%s', | 175 'DEFINE': '-D%s', |
181 'INCLUDE': '-I%s', | 176 'INCLUDE': '-I%s', |
182 'LIBRARY': '-l%s', | 177 'LIBRARY': '-l%s', |
183 'MAIN': '<tc>/<config>/<proj>_<ARCH>.nexe', | 178 'MAIN': '<tc>/<config>/<proj>_<ARCH>.nexe', |
184 'NMFMAIN': '<tc>/<config>/<proj>_<ARCH>.nexe', | 179 'NMFMAIN': '<tc>/<config>/<proj>_<ARCH>.nexe', |
185 'SO': '<tc>/<config>/<proj>_<ARCH>.so', | 180 'SO': '<tc>/<config>/<proj>_<ARCH>.so', |
(...skipping 10 matching lines...) Expand all Loading... | |
196 '<tc>/<config>/<proj>_x86_64.nexe ' | 191 '<tc>/<config>/<proj>_x86_64.nexe ' |
197 '<tc>/<config>/<proj>_arm.nexe', | 192 '<tc>/<config>/<proj>_arm.nexe', |
198 'SO': None, | 193 'SO': None, |
199 'LIB': '$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config>/lib<proj>.a', | 194 'LIB': '$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config>/lib<proj>.a', |
200 } | 195 } |
201 | 196 |
202 | 197 |
203 # | 198 # |
204 # Various Architectures | 199 # Various Architectures |
205 # | 200 # |
206 LINUX_32 = { | 201 LINUX = { |
207 '<arch>': '32', | 202 '<arch>': '', |
208 '<ARCH>': 'x86_32', | 203 '<ARCH>': '', |
209 '<MACH>': '-m32', | 204 '<MACH>': '', |
210 } | |
211 LINUX_64 = { | |
212 '<arch>': '64', | |
213 '<ARCH>': 'x86_64', | |
214 '<MACH>': '-m64', | |
215 } | 205 } |
216 NACL_X86_32 = { | 206 NACL_X86_32 = { |
217 '<arch>': '32', | 207 '<arch>': '32', |
218 '<ARCH>': 'x86_32', | 208 '<ARCH>': 'x86_32', |
219 '<MACH>': '-m32', | 209 '<MACH>': '-m32', |
220 } | 210 } |
221 NACL_X86_64 = { | 211 NACL_X86_64 = { |
222 '<arch>': '64', | 212 '<arch>': '64', |
223 '<ARCH>': 'x86_64', | 213 '<ARCH>': 'x86_64', |
224 '<MACH>': '-m64', | 214 '<MACH>': '-m64', |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
274 'DEFS': WIN_DEFAULTS, | 264 'DEFS': WIN_DEFAULTS, |
275 'CC': WIN_CC_RULES, | 265 'CC': WIN_CC_RULES, |
276 'CXX': WIN_CC_RULES, | 266 'CXX': WIN_CC_RULES, |
277 'NMF' : NMF_EMPTY, | 267 'NMF' : NMF_EMPTY, |
278 'MAIN': WIN_LINK_RULES, | 268 'MAIN': WIN_LINK_RULES, |
279 'LIB': WIN_LIB_RULES, | 269 'LIB': WIN_LIB_RULES, |
280 'SO': None, | 270 'SO': None, |
281 'TOOL': WIN_TOOL | 271 'TOOL': WIN_TOOL |
282 }, | 272 }, |
283 'linux' : { | 273 'linux' : { |
284 'ARCHES': [LINUX_32, LINUX_64], | 274 'ARCHES': [LINUX], |
285 'DEFS': LINUX_DEFAULTS, | 275 'DEFS': LINUX_DEFAULTS, |
286 'CC': SO_CC_RULES, | 276 'CC': SO_CC_RULES, |
287 'CXX': SO_CC_RULES, | 277 'CXX': SO_CC_RULES, |
288 'NMF' : NMF_EMPTY, | 278 'NMF' : NMF_EMPTY, |
289 'MAIN': SO_LINK_RULES, | 279 'MAIN': SO_LINK_RULES, |
290 'LIB': POSIX_LIB_RULES, | 280 'LIB': POSIX_LIB_RULES, |
291 'SO': None, | 281 'SO': None, |
292 'TOOL': LINUX_TOOL | 282 'TOOL': LINUX_TOOL |
293 } | 283 } |
294 } | 284 } |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
360 self.tc, self.cfg, self.arch['<ARCH>'], self.project.upper()) | 350 self.tc, self.cfg, self.arch['<ARCH>'], self.project.upper()) |
361 return '%s:=%s\n' % (obj_list, sub_str) | 351 return '%s:=%s\n' % (obj_list, sub_str) |
362 | 352 |
363 def GetArches(self): | 353 def GetArches(self): |
364 return BUILD_RULES[self.tc]['ARCHES'] | 354 return BUILD_RULES[self.tc]['ARCHES'] |
365 | 355 |
366 def GetObjectList(self): | 356 def GetObjectList(self): |
367 return '%s_%s_%s_%s_O' % (self.project.upper(), self.tc.upper(), | 357 return '%s_%s_%s_%s_O' % (self.project.upper(), self.tc.upper(), |
368 self.cfg.upper(), self.arch['<ARCH>']) | 358 self.cfg.upper(), self.arch['<ARCH>']) |
369 | 359 |
360 def GetPepperPlugin(self): | |
361 plugin = self.Replace(BUILD_RULES[self.tc]['TOOL']['MAIN']) | |
362 text ='PPAPI_<CONFIG>:=$(abspath %s)' % plugin | |
binji
2012/08/16 00:17:52
nit: remove extra space before =, add space after
noelallen1
2012/08/16 17:58:30
Done.
| |
363 text +=';application/x-ppapi-%s\n' % self.vars['<config>'].lower() | |
binji
2012/08/16 00:17:52
nit: add space after +=
noelallen1
2012/08/16 17:58:30
Done.
| |
364 return self.Replace(text) | |
365 | |
366 | |
370 def SetArch(self, arch): | 367 def SetArch(self, arch): |
371 self.arch = arch | 368 self.arch = arch |
372 for key in arch: | 369 for key in arch: |
373 self.vars[key] = arch[key] | 370 self.vars[key] = arch[key] |
374 | 371 |
375 def SetConfig(self, config): | 372 def SetConfig(self, config): |
376 self.cfg = config | 373 self.cfg = config |
377 self.vars['<config>'] = config | 374 self.vars['<config>'] = config |
378 self.vars['<CONFIG>'] = config.upper() | 375 self.vars['<CONFIG>'] = config.upper() |
379 | 376 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
479 } | 476 } |
480 for dll in dlls: | 477 for dll in dlls: |
481 replace['<proj>'] = dll | 478 replace['<proj>'] = dll |
482 nmf_targets.append(Replace(dll_target, replace)) | 479 nmf_targets.append(Replace(dll_target, replace)) |
483 replace['<proj>'] = main | 480 replace['<proj>'] = main |
484 nmf_targets.append(Replace(target, replace)) | 481 nmf_targets.append(Replace(target, replace)) |
485 | 482 |
486 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets) | 483 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets) |
487 rules = Replace(BUILD_RULES[tc]['NMF'], replace) | 484 rules = Replace(BUILD_RULES[tc]['NMF'], replace) |
488 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n' | 485 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n' |
OLD | NEW |