| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- # Copyright 2014 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- toolchain("gcc") {
- tool("cc") {
- depfile = "{{output}}.d"
- command = "gcc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
- depsformat = "gcc"
- description = "CC {{output}}"
- outputs =
- [ "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o" ]
- }
- tool("cxx") {
- depfile = "{{output}}.d"
- command = "g++ -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
- depsformat = "gcc"
- description = "CXX {{output}}"
- outputs =
- [ "{{source_out_dir}}/{{target_output_name}}.{{source_name_part}}.o" ]
- }
- tool("alink") {
- command = "ar rcs {{output}} {{inputs}}"
- description = "AR {{target_output_name}}{{output_extension}}"
- outputs =
- [ "{{target_out_dir}}/{{target_output_name}}{{output_extension}}" ]
- default_output_extension = ".a"
- output_prefix = "lib"
- }
- tool("solink") {
- soname = "{{target_output_name}}{{output_extension}}" # e.g. "libfoo.so".
- sofile = "{{output_dir}}/$soname"
- rspfile = soname + ".rsp"
- if (is_mac) {
- os_specific_option = "-install_name @executable_path/$sofile"
- rspfile_content = "{{inputs}} {{solibs}} {{libs}}"
- } else {
- os_specific_option = "-Wl,-soname=$soname"
- rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whole-archive {{libs}}"
- }
- command = "g++ -shared {{ldflags}} -o $sofile $os_specific_option @$rspfile"
- description = "SOLINK $soname"
- # Use this for {{output_extension}} expansions unless a target manually
- # overrides it (in which case {{output_extension}} will be what the target
- # specifies).
- default_output_extension = ".so"
- # Use this for {{output_dir}} expansions unless a target manually overrides
- # it (in which case {{output_dir}} will be what the target specifies).
- default_output_dir = "{{root_out_dir}}"
- outputs = [ sofile ]
- link_output = sofile
- depend_output = sofile
- output_prefix = "lib"
- }
- tool("link") {
- outfile = "{{target_output_name}}{{output_extension}}"
- rspfile = "$outfile.rsp"
- if (is_mac) {
- command = "g++ {{ldflags}} -o $outfile @$rspfile {{solibs}} {{libs}}"
- } else {
- command = "g++ {{ldflags}} -o $outfile -Wl,--start-group @$rspfile {{solibs}} -Wl,--end-group {{libs}}"
- }
- description = "LINK $outfile"
- default_output_dir = "{{root_out_dir}}"
- rspfile_content = "{{inputs}}"
- outputs = [ outfile ]
- print("link tool")
- }
- tool("stamp") {
- command = "touch {{output}}"
- description = "STAMP {{output}}"
- }
- tool("copy") {
- command = "cp -af {{source}} {{output}}"
- description = "COPY {{source}} {{output}}"
- }
- }
|