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

Side by Side Diff: build/toolchain/nacl/BUILD.gn

Issue 1333673002: Build PPAPI NaCl Glibc tests with GN (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review feedback addressed Created 5 years, 3 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
OLDNEW
1 # Copyright (c) 2014 The Native Client Authors. All rights reserved. 1 # Copyright (c) 2014 The Native Client Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/sysroot.gni") 5 import("//build/config/sysroot.gni")
6 import("//build/toolchain/nacl_toolchain.gni") 6 import("//build/toolchain/nacl_toolchain.gni")
7 7
8 nacl_toolchain_dir = rebase_path("//native_client/toolchain", root_build_dir) 8 nacl_toolchain_dir = rebase_path("//native_client/toolchain", root_build_dir)
9 os_toolchain_dir = "${nacl_toolchain_dir}/${current_os}_x86" 9 os_toolchain_dir = "${nacl_toolchain_dir}/${current_os}_x86"
10 10
(...skipping 16 matching lines...) Expand all
27 nacl_x86_newlib_rev = revisions[1] 27 nacl_x86_newlib_rev = revisions[1]
28 nacl_x86_glibc_rev = revisions[2] 28 nacl_x86_glibc_rev = revisions[2]
29 pnacl_newlib_rev = revisions[3] 29 pnacl_newlib_rev = revisions[3]
30 30
31 nacl_toolchain("newlib_arm") { 31 nacl_toolchain("newlib_arm") {
32 toolchain_package = "nacl_arm_newlib" 32 toolchain_package = "nacl_arm_newlib"
33 toolchain_revision = nacl_arm_newlib_rev 33 toolchain_revision = nacl_arm_newlib_rev
34 toolchain_cpu = "arm" 34 toolchain_cpu = "arm"
35 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/arm-nacl-" 35 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/arm-nacl-"
36 is_clang = false 36 is_clang = false
37 is_nacl_glibc = false
37 38
38 cc = toolprefix + "gcc" 39 cc = toolprefix + "gcc"
39 cxx = toolprefix + "g++" 40 cxx = toolprefix + "g++"
40 ar = toolprefix + "ar" 41 ar = toolprefix + "ar"
41 ld = cxx 42 ld = cxx
42 } 43 }
43 44
44 nacl_toolchain("newlib_x86") { 45 nacl_toolchain("newlib_x86") {
45 toolchain_package = "nacl_x86_newlib" 46 toolchain_package = "nacl_x86_newlib"
46 toolchain_revision = nacl_x86_newlib_rev 47 toolchain_revision = nacl_x86_newlib_rev
47 toolchain_cpu = "x86" 48 toolchain_cpu = "x86"
48 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-" 49 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-"
49 is_clang = false 50 is_clang = false
51 is_nacl_glibc = false
50 52
51 cc = toolprefix + "gcc" 53 cc = toolprefix + "gcc"
52 cxx = toolprefix + "g++" 54 cxx = toolprefix + "g++"
53 ar = toolprefix + "ar" 55 ar = toolprefix + "ar"
54 ld = cxx 56 ld = cxx
55 } 57 }
56 58
57 nacl_toolchain("newlib_x64") { 59 nacl_toolchain("newlib_x64") {
58 toolchain_package = "nacl_x86_newlib" 60 toolchain_package = "nacl_x86_newlib"
59 toolchain_revision = nacl_x86_newlib_rev 61 toolchain_revision = nacl_x86_newlib_rev
60 toolchain_cpu = "x64" 62 toolchain_cpu = "x64"
61 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-" 63 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-"
62 is_clang = false 64 is_clang = false
65 is_nacl_glibc = false
63 66
64 cc = toolprefix + "gcc" 67 cc = toolprefix + "gcc"
65 cxx = toolprefix + "g++" 68 cxx = toolprefix + "g++"
66 ar = toolprefix + "ar" 69 ar = toolprefix + "ar"
67 ld = cxx 70 ld = cxx
68 } 71 }
69 72
70 nacl_toolchain("newlib_pnacl") { 73 nacl_toolchain("newlib_pnacl") {
71 toolchain_package = "pnacl_newlib" 74 toolchain_package = "pnacl_newlib"
72 toolchain_revision = pnacl_newlib_rev 75 toolchain_revision = pnacl_newlib_rev
73 toolchain_cpu = "pnacl" 76 toolchain_cpu = "pnacl"
74 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/pnacl-" 77 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/pnacl-"
78 is_nacl_glibc = false
75 79
76 cc = toolprefix + "clang" 80 cc = toolprefix + "clang"
77 cxx = toolprefix + "clang++" 81 cxx = toolprefix + "clang++"
78 ar = toolprefix + "ar" 82 ar = toolprefix + "ar"
79 ld = cxx 83 ld = cxx
80 executable_extension = ".pexe.debug" 84 executable_extension = ".pexe.debug"
81 85
82 finalize = toolprefix + "finalize" 86 finalize = toolprefix + "finalize"
83 nonfinal_file = 87 nonfinal_file =
84 "{{root_out_dir}}/{{target_output_name}}${executable_extension}" 88 "{{root_out_dir}}/{{target_output_name}}${executable_extension}"
85 finalized_file = "{{root_out_dir}}/{{target_output_name}}.pexe" 89 finalized_file = "{{root_out_dir}}/{{target_output_name}}.pexe"
86 postlink = "$finalize $nonfinal_file -o $finalized_file" 90 postlink = "$finalize $nonfinal_file -o $finalized_file"
87 link_outputs = [ finalized_file ] 91 link_outputs = [ finalized_file ]
88 } 92 }
89 93
90 nacl_toolchain("glibc_x86") { 94 nacl_toolchain("glibc_x86") {
91 toolchain_package = "nacl_x86_glibc" 95 toolchain_package = "nacl_x86_glibc"
92 toolchain_revision = nacl_x86_glibc_rev 96 toolchain_revision = nacl_x86_glibc_rev
93 toolchain_cpu = "x86" 97 toolchain_cpu = "x86"
94 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-" 98 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-"
95 is_clang = false 99 is_clang = false
100 is_nacl_glibc = true
96 101
97 cc = toolprefix + "gcc" 102 cc = toolprefix + "gcc"
98 cxx = toolprefix + "g++" 103 cxx = toolprefix + "g++"
99 ar = toolprefix + "ar" 104 ar = toolprefix + "ar"
100 ld = cxx 105 ld = cxx
101 } 106 }
102 107
103 nacl_toolchain("glibc_x64") { 108 nacl_toolchain("glibc_x64") {
104 toolchain_package = "nacl_x86_glibc" 109 toolchain_package = "nacl_x86_glibc"
105 toolchain_revision = nacl_x86_glibc_rev 110 toolchain_revision = nacl_x86_glibc_rev
106 toolchain_cpu = "x64" 111 toolchain_cpu = "x64"
107 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-" 112 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-"
108 is_clang = false 113 is_clang = false
114 is_nacl_glibc = true
109 115
110 cc = toolprefix + "gcc" 116 cc = toolprefix + "gcc"
111 cxx = toolprefix + "g++" 117 cxx = toolprefix + "g++"
112 ar = toolprefix + "ar" 118 ar = toolprefix + "ar"
113 ld = cxx 119 ld = cxx
114 } 120 }
115 121
116 nacl_toolchain("clang_newlib_x86") { 122 nacl_toolchain("clang_newlib_x86") {
117 toolchain_package = "pnacl_newlib" 123 toolchain_package = "pnacl_newlib"
118 toolchain_revision = pnacl_newlib_rev 124 toolchain_revision = pnacl_newlib_rev
119 toolchain_cpu = "x86" 125 toolchain_cpu = "x86"
120 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-" 126 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-"
121 is_clang = true 127 is_clang = true
128 is_nacl_glibc = false
122 129
123 cc = toolprefix + "clang" 130 cc = toolprefix + "clang"
124 cxx = toolprefix + "clang++" 131 cxx = toolprefix + "clang++"
125 ar = toolprefix + "ar" 132 ar = toolprefix + "ar"
126 ld = cxx 133 ld = cxx
127 } 134 }
128 135
129 nacl_toolchain("clang_newlib_x64") { 136 nacl_toolchain("clang_newlib_x64") {
130 toolchain_package = "pnacl_newlib" 137 toolchain_package = "pnacl_newlib"
131 toolchain_revision = pnacl_newlib_rev 138 toolchain_revision = pnacl_newlib_rev
132 toolchain_cpu = "x64" 139 toolchain_cpu = "x64"
133 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-" 140 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-"
134 is_clang = true 141 is_clang = true
142 is_nacl_glibc = false
135 143
136 cc = toolprefix + "clang" 144 cc = toolprefix + "clang"
137 cxx = toolprefix + "clang++" 145 cxx = toolprefix + "clang++"
138 ar = toolprefix + "ar" 146 ar = toolprefix + "ar"
139 ld = cxx 147 ld = cxx
140 } 148 }
141 149
142 link_irt = rebase_path("//native_client/build/link_irt.py", root_build_dir) 150 link_irt = rebase_path("//native_client/build/link_irt.py", root_build_dir)
143 151
144 nacl_toolchain("irt_x86") { 152 nacl_toolchain("irt_x86") {
145 toolchain_package = "pnacl_newlib" 153 toolchain_package = "pnacl_newlib"
146 toolchain_revision = pnacl_newlib_rev 154 toolchain_revision = pnacl_newlib_rev
147 toolchain_cpu = "x86" 155 toolchain_cpu = "x86"
148 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-" 156 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/i686-nacl-"
149 is_clang = true 157 is_clang = true
158 is_nacl_glibc = false
150 159
151 cc = toolprefix + "clang" 160 cc = toolprefix + "clang"
152 cxx = toolprefix + "clang++" 161 cxx = toolprefix + "clang++"
153 ar = toolprefix + "ar" 162 ar = toolprefix + "ar"
154 readelf = toolprefix + "readelf" 163 readelf = toolprefix + "readelf"
155 164
156 tls_edit_label = 165 tls_edit_label =
157 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)" 166 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)"
158 host_toolchain_out_dir = 167 host_toolchain_out_dir =
159 rebase_path(get_label_info(tls_edit_label, "root_out_dir"), 168 rebase_path(get_label_info(tls_edit_label, "root_out_dir"),
160 root_build_dir) 169 root_build_dir)
161 170
162 # Some IRT implementations (notably, Chromium's) contain C++ code, 171 # Some IRT implementations (notably, Chromium's) contain C++ code,
163 # so we need to link w/ the C++ linker. 172 # so we need to link w/ the C++ linker.
164 ld = "${python_path} ${link_irt} --tls-edit=${host_toolchain_out_dir}/tls_edit --link-cmd=${cxx} --readelf-cmd=${readelf}" 173 ld = "${python_path} ${link_irt} --tls-edit=${host_toolchain_out_dir}/tls_edit --link-cmd=${cxx} --readelf-cmd=${readelf}"
165 174
166 # TODO(ncbray): depend on link script 175 # TODO(ncbray): depend on link script
167 deps = [ 176 deps = [
168 tls_edit_label, 177 tls_edit_label,
169 ] 178 ]
170 } 179 }
171 180
172 nacl_toolchain("irt_x64") { 181 nacl_toolchain("irt_x64") {
173 toolchain_package = "pnacl_newlib" 182 toolchain_package = "pnacl_newlib"
174 toolchain_revision = pnacl_newlib_rev 183 toolchain_revision = pnacl_newlib_rev
175 toolchain_cpu = "x64" 184 toolchain_cpu = "x64"
176 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-" 185 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/x86_64-nacl-"
177 is_clang = true 186 is_clang = true
187 is_nacl_glibc = false
178 188
179 cc = toolprefix + "clang" 189 cc = toolprefix + "clang"
180 cxx = toolprefix + "clang++" 190 cxx = toolprefix + "clang++"
181 ar = toolprefix + "ar" 191 ar = toolprefix + "ar"
182 readelf = toolprefix + "readelf" 192 readelf = toolprefix + "readelf"
183 193
184 # Some IRT implementations (notably, Chromium's) contain C++ code, 194 # Some IRT implementations (notably, Chromium's) contain C++ code,
185 # so we need to link w/ the C++ linker. 195 # so we need to link w/ the C++ linker.
186 ld = "${python_path} ${link_irt} --tls-edit=tls_edit --link-cmd=${cxx} --reade lf-cmd=${readelf}" 196 ld = "${python_path} ${link_irt} --tls-edit=tls_edit --link-cmd=${cxx} --reade lf-cmd=${readelf}"
187 197
188 # TODO(ncbray): depend on link script 198 # TODO(ncbray): depend on link script
189 deps = [ 199 deps = [
190 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)", 200 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)",
191 ] 201 ]
192 } 202 }
193 203
194 # Uses newlib to match the Chrome build. 204 # Uses newlib to match the Chrome build.
195 nacl_toolchain("irt_arm") { 205 nacl_toolchain("irt_arm") {
196 toolchain_package = "nacl_arm_newlib" 206 toolchain_package = "nacl_arm_newlib"
197 toolchain_revision = nacl_arm_newlib_rev 207 toolchain_revision = nacl_arm_newlib_rev
198 toolchain_cpu = "arm" 208 toolchain_cpu = "arm"
199 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/arm-nacl-" 209 toolprefix = "${os_toolchain_dir}/${toolchain_package}/bin/arm-nacl-"
200 is_clang = false 210 is_clang = false
211 is_nacl_glibc = false
201 212
202 cc = toolprefix + "gcc" 213 cc = toolprefix + "gcc"
203 cxx = toolprefix + "g++" 214 cxx = toolprefix + "g++"
204 ar = toolprefix + "ar" 215 ar = toolprefix + "ar"
205 readelf = toolprefix + "readelf" 216 readelf = toolprefix + "readelf"
206 217
207 # Some IRT implementations (notably, Chromium's) contain C++ code, 218 # Some IRT implementations (notably, Chromium's) contain C++ code,
208 # so we need to link w/ the C++ linker. 219 # so we need to link w/ the C++ linker.
209 ld = "${python_path} ${link_irt} --tls-edit=tls_edit --link-cmd=${cxx} --reade lf-cmd=${readelf}" 220 ld = "${python_path} ${link_irt} --tls-edit=tls_edit --link-cmd=${cxx} --reade lf-cmd=${readelf}"
210 221
211 # TODO(ncbray): depend on link script 222 # TODO(ncbray): depend on link script
212 deps = [ 223 deps = [
213 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)", 224 "//native_client/src/tools/tls_edit:tls_edit($host_toolchain)",
214 ] 225 ]
215 } 226 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698