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

Side by Side Diff: native_client_sdk/src/build_tools/make_rules.py

Issue 11147004: use CXX compiler for c++ files (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: feedback Created 8 years, 2 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 unified diff | Download patch
« no previous file with comments | « no previous file | native_client_sdk/src/examples/file_histogram/file_histogram.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 # pylint: disable=C0301 8 # pylint: disable=C0301
9 # This file contains lines longer than 80 9 # This file contains lines longer than 80
10 10
11 # 11 #
12 # Default macros for various platforms. 12 # Default macros for various platforms.
13 # 13 #
14 NEWLIB_DEFAULTS = """ 14 NEWLIB_DEFAULTS = """
15 NEWLIB_CC?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-gcc -c 15 NEWLIB_CC?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-gcc -c
16 NEWLIB_CXX?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -c -std=gnu++98 16 NEWLIB_CXX?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -c
17 NEWLIB_LINK?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -Wl,-as-needed 17 NEWLIB_LINK?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -Wl,-as-needed
18 NEWLIB_LIB?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-ar r 18 NEWLIB_LIB?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-ar r
19 NEWLIB_DUMP?=$(TC_PATH)/$(OSNAME)_x86_newlib/x86_64-nacl/bin/objdump 19 NEWLIB_DUMP?=$(TC_PATH)/$(OSNAME)_x86_newlib/x86_64-nacl/bin/objdump
20 NEWLIB_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/inclu de 20 NEWLIB_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/inclu de
21 NEWLIB_LDFLAGS?=-pthread 21 NEWLIB_LDFLAGS?=-pthread
22 """ 22 """
23 23
24 GLIBC_DEFAULTS = """ 24 GLIBC_DEFAULTS = """
25 GLIBC_CC?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-gcc -c 25 GLIBC_CC?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-gcc -c
26 GLIBC_CXX?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -c -std=gnu++98 26 GLIBC_CXX?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -c
27 GLIBC_LINK?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -Wl,-as-needed 27 GLIBC_LINK?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -Wl,-as-needed
28 GLIBC_LIB?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-ar r 28 GLIBC_LIB?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-ar r
29 GLIBC_DUMP?=$(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/bin/objdump 29 GLIBC_DUMP?=$(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/bin/objdump
30 GLIBC_PATHS:=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib32 30 GLIBC_PATHS:=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib32
31 GLIBC_PATHS+=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib 31 GLIBC_PATHS+=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib
32 GLIBC_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ e 32 GLIBC_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ e
33 GLIBC_LDFLAGS?=-pthread 33 GLIBC_LDFLAGS?=-pthread
34 """ 34 """
35 35
36 PNACL_DEFAULTS = """ 36 PNACL_DEFAULTS = """
37 PNACL_CC?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang -c 37 PNACL_CC?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang -c
38 PNACL_CXX?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++ -c -std=gnu++ 98 38 PNACL_CXX?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++ -c
39 PNACL_LINK?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++ 39 PNACL_LINK?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++
40 PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-ar r 40 PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-ar r
41 PNACL_DUMP?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/objdump 41 PNACL_DUMP?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/objdump
42 PNACL_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ e 42 PNACL_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ e
43 PNACL_LDFLAGS?=-pthread 43 PNACL_LDFLAGS?=-pthread
44 TRANSLATE:=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-translate 44 TRANSLATE:=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-translate
45 """ 45 """
46 46
47 LINUX_DEFAULTS = """ 47 LINUX_DEFAULTS = """
48 LINUX_CC?=gcc -c 48 LINUX_CC?=gcc -c
49 LINUX_CXX?=g++ -c -std=gnu++98 49 LINUX_CXX?=g++ -c
50 LINUX_LINK?=g++ 50 LINUX_LINK?=g++
51 LINUX_LIB?=ar r 51 LINUX_LIB?=ar r
52 LINUX_CCFLAGS=-I$(NACL_SDK_ROOT)/include -I$(NACL_SDK_ROOT)/include/linux 52 LINUX_CCFLAGS=-I$(NACL_SDK_ROOT)/include -I$(NACL_SDK_ROOT)/include/linux
53 """ 53 """
54 54
55 WIN_DEFAULTS = """ 55 WIN_DEFAULTS = """
56 WIN_CC?=cl.exe /nologo 56 WIN_CC?=cl.exe /nologo /WX
57 WIN_CXX?=cl.exe /nologo 57 WIN_CXX?=cl.exe /nologo /EHsc /WX
58 WIN_LINK?=link.exe /nologo 58 WIN_LINK?=link.exe /nologo
59 WIN_LIB?=lib.exe /nologo 59 WIN_LIB?=lib.exe /nologo
60 WIN_CCFLAGS=/I$(NACL_SDK_ROOT)/include /I$(NACL_SDK_ROOT)/include/win -D WIN32 - D _WIN32 -D PTW32_STATIC_LIB 60 WIN_CCFLAGS=/I$(NACL_SDK_ROOT)\\include /I$(NACL_SDK_ROOT)\\include\\win -D WIN3 2 -D _WIN32 -D PTW32_STATIC_LIB
61 """ 61 """
62 62
63 # 63 #
64 # Compile rules for various platforms. 64 # Compile rules for various platforms.
65 # 65 #
66 NACL_CC_RULES = { 66 NACL_CC_RULES = {
67 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FL AGS) <DEFLIST> <INCLIST>', 67 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FL AGS) <DEFLIST> <INCLIST>',
68 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FLA GS) <DEFLIST> <INCLIST>', 68 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FLA GS) <DEFLIST> <INCLIST>',
69 } 69 }
70 70
71 SO_CC_RULES = { 71 SO_CC_RULES = {
72 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_< EXT>FLAGS) <DEFLIST> <INCLIST>', 72 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_< EXT>FLAGS) <DEFLIST> <INCLIST>',
73 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_<E XT>FLAGS) <DEFLIST> <INCLIST>' 73 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_<E XT>FLAGS) <DEFLIST> <INCLIST>'
74 } 74 }
75 75
76 WIN_CC_RULES = { 76 WIN_CC_RULES = {
77 'Debug': '<TAB>$(<CC>) /Od /Fo$@ /MTd /Zi /c $< $(WIN_CCFLAGS) <DEFLIST> <INCL IST>', 77 'Debug': '<TAB>$(<CC>) /Od /Fo$@ /MTd /Z7 /c $< $(WIN_CCFLAGS) <DEFLIST> <INCL IST>',
78 'Release': '<TAB>$(<CC>) /O2 /Fo$@ /MT /c $< $(WIN_CCFLAGS) <DEFLIST> <INCLIST >' 78 'Release': '<TAB>$(<CC>) /O2 /Fo$@ /MT /c $< $(WIN_CCFLAGS) <DEFLIST> <INCLIST >'
79 } 79 }
80 80
81 # 81 #
82 # Link rules for various platforms. 82 # Link rules for various platforms.
83 # 83 #
84 NEXE_LINK_RULES = { 84 NEXE_LINK_RULES = {
85 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST > -Wl,--end-group', 85 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST > -Wl,--end-group',
86 'Release': '<TAB>$(<LINK>) -o $@ $^ <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) - L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST > -Wl,--end-group' 86 'Release': '<TAB>$(<LINK>) -o $@ $^ <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) - L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST > -Wl,--end-group'
87 } 87 }
(...skipping 17 matching lines...) Expand all
105 105
106 <tc>/<config>/<proj>_arm.nexe : <tc>/<config>/<proj>.pexe 106 <tc>/<config>/<proj>_arm.nexe : <tc>/<config>/<proj>.pexe
107 <TAB>$(TRANSLATE) -arch arm $< -o $@""" 107 <TAB>$(TRANSLATE) -arch arm $< -o $@"""
108 108
109 PEXE_LINK_RULES = { 109 PEXE_LINK_RULES = {
110 '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, 110 '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,
111 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL _SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE , 111 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL _SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE ,
112 } 112 }
113 113
114 WIN_LINK_RULES = { 114 WIN_LINK_RULES = {
115 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDG:$@.pdb /Zi $(<PROJ>_LDFLAGS) /DEBUG /LIBPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS) ', 115 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDB:$@.pdb $(<PROJ>_LDFLAGS) /DEBUG /LI BPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS)',
116 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_ ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)' 116 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_ ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)'
117 } 117 }
118 118
119 119
120 # 120 #
121 # Lib rules for various platforms. 121 # Lib rules for various platforms.
122 # 122 #
123 POSIX_LIB_RULES = { 123 POSIX_LIB_RULES = {
124 'Debug': 124 'Debug':
125 '<TAB>$(MKDIR) -p $(dir $@)\n' 125 '<TAB>$(MKDIR) -p $(dir $@)\n'
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 rules = '\n#\n# Rules for %s toolchain\n#\n%s:\n\t$(MKDIR) %s\n' % ( 332 rules = '\n#\n# Rules for %s toolchain\n#\n%s:\n\t$(MKDIR) %s\n' % (
333 tc, tc, tc) 333 tc, tc, tc)
334 for cfg in configs: 334 for cfg in configs:
335 rules += '%s/%s: | %s\n\t$(MKDIR) %s/%s\n' % (tc, cfg, tc, tc, cfg) 335 rules += '%s/%s: | %s\n\t$(MKDIR) %s/%s\n' % (tc, cfg, tc, tc, cfg)
336 336
337 rules += '\n# Include header dependency files.\n' 337 rules += '\n# Include header dependency files.\n'
338 for cfg in configs: 338 for cfg in configs:
339 rules += '-include %s/%s/*.d\n' % (tc, cfg) 339 rules += '-include %s/%s/*.d\n' % (tc, cfg)
340 return rules + '\n' 340 return rules + '\n'
341 341
342 def BuildCompileRule(self, EXT, src): 342 def BuildCompileRule(self, ext, src):
343 self.vars['<EXT>'] = EXT 343 self.vars['<EXT>'] = ext
344 out = '<tc>/<config>/%s_<ARCH>.o : %s $(THIS_MAKE) | <tc>/<config>\n' % ( 344 out = '<tc>/<config>/%s_<ARCH>.o : %s $(THIS_MAKE) | <tc>/<config>\n' % (
345 os.path.splitext(src)[0], src) 345 os.path.splitext(src)[0], src)
346 out += BUILD_RULES[self.tc][EXT][self.cfg] + '\n\n' 346 rule = BUILD_RULES[self.tc][ext][self.cfg]
347 if ext == 'CXX':
348 rule = rule.replace('<CC>', '<CXX>')
349 out += rule + '\n\n'
347 return self.Replace(out) 350 return self.Replace(out)
348 351
349 def BuildLinkRule(self): 352 def BuildLinkRule(self):
350 target = BUILD_RULES[self.tc]['TOOL'][self.ptype.upper()] 353 target = BUILD_RULES[self.tc]['TOOL'][self.ptype.upper()]
351 out = '' 354 out = ''
352 if self.ptype == 'lib': 355 if self.ptype == 'lib':
353 out = 'ALL_TARGETS+=%s\n' % target 356 out = 'ALL_TARGETS+=%s\n' % target
354 out += target + ' : $(<PROJ>_<TC>_<CONFIG>_<ARCH>_O)\n' 357 out += target + ' : $(<PROJ>_<TC>_<CONFIG>_<ARCH>_O)\n'
355 out += BUILD_RULES[self.tc][self.ptype.upper()][self.cfg] + '\n\n' 358 out += BUILD_RULES[self.tc][self.ptype.upper()][self.cfg] + '\n\n'
356 return self.Replace(out) 359 return self.Replace(out)
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 } 488 }
486 for dll in dlls: 489 for dll in dlls:
487 replace['<proj>'] = dll 490 replace['<proj>'] = dll
488 nmf_targets.append(Replace(dll_target, replace)) 491 nmf_targets.append(Replace(dll_target, replace))
489 replace['<proj>'] = main 492 replace['<proj>'] = main
490 nmf_targets.append(Replace(target, replace)) 493 nmf_targets.append(Replace(target, replace))
491 494
492 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets) 495 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets)
493 rules = Replace(BUILD_RULES[tc]['NMF'], replace) 496 rules = Replace(BUILD_RULES[tc]['NMF'], replace)
494 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n' 497 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n'
OLDNEW
« no previous file with comments | « no previous file | native_client_sdk/src/examples/file_histogram/file_histogram.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698