| # Copyright 2019 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. |
| |
| script_path = "//third_party/typescript" |
| |
| # Defines a target that compiles .ts files using TypeScript. |
| # A temporary tsconfig.json is generated which uses the |
| # tsconfig.json in this folder as basis. |
| # |
| # Variables: |
| # sources: |
| # List of TypeScript files to typecheck and generate |
| # Example: |
| # ts_library("main") { |
| # sources = ["bar.ts", "foo.ts"] |
| # } |
| template("ts_library") { |
| action(target_name) { |
| script = "//third_party/typescript/ts_library.py" |
| |
| forward_variables_from(invoker, [ "sources", "visibility" ]) |
| |
| args = [ |
| "--tsconfig_location", |
| rebase_path(target_gen_dir, root_build_dir) + "/tsconfig.json", |
| ] |
| args += [ "--sources" ] + rebase_path(sources, root_build_dir) |
| |
| output_files = [ "$target_gen_dir/tsconfig.json" ] |
| |
| foreach(src, sources) { |
| js_renamed_path = |
| get_path_info(src, "dir") + "/" + get_path_info(src, "name") + ".js" |
| output_files += [ "$target_gen_dir/$js_renamed_path" ] |
| } |
| |
| outputs = output_files |
| } |
| } |
| |
| set_defaults("ts_library") { |
| # Build output should be private and directories should export all relevant |
| # components in a group |
| visibility = [":*"] |
| } |