tor-browser

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

copy_ex.gni (2533B)


      1 # Copyright 2019 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 # Copy a list of file into a destination directory. Potentially renaming
      6 # files are they are copied. This also ensures that symlinks are followed
      7 # during the copy (i.e. the symlinks are never copied, only their content).
      8 #
      9 # Variables:
     10 #  dest: Destination directory path.
     11 #  sources: List of source files or directories to copy to dest.
     12 #  renaming_sources: Optional list of source file paths that will be renamed
     13 #    during the copy operation. If provided, renaming_destinations is required.
     14 #  renaming_destinations: Optional list of destination file paths, required
     15 #    when renaming_sources is provided. Both lists should have the same size
     16 #    and matching entries.
     17 #  args: Optional. Additionnal arguments to the copy_ex.py script.
     18 #
     19 #  The following variables have the usual GN meaning: data, deps, inputs,
     20 #  outputs, testonly, visibility.
     21 
     22 import("//chromium/build/config/python.gni")
     23 
     24 template("copy_ex") {
     25   action_with_pydeps(target_name) {
     26     forward_variables_from(invoker,
     27                            [
     28                              "data",
     29                              "deps",
     30                              "public_deps",
     31                              "testonly",
     32                              "visibility",
     33                            ])
     34     sources = []
     35     if (defined(invoker.sources)) {
     36       sources += invoker.sources
     37     }
     38     outputs = []
     39     if (defined(invoker.outputs)) {
     40       outputs += invoker.outputs
     41     }
     42     if (defined(invoker.inputs)) {
     43       inputs = invoker.inputs
     44     }
     45 
     46     script = "//chromium/build/android/gyp/copy_ex.py"
     47 
     48     args = [
     49       "--dest",
     50       rebase_path(invoker.dest, root_build_dir),
     51     ]
     52     rebased_sources = rebase_path(sources, root_build_dir)
     53     args += [ "--files=$rebased_sources" ]
     54 
     55     if (defined(invoker.args)) {
     56       args += invoker.args
     57     }
     58 
     59     if (defined(invoker.renaming_sources) &&
     60         defined(invoker.renaming_destinations)) {
     61       sources += invoker.renaming_sources
     62       renaming_destinations = invoker.renaming_destinations
     63       outputs +=
     64           get_path_info(rebase_path(renaming_destinations, ".", invoker.dest),
     65                         "abspath")
     66       rebased_renaming_sources =
     67           rebase_path(invoker.renaming_sources, root_build_dir)
     68       args += [ "--renaming-sources=$rebased_renaming_sources" ]
     69       args += [ "--renaming-destinations=$renaming_destinations" ]
     70     }
     71   }
     72 }