From 6355a49b7ad08309af443bba7619352dce0918db Mon Sep 17 00:00:00 2001 From: yfwang6 Date: Wed, 10 Aug 2022 18:19:47 +0800 Subject: [PATCH] wangyongfei6@huawei.com interface d.ts reconstruction Signed-off-by: yfwang6 Change-Id: I82814a4a5bb0ff7f0ba3fca96733b250622011ce --- BUILD.gn | 189 +++++----------------------- api/@internal/{ => ets}/global.d.ts | 0 process_internal.py | 79 ++++++++++++ remove_list.json | 27 ++++ 4 files changed, 136 insertions(+), 159 deletions(-) rename api/@internal/{ => ets}/global.d.ts (100%) create mode 100755 process_internal.py create mode 100644 remove_list.json diff --git a/BUILD.gn b/BUILD.gn index 3173ec811..3f503cae7 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -17,126 +17,34 @@ import("//build/ohos_var.gni") import("//build/templates/metadata/module_info.gni") import("interface_config.gni") -ohos_copy("ets_internal_api") { - sources = [ - "api/@internal/ets/index.d.ts", - "api/@internal/ets/lifecycle.d.ts", - "api/@internal/global.d.ts", - "api/common/full/featureability.d.ts", - ] - outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ] - module_source_dir = target_out_dir + "/$target_name" - module_install_name = "" +template("ohos_copy_internal") { + forward_variables_from(invoker, "*") + iv_input = invoker.iv_input + ohos_copy(target_name) { + process_script = "//interface/sdk-js/process_internal.py" + process_arguments = [ + "--input", + rebase_path(iv_input, root_build_dir), + "--remove", + rebase_path("//interface/sdk-js/remove_list.json", root_build_dir), + "--ispublic", + "${sdk_build_public}", + "--name", + "$target_name", + ] + sources = exec_script(process_script, process_arguments, "value") + outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ] + module_source_dir = target_out_dir + "/$target_name" + module_install_name = "" + } } -ohos_copy("ets_component") { - sources = [ - "api/@internal/component/ets/ability_component.d.ts", - "api/@internal/component/ets/action_sheet.d.ts", - "api/@internal/component/ets/alert_dialog.d.ts", - "api/@internal/component/ets/alphabet_indexer.d.ts", - "api/@internal/component/ets/animator.d.ts", - "api/@internal/component/ets/badge.d.ts", - "api/@internal/component/ets/blank.d.ts", - "api/@internal/component/ets/button.d.ts", - "api/@internal/component/ets/calendar.d.ts", - "api/@internal/component/ets/canvas.d.ts", - "api/@internal/component/ets/checkbox.d.ts", - "api/@internal/component/ets/checkboxgroup.d.ts", - "api/@internal/component/ets/circle.d.ts", - "api/@internal/component/ets/column.d.ts", - "api/@internal/component/ets/column_split.d.ts", - "api/@internal/component/ets/common.d.ts", - "api/@internal/component/ets/common_ts_ets_api.d.ts", - "api/@internal/component/ets/context_menu.d.ts", - "api/@internal/component/ets/counter.d.ts", - "api/@internal/component/ets/custom_dialog_controller.d.ts", - "api/@internal/component/ets/data_panel.d.ts", - "api/@internal/component/ets/date_picker.d.ts", - "api/@internal/component/ets/divider.d.ts", - "api/@internal/component/ets/ellipse.d.ts", - "api/@internal/component/ets/enums.d.ts", - "api/@internal/component/ets/flex.d.ts", - "api/@internal/component/ets/for_each.d.ts", - "api/@internal/component/ets/form_component.d.ts", - "api/@internal/component/ets/gauge.d.ts", - "api/@internal/component/ets/gesture.d.ts", - "api/@internal/component/ets/grid.d.ts", - "api/@internal/component/ets/gridItem.d.ts", - "api/@internal/component/ets/grid_col.d.ts", - "api/@internal/component/ets/grid_container.d.ts", - "api/@internal/component/ets/grid_row.d.ts", - "api/@internal/component/ets/hyperlink.d.ts", - "api/@internal/component/ets/image.d.ts", - "api/@internal/component/ets/image_animator.d.ts", - "api/@internal/component/ets/index-full.d.ts", - "api/@internal/component/ets/lazy_for_each.d.ts", - "api/@internal/component/ets/line.d.ts", - "api/@internal/component/ets/list.d.ts", - "api/@internal/component/ets/list_item.d.ts", - "api/@internal/component/ets/loading_progress.d.ts", - "api/@internal/component/ets/marquee.d.ts", - "api/@internal/component/ets/navigation.d.ts", - "api/@internal/component/ets/navigator.d.ts", - "api/@internal/component/ets/page_transition.d.ts", - "api/@internal/component/ets/panel.d.ts", - "api/@internal/component/ets/path.d.ts", - "api/@internal/component/ets/pattern_lock.d.ts", - "api/@internal/component/ets/plugin_component.d.ts", - "api/@internal/component/ets/polygon.d.ts", - "api/@internal/component/ets/polyline.d.ts", - "api/@internal/component/ets/progress.d.ts", - "api/@internal/component/ets/qrcode.d.ts", - "api/@internal/component/ets/radio.d.ts", - "api/@internal/component/ets/rating.d.ts", - "api/@internal/component/ets/rect.d.ts", - "api/@internal/component/ets/refresh.d.ts", - "api/@internal/component/ets/relative_container.d.ts", - "api/@internal/component/ets/remote_window.d.ts", - "api/@internal/component/ets/rich_text.d.ts", - "api/@internal/component/ets/row.d.ts", - "api/@internal/component/ets/row_split.d.ts", - "api/@internal/component/ets/scroll.d.ts", - "api/@internal/component/ets/scroll_bar.d.ts", - "api/@internal/component/ets/search.d.ts", - "api/@internal/component/ets/select.d.ts", - "api/@internal/component/ets/shape.d.ts", - "api/@internal/component/ets/sidebar.d.ts", - "api/@internal/component/ets/slider.d.ts", - "api/@internal/component/ets/span.d.ts", - "api/@internal/component/ets/stack.d.ts", - "api/@internal/component/ets/state_management.d.ts", - "api/@internal/component/ets/stepper.d.ts", - "api/@internal/component/ets/stepper_item.d.ts", - "api/@internal/component/ets/swiper.d.ts", - "api/@internal/component/ets/tab_content.d.ts", - "api/@internal/component/ets/tabs.d.ts", - "api/@internal/component/ets/text.d.ts", - "api/@internal/component/ets/text_area.d.ts", - "api/@internal/component/ets/text_clock.d.ts", - "api/@internal/component/ets/text_input.d.ts", - "api/@internal/component/ets/text_picker.d.ts", - "api/@internal/component/ets/text_timer.d.ts", - "api/@internal/component/ets/time_picker.d.ts", - "api/@internal/component/ets/toggle.d.ts", - "api/@internal/component/ets/units.d.ts", - "api/@internal/component/ets/video.d.ts", - "api/@internal/component/ets/web.d.ts", - "api/@internal/component/ets/xcomponent.d.ts", - ] - if (sdk_build_public) { - sources -= [ - "api/@internal/component/ets/ability_component.d.ts", - "api/@internal/component/ets/animator.d.ts", - "api/@internal/component/ets/calendar.d.ts", - "api/@internal/component/ets/form_component.d.ts", - "api/@internal/component/ets/plugin_component.d.ts", - "api/@internal/component/ets/remote_window.d.ts", - ] - } - outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ] - module_source_dir = target_out_dir + "/$target_name" - module_install_name = "" +ohos_copy_internal("ets_internal_api") { + iv_input = "//interface/sdk-js/api/@internal/ets" +} + +ohos_copy_internal("ets_component") { + iv_input = "//interface/sdk-js/api/@internal/component/ets" } ohos_copy("common_api") { @@ -189,34 +97,12 @@ ohos_declaration_template("ohos_declaration_ets") { ohos_declaration_template("ohos_declaration_common") { } -ohos_copy("internal_full") { - sources = [ - "api/common/full/console.d.ts", - "api/common/full/dom.d.ts", - "api/common/full/featureability.d.ts", - "api/common/full/global.d.ts", - "api/common/full/index.d.ts", - "api/common/full/viewmodel.d.ts", - ] - outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ] - module_source_dir = target_out_dir + "/$target_name" - module_install_name = "" +ohos_copy_internal("internal_full") { + iv_input = "//interface/sdk-js/api/common/full" } -ohos_copy("internal_lite") { - sources = [ - "api/common/lite/console.d.ts", - "api/common/lite/featureability.d.ts", - "api/common/lite/global.d.ts", - "api/common/lite/index.d.ts", - "api/common/lite/viewmodel.d.ts", - ] - if (sdk_build_public) { - sources -= [ "api/common/lite/featureability.d.ts" ] - } - outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ] - module_source_dir = target_out_dir + "/$target_name" - module_install_name = "" +ohos_copy_internal("internal_lite") { + iv_input = "//interface/sdk-js/api/common/lite" } ohos_copy("syscap_check") { @@ -226,21 +112,6 @@ ohos_copy("syscap_check") { module_install_name = "" } -ohos_copy("system_api") { - sources = [ - "api/@system.app.d.ts", - "api/@system.cipher.d.ts", - "api/@system.configuration.d.ts", - "api/@system.file.d.ts", - "api/@system.mediaquery.d.ts", - "api/@system.prompt.d.ts", - "api/@system.router.d.ts", - ] - outputs = [ target_out_dir + "/$target_name/{{source_file_part}}" ] - module_source_dir = target_out_dir + "/$target_name" - module_install_name = "" -} - ohos_copy("config") { sources = [ "api/config/css", diff --git a/api/@internal/global.d.ts b/api/@internal/ets/global.d.ts similarity index 100% rename from api/@internal/global.d.ts rename to api/@internal/ets/global.d.ts diff --git a/process_internal.py b/process_internal.py new file mode 100755 index 000000000..ae1cab930 --- /dev/null +++ b/process_internal.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (c) 2021-2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import sys +import optparse +import json +import re + + +def copy_files(options): + with open(options.remove) as f: + remove_dict = json.load(f) + if options.name in remove_dict: + rm_name = remove_dict[options.name] + if 'base' in rm_name: + file_list = rm_name['base'] + else: + file_list = [] + for file in os.listdir(options.input): + src = os.path.join(options.input, file) + if os.path.isfile(src) and ( + not 'global_remove' in rm_name or ( + 'global_remove' in rm_name and ( + not file in rm_name['global_remove']))): + format_src = format_path(src) + if options.ispublic == 'true': + if not 'sdk_build_public_remove' in rm_name: + file_list.append(format_src) + else: + if not file in rm_name['sdk_build_public_remove']: + file_list.append(format_src) + else: + file_list.append(format_src) + else: + file_list = [] + for file in os.listdir(options.input): + src = os.path.join(options.input, file) + if os.path.isfile(src): + format_src = format_path(src) + file_list.append(format_src) + return file_list + + +def format_path(filepath): + return re.sub(r'.*(?=api/)', '', filepath); + + +def parse_args(args): + parser = optparse.OptionParser() + parser.add_option('--input', help='d.ts document input path') + parser.add_option('--remove', help='d.ts to be remove path') + parser.add_option('--ispublic', help='whether or not sdk build public') + parser.add_option('--name', help='module label name') + options, _ = parser.parse_args(args) + return options + + +def main(argv): + options = parse_args(argv) + result = copy_files(options) + print(json.dumps(result)) + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/remove_list.json b/remove_list.json new file mode 100644 index 000000000..6100b0e89 --- /dev/null +++ b/remove_list.json @@ -0,0 +1,27 @@ +{ + "ets_internal_api": { + "base": [ + "api/common/full/featureability.d.ts" + ] + }, + "ets_component": { + "global_remove": [ + "inspector.d.ts", + "matrix2d.d.ts", + "middle_class.d.ts" + ], + "sdk_build_public_remove": [ + "ability_component.d.ts", + "animator.d.ts", + "calendar.d.ts", + "form_component.d.ts", + "plugin_component.d.ts", + "remote_window.d.ts" + ] + }, + "internal_lite": { + "sdk_build_public_remove": [ + "featureability.d.ts" + ] + } +} \ No newline at end of file