| OLD | NEW |
| 1 # Copyright 2016 Google Inc. | 1 # Copyright 2016 Google Inc. |
| 2 # | 2 # |
| 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 declare_args() { | 6 declare_args() { |
| 7 ar = "ar" | 7 ar = "ar" |
| 8 cc = "cc" | 8 cc = "cc" |
| 9 cxx = "c++" | 9 cxx = "c++" |
| 10 | 10 |
| 11 if (is_android) { | 11 if (is_android) { |
| 12 ar = "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin/ar" | 12 ar = "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin/ar" |
| 13 cc = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang" | 13 cc = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang" |
| 14 cxx = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang++" | 14 cxx = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang++" |
| 15 } | 15 } |
| 16 | 16 |
| 17 extra_cflags = "" | 17 extra_cflags = "" |
| 18 extra_cflags_c = "" | 18 extra_cflags_c = "" |
| 19 extra_cflags_cc = "" | 19 extra_cflags_cc = "" |
| 20 |
| 21 compiler_prefix = "" |
| 20 } | 22 } |
| 21 | 23 |
| 22 config("no_rtti") { | 24 config("no_rtti") { |
| 23 cflags_cc = [ "-fno-rtti" ] | 25 cflags_cc = [ "-fno-rtti" ] |
| 24 } | 26 } |
| 25 | 27 |
| 26 config("default") { | 28 config("default") { |
| 27 cflags = [ | 29 cflags = [ |
| 28 "-g", | 30 "-g", |
| 29 "-fstrict-aliasing", | 31 "-fstrict-aliasing", |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 pool("link_pool") { | 120 pool("link_pool") { |
| 119 depth = 0 #unlimited | 121 depth = 0 #unlimited |
| 120 } | 122 } |
| 121 | 123 |
| 122 toolchain("gcc_like") { | 124 toolchain("gcc_like") { |
| 123 lib_switch = "-l" | 125 lib_switch = "-l" |
| 124 lib_dir_switch = "-L" | 126 lib_dir_switch = "-L" |
| 125 | 127 |
| 126 tool("cc") { | 128 tool("cc") { |
| 127 depfile = "{{output}}.d" | 129 depfile = "{{output}}.d" |
| 128 command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{c
flags_c}} $extra_cflags $extra_cflags_c -c {{source}} -o {{output}}" | 130 command = "$compiler_prefix $cc -MMD -MF $depfile {{defines}} {{include_dirs
}} {{cflags}} {{cflags_c}} $extra_cflags $extra_cflags_c -c {{source}} -o {{outp
ut}}" |
| 129 depsformat = "gcc" | 131 depsformat = "gcc" |
| 130 outputs = [ | 132 outputs = [ |
| 131 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o", | 133 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o", |
| 132 ] | 134 ] |
| 133 description = "$cc ... $extra_cflags $extra_cflags_c -o {{output}}" | 135 description = |
| 136 "$compiler_prefix $cc ... $extra_cflags $extra_cflags_c -o {{output}}" |
| 134 } | 137 } |
| 135 | 138 |
| 136 tool("cxx") { | 139 tool("cxx") { |
| 137 depfile = "{{output}}.d" | 140 depfile = "{{output}}.d" |
| 138 command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{
cflags_cc}} $extra_cflags $extra_cflags_cc -c {{source}} -o {{output}}" | 141 command = "$compiler_prefix $cxx -MMD -MF $depfile {{defines}} {{include_dir
s}} {{cflags}} {{cflags_cc}} $extra_cflags $extra_cflags_cc -c {{source}} -o {{o
utput}}" |
| 139 depsformat = "gcc" | 142 depsformat = "gcc" |
| 140 outputs = [ | 143 outputs = [ |
| 141 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o", | 144 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o", |
| 142 ] | 145 ] |
| 143 description = "$cxx ... $extra_cflags $extra_cflags_cc -o {{output}}" | 146 description = |
| 147 "$compiler_prefix $cxx ... $extra_cflags $extra_cflags_cc -o {{output}}" |
| 144 } | 148 } |
| 145 | 149 |
| 146 tool("asm") { | 150 tool("asm") { |
| 147 depfile = "{{output}}.d" | 151 depfile = "{{output}}.d" |
| 148 command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{asmflags}} -
c {{source}} -o {{output}}" | 152 command = "$compiler_prefix $cc -MMD -MF $depfile {{defines}} {{include_dirs
}} {{asmflags}} -c {{source}} -o {{output}}" |
| 149 depsformat = "gcc" | 153 depsformat = "gcc" |
| 150 outputs = [ | 154 outputs = [ |
| 151 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o", | 155 "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o", |
| 152 ] | 156 ] |
| 153 description = "$cc ... -o {{output}}" | 157 description = "$compiler_prefix $cc ... -o {{output}}" |
| 154 } | 158 } |
| 155 | 159 |
| 156 tool("alink") { | 160 tool("alink") { |
| 157 command = "rm -f {{output}} && $ar rcs {{output}} {{inputs}}" | 161 command = "rm -f {{output}} && $ar rcs {{output}} {{inputs}}" |
| 158 outputs = [ | 162 outputs = [ |
| 159 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}", | 163 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}", |
| 160 ] | 164 ] |
| 161 default_output_extension = ".a" | 165 default_output_extension = ".a" |
| 162 output_prefix = "lib" | 166 output_prefix = "lib" |
| 163 description = "$ar {{output}} ..." | 167 description = "$ar {{output}} ..." |
| 164 } | 168 } |
| 165 | 169 |
| 166 tool("solink") { | 170 tool("solink") { |
| 167 soname = "{{target_output_name}}{{output_extension}}" | 171 soname = "{{target_output_name}}{{output_extension}}" |
| 168 | 172 |
| 169 rpath = "-Wl,-soname,$soname" | 173 rpath = "-Wl,-soname,$soname" |
| 170 if (is_mac) { | 174 if (is_mac) { |
| 171 rpath = "-Wl,-install_name,@rpath/$soname" | 175 rpath = "-Wl,-install_name,@rpath/$soname" |
| 172 } | 176 } |
| 173 | 177 |
| 174 command = "$cxx -shared {{ldflags}} {{inputs}} {{solibs}} {{libs}} $rpath -o
{{output}}" | 178 command = "$compiler_prefix $cxx -shared {{ldflags}} {{inputs}} {{solibs}} {
{libs}} $rpath -o {{output}}" |
| 175 outputs = [ | 179 outputs = [ |
| 176 "{{root_out_dir}}/$soname", | 180 "{{root_out_dir}}/$soname", |
| 177 ] | 181 ] |
| 178 output_prefix = "lib" | 182 output_prefix = "lib" |
| 179 default_output_extension = ".so" | 183 default_output_extension = ".so" |
| 180 description = "$cxx -shared ... -o {{output}}" | 184 description = "$compiler_prefix $cxx -shared ... -o {{output}}" |
| 181 pool = ":link_pool" | 185 pool = ":link_pool" |
| 182 } | 186 } |
| 183 | 187 |
| 184 tool("link") { | 188 tool("link") { |
| 185 command = "$cxx {{ldflags}} {{inputs}} {{solibs}} {{libs}} -o {{output}}" | 189 command = "$compiler_prefix $cxx {{ldflags}} {{inputs}} {{solibs}} {{libs}}
-o {{output}}" |
| 186 outputs = [ | 190 outputs = [ |
| 187 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}", | 191 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}", |
| 188 ] | 192 ] |
| 189 description = "$cxx ... -o {{output}}" | 193 description = "$compiler_prefix $cxx ... -o {{output}}" |
| 190 pool = ":link_pool" | 194 pool = ":link_pool" |
| 191 } | 195 } |
| 192 | 196 |
| 193 tool("stamp") { | 197 tool("stamp") { |
| 194 command = "touch {{output}}" | 198 command = "touch {{output}}" |
| 195 } | 199 } |
| 196 | 200 |
| 197 tool("copy") { | 201 tool("copy") { |
| 198 command = "ln -f {{source}} {{output}} 2>/dev/null || (rm -rf {{output}} &&
cp -af {{source}} {{output}})" | 202 command = "ln -f {{source}} {{output}} 2>/dev/null || (rm -rf {{output}} &&
cp -af {{source}} {{output}})" |
| 199 } | 203 } |
| 200 } | 204 } |
| OLD | NEW |