# Copyright 2019 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # Copy a list of file into a destination directory. Potentially renaming # files are they are copied. This also ensures that symlinks are followed # during the copy (i.e. the symlinks are never copied, only their content). # # Variables: # dest: Destination directory path. # sources: List of source files or directories to copy to dest. # renaming_sources: Optional list of source file paths that will be renamed # during the copy operation. If provided, renaming_destinations is required. # renaming_destinations: Optional list of destination file paths, required # when renaming_sources is provided. Both lists should have the same size # and matching entries. # args: Optional. Additionnal arguments to the copy_ex.py script. # # The following variables have the usual GN meaning: data, deps, inputs, # outputs, testonly, visibility. import("//build/config/python.gni") template("copy_ex") { action_with_pydeps(target_name) { forward_variables_from(invoker, [ "data", "deps", "public_deps", "testonly", "visibility", ]) sources = [] if (defined(invoker.sources)) { sources += invoker.sources } outputs = [] if (defined(invoker.outputs)) { outputs += invoker.outputs } if (defined(invoker.inputs)) { inputs = invoker.inputs } script = "//build/android/gyp/copy_ex.py" args = [ "--dest", rebase_path(invoker.dest, root_build_dir), ] rebased_sources = rebase_path(sources, root_build_dir) args += [ "--files=$rebased_sources" ] if (defined(invoker.args)) { args += invoker.args } if (defined(invoker.renaming_sources) && defined(invoker.renaming_destinations)) { sources += invoker.renaming_sources renaming_destinations = invoker.renaming_destinations outputs += get_path_info(rebase_path(renaming_destinations, ".", invoker.dest), "abspath") rebased_renaming_sources = rebase_path(invoker.renaming_sources, root_build_dir) args += [ "--renaming-sources=$rebased_renaming_sources" ] args += [ "--renaming-destinations=$renaming_destinations" ] } } }