1echo -e " 2 \033[31m buildConfig \033[0m 3 \033[32m recover \033[0m 4" 5back_file="./productdefine/common/inherit/rich_back.json" 6read -p "请输入你的选择buildConfig|recover:" char 7case $char in 8buildConfig) 9 if [ -e "$back_file" ]; then 10 echo "已备份且配置" 11 else 12 echo "正在备份" 13 cp ./productdefine/common/inherit/rich.json ./productdefine/common/inherit/rich_back.json 14 cp ./base/hiviewdfx/hilog/interfaces/js/kits/napi/BUILD.gn ./base/hiviewdfx/hilog/interfaces/js/kits/napi/BUILD_back.gn 15 cp ./developtools/profiler/hidebug/interfaces/js/kits/napi/BUILD.gn ./developtools/profiler/hidebug/interfaces/js/kits/napi/BUILD_back.gn 16 cp ./base/hiviewdfx/hichecker/interfaces/js/kits/napi/BUILD.gn ./base/hiviewdfx/hichecker/interfaces/js/kits/napi/BUILD_back.gn 17 cp ./foundation/resourceschedule/ffrt/BUILD.gn ./foundation/resourceschedule/ffrt/BUILD_back.gn 18 cp ./third_party/skia/BUILD.gn ./third_party/skia/BUILD_back.gn 19 cp ./third_party/skia/bundle.json ./third_party/skia/bundle_back.json 20 cp ./foundation/communication/netstack/interfaces/kits/c/net_ssl/BUILD.gn ./foundation/communication/netstack/interfaces/kits/c/net_ssl/BUILD_back.gn 21 echo "备份完成" 22 echo "======================================" 23 echo "" 24 echo "STEP 1: add skia component" 25 echo "" 26 echo "======================================" 27 28 target_file="./productdefine/common/inherit/rich.json" 29 sed -i '/"thirdparty"/{n;d}' ${target_file} 30 31 target_line=' "components": [\ 32 {\ 33 "component": "skia",\ 34 "features": []\ 35 },' 36 37 key_line='"thirdparty"' 38 39 sed -i "/${key_line}/a\ ${target_line}" ${target_file} 40 41 echo "======================================" 42 echo "" 43 echo " STEP 2: modify napi api" 44 echo "" 45 echo "======================================" 46 47 api_target_gn_file="./base/hiviewdfx/hilog/interfaces/js/kits/napi/BUILD.gn" 48 49 sed -i '/output_name/s/libhilog/libhilognapi/g' ${api_target_gn_file} 50 51 api_target_file="./developtools/profiler/hidebug/interfaces/js/kits/napi/BUILD.gn" 52 api_target_line='output_name = "libhidebugnapi"' 53 sed -i "/ohos_shared_library/a\ ${api_target_line}" ${api_target_file} 54 55 api_target_file="./base/hiviewdfx/hichecker/interfaces/js/kits/napi/BUILD.gn" 56 api_target_line='output_name = "napihichecker"' 57 sed -i "/ohos_shared_library/a\ ${api_target_line}" ${api_target_file} 58 59 api_target_file="./foundation/resourceschedule/ffrt/BUILD.gn" 60 api_target_line='output_name = "libffrt_ndk"' 61 sed -i "/ohos_shared_library/a\ ${api_target_line}" ${api_target_file} 62 63 api_target_file="./third_party/skia/BUILD.gn" 64 sed -i 's/^.*"-flto=thin".*/#&/' ${api_target_file} 65 sed -i 's/^.*"-fvisibility=hidden".*/#&/' ${api_target_file} 66 sed -i 's/^.*"-fvisibility-inlines-hidden".*/#&/' ${api_target_file} 67 68 api_target_file="./foundation/communication/netstack/interfaces/kits/c/net_ssl/BUILD.gn" 69 sed -i 's/^.*output_name = "net_ssl".*/#&/' ${api_target_file} 70 sed -i 's/^.*output_extension = "so".*/#&/' ${api_target_file} 71 72 api_target_line='output_name = "net_ssl"' 73 sed -i "/^.*libnet_ssl_ndk/a\ ${api_target_line}" ${api_target_file} 74 75 echo "======================================" 76 echo "" 77 echo " STEP 3: add dm compilation" 78 echo "" 79 echo "======================================" 80 81 skia_bundle_file="./third_party/skia/bundle.json" 82 83 skia_pivot_line='inner_kits' 84 skia_target_line='"test": [ "//third_party/skia:dm(//build/toolchain/ohos:ohos_clang_arm)" ]' 85 86 sed -i '/inner_kits/{n;d}' ${skia_bundle_file} 87 sed -i "/${skia_pivot_line}/a\ ${skia_target_line}" ${skia_bundle_file} 88 fi 89 ;; 90recover) 91 if [ -e "$back_file" ]; then 92 mv ./productdefine/common/inherit/rich_back.json ./productdefine/common/inherit/rich.json 93 mv ./base/hiviewdfx/hilog/interfaces/js/kits/napi/BUILD_back.gn ./base/hiviewdfx/hilog/interfaces/js/kits/napi/BUILD.gn 94 mv ./developtools/profiler/hidebug/interfaces/js/kits/napi/BUILD_back.gn ./developtools/profiler/hidebug/interfaces/js/kits/napi/BUILD.gn 95 mv ./base/hiviewdfx/hichecker/interfaces/js/kits/napi/BUILD_back.gn ./base/hiviewdfx/hichecker/interfaces/js/kits/napi/BUILD.gn 96 97 mv ./foundation/resourceschedule/ffrt/BUILD_back.gn ./foundation/resourceschedule/ffrt/BUILD.gn 98 mv ./third_party/skia/BUILD_back.gn ./third_party/skia/BUILD.gn 99 mv ./third_party/skia/bundle_back.json ./third_party/skia/bundle.json 100 mv ./foundation/communication/netstack/interfaces/kits/c/net_ssl/BUILD_back.gn ./foundation/communication/netstack/interfaces/kits/c/net_ssl/BUILD.gn 101 echo "恢复完成" 102 else 103 echo "没有备份的文件可恢复" 104 fi 105 ;; 106*) 107 echo "输入不正确!请重新输入。" 108 ;; 109esac 110