tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

extension_bundle_data.gni (2202B)


      1 # Copyright 2021 The Chromium Authors
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 # Template to package an app extension into an app.
      6 #
      7 # Parameters
      8 #
      9 #   extension_target:
     10 #     name of the extension target to package; the extension
     11 #     bundle name must be derived from the target name
     12 #
     13 #   extension_name:
     14 #     (optional) name of the extension appex file; derived from
     15 #     the target name if omitted
     16 #
     17 template("extension_bundle_data") {
     18   assert(defined(invoker.extension_target),
     19          "extension_target must be defined for $target_name")
     20 
     21   _extension_name = get_label_info(invoker.extension_target, "name") + ".appex"
     22   if (defined(invoker.extension_name)) {
     23     _extension_name = invoker.extension_name
     24   }
     25 
     26   _extension_dir = "PlugIns"
     27   if (defined(invoker.extension_dir)) {
     28     _extension_dir = invoker.extension_dir
     29   }
     30 
     31   if (defined(invoker.variants) && invoker.variants != []) {
     32     _variants = []
     33     foreach(_variant, invoker.variants) {
     34       _variants += [
     35         {
     36           name = _variant.name
     37         },
     38       ]
     39     }
     40   } else {
     41     _variants = []
     42   }
     43 
     44   _target_name = target_name
     45   if (_variants != []) {
     46     foreach(_variant, _variants) {
     47       _extension_target =
     48           get_label_info(invoker.extension_target, "label_no_toolchain") +
     49           "_variants_${_variant.name}" + "(" +
     50           get_label_info(invoker.extension_target, "toolchain") + ")"
     51 
     52       bundle_data("${_target_name}_variants_${_variant.name}") {
     53         forward_variables_from(invoker, [ "testonly" ])
     54         public_deps = [ _extension_target ]
     55         outputs =
     56             [ "{{bundle_contents_dir}}/$_extension_dir/{{source_file_part}}" ]
     57         sources = [ get_label_info(_extension_target, "root_out_dir") +
     58                     "/variants/${_variant.name}/$_extension_name" ]
     59       }
     60     }
     61   }
     62 
     63   bundle_data(_target_name) {
     64     forward_variables_from(invoker, [ "testonly" ])
     65     public_deps = [ invoker.extension_target ]
     66     outputs = [ "{{bundle_contents_dir}}/$_extension_dir/{{source_file_part}}" ]
     67     sources = [ get_label_info(invoker.extension_target, "root_out_dir") +
     68                 "/$_extension_name" ]
     69   }
     70 }