16d528ed9Sopenharmony_ci# Copyright 2019 The Chromium Authors. All rights reserved. 26d528ed9Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be 36d528ed9Sopenharmony_ci# found in the LICENSE file. 46d528ed9Sopenharmony_ci 56d528ed9Sopenharmony_citemplate("mac_toolchain") { 66d528ed9Sopenharmony_ci toolchain(target_name) { 76d528ed9Sopenharmony_ci assert(defined(invoker.toolchain_args), 86d528ed9Sopenharmony_ci "Toolchains must declare toolchain_args") 96d528ed9Sopenharmony_ci 106d528ed9Sopenharmony_ci toolchain_args = { 116d528ed9Sopenharmony_ci forward_variables_from(invoker.toolchain_args, "*") 126d528ed9Sopenharmony_ci } 136d528ed9Sopenharmony_ci 146d528ed9Sopenharmony_ci cc = "clang" 156d528ed9Sopenharmony_ci cxx = "clang++" 166d528ed9Sopenharmony_ci 176d528ed9Sopenharmony_ci tool("link") { 186d528ed9Sopenharmony_ci output = "{{output_dir}}/{{target_output_name}}{{output_extension}}" 196d528ed9Sopenharmony_ci rspfile = output + ".rsp" 206d528ed9Sopenharmony_ci rspfile_content = "{{inputs_newline}}" 216d528ed9Sopenharmony_ci 226d528ed9Sopenharmony_ci outputs = [ output ] 236d528ed9Sopenharmony_ci command = "$cxx {{ldflags}} -o $output -Wl,-filelist,$rspfile {{libs}} {{solibs}} {{frameworks}}" 246d528ed9Sopenharmony_ci description = "LINK {{output}}" 256d528ed9Sopenharmony_ci 266d528ed9Sopenharmony_ci default_output_dir = "{{root_out_dir}}" 276d528ed9Sopenharmony_ci default_output_extension = "" 286d528ed9Sopenharmony_ci output_prefix = "" 296d528ed9Sopenharmony_ci } 306d528ed9Sopenharmony_ci 316d528ed9Sopenharmony_ci tool("solink") { 326d528ed9Sopenharmony_ci dylib = "{{output_dir}}/{{target_output_name}}{{output_extension}}" 336d528ed9Sopenharmony_ci rspfile = dylib + ".rsp" 346d528ed9Sopenharmony_ci rspfile_content = "{{inputs_newline}}" 356d528ed9Sopenharmony_ci 366d528ed9Sopenharmony_ci outputs = [ dylib ] 376d528ed9Sopenharmony_ci command = "$cxx -dynamiclib {{ldflags}} -o $dylib -Wl,-filelist,$rspfile {{libs}} {{solibs}} {{frameworks}}" 386d528ed9Sopenharmony_ci description = "SOLINK {{output}}" 396d528ed9Sopenharmony_ci 406d528ed9Sopenharmony_ci default_output_dir = "{{root_out_dir}}" 416d528ed9Sopenharmony_ci default_output_extension = ".dylib" 426d528ed9Sopenharmony_ci output_prefix = "lib" 436d528ed9Sopenharmony_ci } 446d528ed9Sopenharmony_ci 456d528ed9Sopenharmony_ci tool("cc") { 466d528ed9Sopenharmony_ci depfile = "{{output}}.d" 476d528ed9Sopenharmony_ci precompiled_header_type = "gcc" 486d528ed9Sopenharmony_ci command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}" 496d528ed9Sopenharmony_ci depsformat = "gcc" 506d528ed9Sopenharmony_ci description = "CC {{output}}" 516d528ed9Sopenharmony_ci outputs = [ "{{target_out_dir}}/{{label_name}}/{{source_name_part}}.o" ] 526d528ed9Sopenharmony_ci } 536d528ed9Sopenharmony_ci 546d528ed9Sopenharmony_ci tool("cxx") { 556d528ed9Sopenharmony_ci depfile = "{{output}}.d" 566d528ed9Sopenharmony_ci precompiled_header_type = "gcc" 576d528ed9Sopenharmony_ci command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}" 586d528ed9Sopenharmony_ci depsformat = "gcc" 596d528ed9Sopenharmony_ci description = "CXX {{output}}" 606d528ed9Sopenharmony_ci outputs = [ "{{target_out_dir}}/{{label_name}}/{{source_name_part}}.o" ] 616d528ed9Sopenharmony_ci } 626d528ed9Sopenharmony_ci 636d528ed9Sopenharmony_ci tool("objc") { 646d528ed9Sopenharmony_ci depfile = "{{output}}.d" 656d528ed9Sopenharmony_ci precompiled_header_type = "gcc" 666d528ed9Sopenharmony_ci command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{framework_dirs}} {{cflags}} {{cflags_objc}} -c {{source}} -o {{output}}" 676d528ed9Sopenharmony_ci depsformat = "gcc" 686d528ed9Sopenharmony_ci description = "OBJC {{output}}" 696d528ed9Sopenharmony_ci outputs = [ "{{target_out_dir}}/{{label_name}}/{{source_name_part}}.o" ] 706d528ed9Sopenharmony_ci } 716d528ed9Sopenharmony_ci 726d528ed9Sopenharmony_ci tool("objcxx") { 736d528ed9Sopenharmony_ci depfile = "{{output}}.d" 746d528ed9Sopenharmony_ci precompiled_header_type = "gcc" 756d528ed9Sopenharmony_ci command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{framework_dirs}} {{cflags}} {{cflags_objcc}} -c {{source}} -o {{output}}" 766d528ed9Sopenharmony_ci depsformat = "gcc" 776d528ed9Sopenharmony_ci description = "OBJCXX {{output}}" 786d528ed9Sopenharmony_ci outputs = [ "{{target_out_dir}}/{{label_name}}/{{source_name_part}}.o" ] 796d528ed9Sopenharmony_ci } 806d528ed9Sopenharmony_ci 816d528ed9Sopenharmony_ci tool("stamp") { 826d528ed9Sopenharmony_ci command = "touch {{output}}" 836d528ed9Sopenharmony_ci description = "STAMP {{output}}" 846d528ed9Sopenharmony_ci } 856d528ed9Sopenharmony_ci 866d528ed9Sopenharmony_ci tool("copy_bundle_data") { 876d528ed9Sopenharmony_ci command = "rm -rf {{output}} && cp -a {{source}} {{output}}" 886d528ed9Sopenharmony_ci description = "COPY_BUNDLE_DATA {{output}}" 896d528ed9Sopenharmony_ci } 906d528ed9Sopenharmony_ci } 916d528ed9Sopenharmony_ci} 926d528ed9Sopenharmony_ci 936d528ed9Sopenharmony_cimac_toolchain("clang_x86") { 946d528ed9Sopenharmony_ci toolchain_args = { 956d528ed9Sopenharmony_ci current_cpu = "x86" 966d528ed9Sopenharmony_ci current_os = "mac" 976d528ed9Sopenharmony_ci } 986d528ed9Sopenharmony_ci} 996d528ed9Sopenharmony_ci 1006d528ed9Sopenharmony_cimac_toolchain("clang_x64") { 1016d528ed9Sopenharmony_ci toolchain_args = { 1026d528ed9Sopenharmony_ci current_cpu = "x64" 1036d528ed9Sopenharmony_ci current_os = "mac" 1046d528ed9Sopenharmony_ci } 1056d528ed9Sopenharmony_ci} 1066d528ed9Sopenharmony_ci 1076d528ed9Sopenharmony_cimac_toolchain("clang_arm") { 1086d528ed9Sopenharmony_ci toolchain_args = { 1096d528ed9Sopenharmony_ci current_cpu = "arm" 1106d528ed9Sopenharmony_ci current_os = "mac" 1116d528ed9Sopenharmony_ci } 1126d528ed9Sopenharmony_ci} 1136d528ed9Sopenharmony_ci 1146d528ed9Sopenharmony_cimac_toolchain("clang_arm64") { 1156d528ed9Sopenharmony_ci toolchain_args = { 1166d528ed9Sopenharmony_ci current_cpu = "arm64" 1176d528ed9Sopenharmony_ci current_os = "mac" 1186d528ed9Sopenharmony_ci } 1196d528ed9Sopenharmony_ci} 120