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

Side by Side Diff: services/nacl/BUILD.gn

Issue 1382713002: Creating a pexe content handler to translate and run pexes. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 1 month 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 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium 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("//mojo/public/mojo_application.gni") 5 import("//mojo/public/mojo_application.gni")
6 import("//mojo/public/tools/bindings/mojom.gni")
6 7
7 # Trusted code 8 # Trusted code
8 if (!is_nacl) { 9 if (!is_nacl) {
9 mojo_native_application("nacl_content_handler") { 10 mojo_native_application("content_handler_sfi") {
10 sources = [ 11 sources = [
11 "content_handler_main.cc", 12 "content_handler_main.cc",
12 ] 13 ]
13 14
14 deps = [ 15 deps = [
15 "//base", 16 "//base",
16 "//mojo/application:application", 17 "//mojo/application:application",
17 "//mojo/application:content_handler", 18 "//mojo/application:content_handler",
18 "//mojo/data_pipe_utils", 19 "//mojo/data_pipe_utils",
19 "//mojo/message_pump", 20 "//mojo/message_pump",
20 "//mojo/public/platform/native:system_impl_private", 21 "//mojo/public/platform/native:system_impl_private",
21 "//mojo/services/network/interfaces", 22 "//mojo/services/network/interfaces",
22 "//mojo/nacl/sfi/nacl_bindings:monacl_sel", 23 "//mojo/nacl/sfi/nacl_bindings:monacl_sel",
23 "//url", 24 "//url",
24 ] 25 ]
25 26
26 data_deps = [ 27 data_deps = [
27 "//mojo/nacl/sfi/nacl_bindings:irt_mojo(//build/toolchain/nacl:irt_${targe t_cpu})", 28 "//mojo/nacl/sfi/nacl_bindings:irt_mojo(//build/toolchain/nacl:irt_${targe t_cpu})",
28 ] 29 ]
29 } 30 }
30 31
31 if (current_cpu == "x86" || current_cpu == "arm") { 32 if (current_cpu == "x86" || current_cpu == "arm") {
32 # Non-SFI NaCl can only be executed by a 32-bit process, so our 33 # Non-SFI NaCl can only be executed by a 32-bit process, so our
33 # content handler must be built and launched as a 32-bit process as well. 34 # content handler must be built and launched as a 32-bit process as well.
34 mojo_native_application("nacl_content_handler_nonsfi_32_bit") { 35 mojo_native_application("content_handler_nonsfi_32_bit") {
36 output_name = "content_handler_nonsfi_nexe"
35 sources = [ 37 sources = [
36 "content_handler_main_nonsfi.cc", 38 "content_handler_main_nonsfi.cc",
37 ] 39 ]
38 40
39 deps = [ 41 deps = [
40 "//base", 42 "//base",
41 "//mojo/application:application", 43 "//mojo/application:application",
42 "//mojo/application:content_handler", 44 "//mojo/application:content_handler",
43 "//mojo/data_pipe_utils", 45 "//mojo/data_pipe_utils",
44 "//mojo/public/platform/native:mgl_thunks",
45 "//mojo/public/platform/native:mgl_onscreen_thunks",
46 "//mojo/message_pump", 46 "//mojo/message_pump",
47 "//mojo/nacl/nonsfi:irt_mojo_nonsfi", 47 "//mojo/nacl/nonsfi:irt_mojo_nonsfi",
48 "//mojo/public/cpp/application:application", 48 "//mojo/public/cpp/application:application",
49 "//native_client/src/nonsfi/loader:elf_loader", 49 "//native_client/src/nonsfi/loader:elf_loader",
50 ] 50 ]
51 } 51 }
52 mojo_native_application("content_handler_nonsfi_pexe_32_bit") {
53 output_name = "content_handler_nonsfi_pexe"
54 sources = [
55 "content_handler_main_nonsfi_pexe.cc",
56 ]
57
58 deps = [
59 ":pnacl_translator_bindings",
60 "//base",
61 "//mojo/application:application",
62 "//mojo/application:content_handler",
63 "//mojo/data_pipe_utils",
64 "//mojo/message_pump",
65 "//mojo/nacl/nonsfi:irt_mojo_nonsfi",
66 "//mojo/services/files/c:mojio",
67 "//native_client/src/nonsfi/loader:elf_loader",
68 ]
69 }
70 mojo_native_application("pnacl_compile_32_bit") {
71 output_name = "pnacl_compile"
72 sources = [
73 "pnacl_compile.cc",
74 ]
75
76 deps = [
77 ":pnacl_translator_bindings",
78 "//base",
79 "//mojo/nacl/nonsfi:irt_mojo_nonsfi",
80 "//mojo/public/cpp/application:standalone",
81 "//native_client/src/nonsfi/loader:elf_loader",
82 ]
83 }
84 mojo_native_application("pnacl_link_32_bit") {
85 output_name = "pnacl_link"
86 sources = [
87 "pnacl_link.cc",
88 ]
89
90 deps = [
91 ":pnacl_translator_bindings",
92 "//base",
93 "//mojo/nacl/nonsfi:irt_mojo_nonsfi",
94 "//mojo/public/cpp/application:standalone",
95 "//native_client/src/nonsfi/loader:elf_loader",
96 ]
97 }
98
99 # Copy all files necessary for pnacl translation into the output directory.
100 copy("pnacl_translation_files") {
101 file_location_prefix = "//native_client/toolchain/linux_x86/pnacl_translat or/translator/x86-32-nonsfi"
102 sources = [
103 "${file_location_prefix}/bin/ld.nexe",
104 "${file_location_prefix}/bin/pnacl-llc.nexe",
105 "${file_location_prefix}/lib/crtbegin.o",
106 "${file_location_prefix}/lib/crtbegin_for_eh.o",
107 "${file_location_prefix}/lib/crtend.o",
108 "${file_location_prefix}/lib/libcrt_platform.a",
109 "${file_location_prefix}/lib/libgcc.a",
110 "${file_location_prefix}/lib/libpnacl_irt_shim_dummy.a",
111 ]
112 outputs = [
113 "${root_build_dir}/pnacl_translation_files/{{source_file_part}}",
114 ]
115 }
52 116
53 # Copy to the root build directory so that the '#!' prefix line for invoking 117 # Copy to the root build directory so that the '#!' prefix line for invoking
54 # our content handler can simply be "mojo:nacl_content_handler_nonsfi". 118 # our content handler can simply be "mojo:content_handler_nonsfi".
55 copy("nacl_content_handler_nonsfi_copy") { 119 # Either way, build the same dependencies.
56 sources = [ 120 shared_deps = [
57 "${root_out_dir}/nacl_content_handler_nonsfi_32_bit.mojo", 121 ":content_handler_nonsfi_32_bit",
58 ] 122 ":content_handler_nonsfi_pexe_32_bit",
59 outputs = [ 123 ":pnacl_compile_32_bit",
60 "${root_build_dir}/nacl_content_handler_nonsfi.mojo", 124 ":pnacl_link_32_bit",
61 ] 125 ":pnacl_translation_files",
62 deps = [ 126 ]
63 ":nacl_content_handler_nonsfi_32_bit", 127 if (root_out_dir != root_build_dir) {
64 ] 128 copy("content_handler_nonsfi_copy") {
129 sources = [
130 "${root_out_dir}/content_handler_nonsfi_nexe.mojo",
131 "${root_out_dir}/content_handler_nonsfi_pexe.mojo",
132 "${root_out_dir}/pnacl_compile.mojo",
133 "${root_out_dir}/pnacl_link.mojo",
134 ]
135 outputs = [
136 "${root_build_dir}/{{source_file_part}}",
137 ]
138 deps = shared_deps
139 }
140 } else {
141 group("content_handler_nonsfi_copy") {
142 deps = shared_deps
143 }
65 } 144 }
66 } 145 }
67 } 146 }
68 147
69 # This group serves as a 64 to 32 bit transformation for Linux. If we are 148 # This group serves as a 64 to 32 bit transformation for Linux. If we are
70 # using a 64 bit toolchain, build the nonsfi nacl content handler as 32 bit. 149 # using a 64 bit toolchain, build the nonsfi nacl content handler as 32 bit.
71 group("nacl_content_handler_nonsfi") { 150 group("content_handler_nonsfi") {
72 deps = [] 151 deps = []
73 if ((target_cpu == "x64" || target_cpu == "x86") && is_linux) { 152 if ((target_cpu == "x64" || target_cpu == "x86") && is_linux) {
74 # The toolchain is hardcoded as 32-bit clang here -- although it must 153 # The toolchain is hardcoded as 32-bit clang here -- although it must
75 # be 32 bit (for nonsfi), it assumes clang. Ideally, the toolchain would 154 # be 32 bit (for nonsfi), it assumes clang. Ideally, the toolchain would
76 # be defined as the 32 bit variant of whatever is being used (be it clang, 155 # be defined as the 32 bit variant of whatever is being used (be it clang,
77 # gcc, or something else). 156 # gcc, or something else).
78 deps += [ ":nacl_content_handler_nonsfi_copy(//build/toolchain/linux:clang_x 86)" ] 157 deps +=
158 [ ":content_handler_nonsfi_copy(//build/toolchain/linux:clang_x86)" ]
79 } else { 159 } else {
80 deps += [ ":nacl_content_handler_nonsfi_copy" ] 160 deps += [ ":content_handler_nonsfi_copy" ]
81 } 161 }
82 } 162 }
163
164 mojom("pnacl_translator_bindings") {
165 sources = [
166 "pnacl_compile.mojom",
167 "pnacl_link.mojom",
168 ]
169 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698