# iOS_Search Path $(SRCROOT)和$(PROJECT_DIR)

本文解释了$(SRCROOT)和$(PROJECT_DIR)在项目配置中的含义,前者指项目根目录,后者指整个项目的位置。

$(SRCROOT)代表的时项目根目录下

$(PROJECT_DIR)代表的是整个项目


cmake_minimum_required(VERSION 3.16) project(SocketTool VERSION 0.1 LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) set(PROJECT_SOURCES main.cpp HMI/src/networkdebuggingassistant.cpp HMI/include/networkdebuggingassistant.h HMI/ui/networkdebuggingassistant.ui ) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) qt_add_executable(SocketTool MANUAL_FINALIZATION ${PROJECT_SOURCES} ) # Define target properties for Android with Qt 6 as: # set_property(TARGET SocketTool APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR # ${CMAKE_CURRENT_SOURCE_DIR}/android) # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation else() if(ANDROID) add_library(SocketTool SHARED ${PROJECT_SOURCES} ) # Define properties for Android with Qt 5 after find_package() calls as: # set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") else() add_executable(SocketTool ${PROJECT_SOURCES} ) endif() endif() target_link_libraries(SocketTool PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # If you are developing for iOS or macOS you should consider setting an # explicit, fixed bundle identifier manually though. if(${QT_VERSION} VERSION_LESS 6.1.0) set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.SocketTool) endif() set_target_properties(SocketTool PROPERTIES ${BUNDLE_ID_OPTION} MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE ) include(GNUInstallDirs) install(TARGETS SocketTool BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) if(QT_VERSION_MAJOR EQUAL 6) qt_finalize_executable(SocketTool) endif() 逐句解析
06-14
# -*- coding : UTF-8 -*- import json import os import time from android.XmlExtract import XmlExtractor from common import Config, TextHandler, FormatSpecifierParser, TranslateInfoExcelWriter from common.NoGenerator import NoGenerator from common.TranslateInfo import TranslateInfo from common.TranslateInfoExcelWriter import ExcelTranslateWriteInfo from flutter.JsonExtract import JsonExtractor from ios.StringsExtract import StringsExtractor if __name__ == "__main__": # -------------------提取iOS新增文案------------------- ios_extract_root_path = os.path.join(Config.CURRENT_WORKSPACE_ROOT_PATH, Config.CURRENT_WORKSPACE_EXTRACT_NAME, &#39;iOS&#39;) ios_pre_en_dir = os.path.join(ios_extract_root_path, &#39;en.lproj.old&#39;) ios_cur_en_dir = os.path.join(ios_extract_root_path, &#39;en.lproj.new&#39;) ios_new_english_list = StringsExtractor(ios_pre_en_dir, ios_cur_en_dir).extract() # -------------------提取Android新增文案------------------- android_extract_root_path = os.path.join(Config.CURRENT_WORKSPACE_ROOT_PATH, Config.CURRENT_WORKSPACE_EXTRACT_NAME, &#39;Android&#39;) android_old_xml_file = os.path.join(android_extract_root_path, &#39;values-old&#39;, &#39;strings.xml&#39;) android_new_xml_file = os.path.join(android_extract_root_path, &#39;values-new&#39;, &#39;strings.xml&#39;) android_new_english_list = XmlExtractor(android_old_xml_file, android_new_xml_file).extract() # -------------------提取Flutter新增文案------------------- flutter_extract_root_path = os.path.join(Config.CURRENT_WORKSPACE_ROOT_PATH, Config.CURRENT_WORKSPACE_EXTRACT_NAME, &#39;Flutter&#39;) flutter_old_json_file = os.path.join(flutter_extract_root_path, &#39;l10n-old&#39;, &#39;intl_en.arb&#39;) flutter_new_json_file = os.path.join(flutter_extract_root_path, &#39;l10n-new&#39;, &#39;intl_en.arb&#39;) flutter_new_english_list = JsonExtractor(flutter_old_json_file, flutter_new_json_file).extract() # -------------------提取PC新增文案------------------- # pc_extract_root_path = os.path.join(Config.CURRENT_WORKSPACE_ROOT_PATH, Config.CURRENT_WORKSPACE_EXTRACT_NAME, # &#39;PC&#39;) # flutter_old_json_file = os.path.join(flutter_extract_root_path, &#39;l10n-old&#39;, &#39;intl_en.arb&#39;) # flutter_new_json_file = os.path.join(flutter_extract_root_path, &#39;l10n-new&#39;, &#39;intl_en.arb&#39;) # flutter_new_english_list = JsonExtractor(flutter_old_json_file, flutter_new_json_file).extract() # -------------------iosandroid合并操作------------------- new_english_dict = dict() ios_only_new_english_size = 0 android_only_new_english_size = 0 flutter_only_new_english_size = 0 common_new_english_size = 0 # 用于获取或生成新增文案的截图编号 no_generator = NoGenerator(Config.DECO_ALL_STRINGS_PATH) for val in ios_new_english_list: if val not in android_new_english_list: ios_only_new_english_size += + 1 new_english_dict[val] = TranslateInfo(val, &#39;&#39;, &#39;iOS&#39;, no_generator.get_no(val, &#39;iOS&#39;), TextHandler.build_translate_note(val)) for val in android_new_english_list: if val not in ios_new_english_list: android_only_new_english_size += 1 new_english_dict[val] = TranslateInfo(val, &#39;&#39;, &#39;Android&#39;, no_generator.get_no(val, &#39;Android&#39;), TextHandler.build_translate_note(val)) for val in ios_new_english_list: if val in android_new_english_list: common_new_english_size += 1 new_english_dict[val] = TranslateInfo(val, &#39;&#39;, &#39;Android/iOS&#39;, no_generator.get_no(val, &#39;Android/iOS&#39;), TextHandler.build_translate_note(val)) for val in flutter_new_english_list: if val in ios_new_english_list or val in android_new_english_list: continue flutter_only_new_english_size += 1 new_english_dict[val] = TranslateInfo(val, &#39;&#39;, &#39;Flutter&#39;, no_generator.get_no(val, &#39;Flutter&#39;), TextHandler.build_translate_note(val)) # print(*ios_new_english_list, sep="\n") print("iOS新增数目:{0}", len(ios_new_english_list)) print("iOS独有数目:{0}", ios_only_new_english_size) print("Android新增数目:{0}", len(android_new_english_list)) print("Android独有数目:{0}", android_only_new_english_size) print("Android/iOS共有数目:{0}", common_new_english_size) print("Flutter新增数目:{0}", len(flutter_new_english_list)) print("Flutter独有数目:{0}", flutter_only_new_english_size) no_generator.print_generate_result() # -------------------预处理包含占位符的文案------------------- standard_excel_dict = dict() standard_excel_array = list() refer_excel_array = list() for key in new_english_dict.keys(): new_info = new_english_dict[key] print(new_info.no, &#39;\n&#39; + new_info.english) if new_info.platform == &#39;iOS&#39;: english_format = FormatSpecifierParser.replace_ios_format_char(new_info.english) else: print(new_info.english) english_format = FormatSpecifierParser.replace_java_format_char(new_info.english) if english_format in standard_excel_dict.keys(): standard_info = standard_excel_dict[english_format] if not standard_info.platform == new_info.platform: standard_info.platform = &#39;Android/iOS&#39; # standard_info.no = 204734 # print(type(new_info.no), new_info.no, new_info.english, new_info.platform) if new_info.no < standard_info.no: standard_info.no = new_info.no else: standard_excel_dict[english_format] = ExcelTranslateWriteInfo(english_format, new_info.translate_result, new_info.platform, new_info.no, new_info.note) if not new_info.english == english_format: refer_excel_array.append( ExcelTranslateWriteInfo(new_info.english, english_format, new_info.platform, new_info.no, new_info.note)) real_string_no = no_generator.latest_max_no standard_excel_key = list(standard_excel_dict.keys()) standard_excel_key.sort() extract_root_path = os.path.join(Config.WORKSPACE_BASE_PATH + r&#39;\Deco_APP_Sprint_All&#39;) locale_json_dst_file = os.path.join(os.path.join(extract_root_path), &#39;all_englist_translate_dict_new.text&#39;) with open(locale_json_dst_file, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f: all_english_translate_dict = json.load(f) for x in standard_excel_key: standard_info = standard_excel_dict[x] if int(float(standard_info.no.strip())) > no_generator.latest_max_no: real_string_no += 1 standard_info.no = real_string_no # standard_excel_array.append(standard_info) if standard_info.english in all_english_translate_dict.keys(): print(&#39;已有翻译 &#39;, standard_info.english) else: pass standard_excel_array.append(standard_info) #过滤已有翻译 # print(standard_info.english, standard_info.platform,standard_info.translate_result) standard_excel_array.sort(key=lambda item: item.english) refer_excel_array.sort(key=lambda item: item.english) # -------------------生成Excel操作------------------- date = time.strftime("%Y%m%d", time.localtime()) new_excel_name = Config.CURRENT_WORKSPACE_NEW_EXCEL_NAME_PREFIX + date + "(" + str(real_string_no) + ")" + ".xls" standard_excel_path = os.path.join(Config.CURRENT_WORKSPACE_ROOT_PATH, Config.CURRENT_WORKSPACE_EXTRACT_NAME, new_excel_name) refer_excel_path = os.path.join(Config.CURRENT_WORKSPACE_ROOT_PATH, Config.CURRENT_WORKSPACE_COMMON_NAME, &#39;Refer_Standard.xls&#39;) TranslateInfoExcelWriter.create_excel_with_all_info_list(standard_excel_path, standard_excel_array) TranslateInfoExcelWriter.create_excel_with_all_info_list(refer_excel_path, refer_excel_array) 代码解析
最新发布
10-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值