Correct Info.plist files for mac frameworks

This commit is contained in:
Mikhail Lobotskiy
2025-07-21 17:59:40 +04:00
parent de99e3f62e
commit d4231e0efa
7 changed files with 32 additions and 14 deletions

View File

@ -977,7 +977,7 @@ def generate_doctrenderer_config(path, root, product, vendor = "", dictionaries
file.close()
return
def generate_plist_framework_folder(file):
def generate_plist_framework_folder(file, platform):
bundle_id_url = "com.onlyoffice."
if ("" != get_env("PUBLISHER_BUNDLE_ID")):
bundle_id_url = get_env("PUBLISHER_BUNDLE_ID")
@ -1011,11 +1011,14 @@ def generate_plist_framework_folder(file):
content += "\t<string>????</string>\n"
content += "\t<key>CFBundleVersion</key>\n"
content += "\t<string>" + bundle_version[0] + "." + bundle_version[1] + "." + bundle_version[2] + "</string>\n"
content += "\t<key>MinimumOSVersion</key>\n"
content += "\t<string>13.0</string>\n"
if platform.find("ios") == 0:
content += "\t<key>MinimumOSVersion</key>\n"
content += "\t<string>13.0</string>\n"
content += "</dict>\n"
content += "</plist>"
if platform.find("mac") == 0:
file += "/Resources"
fileDst = file + "/Info.plist"
if is_file(fileDst):
delete_file(fileDst)
@ -1025,7 +1028,11 @@ def generate_plist_framework_folder(file):
fileInfo.close()
return
def generate_plist(path):
def generate_plist(path, platform, max_depth=512):
if not config.check_option("config", "bundle_dylibs"):
return
if max_depth == 0:
return
src_folder = path
if ("/" != path[-1:]):
src_folder += "/"
@ -1033,9 +1040,9 @@ def generate_plist(path):
for file in glob.glob(src_folder):
if (is_dir(file)):
if file.endswith(".framework"):
generate_plist_framework_folder(file)
generate_plist_framework_folder(file, platform)
else:
generate_plist(file)
generate_plist(file, platform, max_depth - 1)
return
def correct_bundle_identifier(bundle_identifier):

View File

@ -117,12 +117,13 @@ def make():
# correct ios frameworks
if ("ios" == platform):
base.generate_plist(root_dir)
base.generate_plist(root_dir, "ios")
if (0 == platform.find("linux")):
base.linux_correct_rpath_docbuilder(root_dir)
if (0 == platform.find("mac")):
base.generate_plist(root_dir, "mac", max_depth=1)
base.mac_correct_rpath_x2t(root_dir)
base.mac_correct_rpath_docbuilder(root_dir)

View File

@ -67,6 +67,10 @@ def make():
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, archive_dir, "metafiletester")
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, archive_dir, "dictionariestester")
# correct mac frameworks
if (0 == platform.find("mac")):
base.generate_plist(archive_dir, "mac", max_depth=1)
# js cache
base.generate_doctrenderer_config(archive_dir + "/DoctRenderer.config", "./", "builder", "", "./dictionaries")
base.create_x2t_js_cache(archive_dir, "core", platform)

View File

@ -281,6 +281,8 @@ def make():
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir + "/converter", "allthemesgen")
if (0 == platform.find("mac")):
# gen plists with max_depth 2 because frameworks are only located in root_dir and converter subdirectory
base.generate_plist(root_dir, "mac", max_depth=2)
base.mac_correct_rpath_desktop(root_dir)
if isMacArmPlaformOnIntel:

View File

@ -18,7 +18,7 @@ def deploy_fonts(git_dir, root_dir, platform=""):
if (platform == "android"):
base.copy_dir(git_dir + "/core-fonts/dejavu", root_dir + "/fonts/dejavu")
base.copy_dir(git_dir + "/core-fonts/liberation", root_dir + "/fonts/liberation")
return
return
def make():
base_dir = base.get_script_dir() + "/../out"
@ -35,7 +35,7 @@ def make():
if base.get_env("DESTDIR_BUILD_OVERRIDE") != "":
return
if (base.is_dir(root_dir)):
base.delete_dir(root_dir)
base.create_dir(root_dir)
@ -84,7 +84,7 @@ def make():
if (0 == platform.find("mac")):
base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.58.dylib", root_dir + "/libicudata.58.dylib")
base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.58.dylib", root_dir + "/libicuuc.58.dylib")
if (0 == platform.find("android")):
#base.copy_file(core_dir + "/Common/3dParty/icu/android/build/" + platform[8:] + "/libicudata.so", root_dir + "/libicudata.so")
#base.copy_file(core_dir + "/Common/3dParty/icu/android/build/" + platform[8:] + "/libicuuc.so", root_dir + "/libicuuc.so")
@ -95,7 +95,7 @@ def make():
# correct ios frameworks
if ("ios" == platform):
base.generate_plist(root_dir)
base.generate_plist(root_dir, "ios")
deploy_fonts(git_dir, root_dir)
base.copy_dictionaries(git_dir + "/dictionaries", root_dir + "/dictionaries", True, False)
@ -115,7 +115,7 @@ def make():
deploy_fonts(git_dir, root_dir, "android")
base.copy_dictionaries(git_dir + "/dictionaries", root_dir + "/dictionaries", True, False)
# app
base.generate_doctrenderer_config(root_dir + "/DoctRenderer.config", "./", "builder", "", "./dictionaries")
base.generate_doctrenderer_config(root_dir + "/DoctRenderer.config", "./", "builder", "", "./dictionaries")
libs_dir = root_dir + "/lib"
base.create_dir(libs_dir + "/arm64-v8a")
base.copy_files(base_dir + "/android_arm64_v8a/" + branding + "/mobile/*.so", libs_dir + "/arm64-v8a")

View File

@ -18,7 +18,7 @@ def make():
if base.get_env("DESTDIR_BUILD_OVERRIDE") != "":
return
if (base.is_dir(root_dir)):
base.delete_dir(root_dir)
base.create_dir(root_dir)
@ -37,7 +37,7 @@ def make():
# correct ios frameworks
if ("ios" == platform):
base.generate_plist(root_dir)
base.generate_plist(root_dir, "ios")
for native_platform in platforms:
if native_platform == "android":

View File

@ -112,6 +112,10 @@ def make():
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, converter_dir, "docbuilder")
base.copy_dir(git_dir + "/document-templates/new/en-US", converter_dir + "/empty")
# correct mac frameworks
if (0 == platform.find("mac")):
base.generate_plist(converter_dir, "mac", max_depth=1)
# js
js_dir = root_dir
base.copy_dir(base_dir + "/js/" + branding + "/builder/sdkjs", js_dir + "/sdkjs")