mirror of
https://github.com/ONLYOFFICE/build_tools.git
synced 2025-12-22 09:07:07 +00:00
124 lines
6.0 KiB
Python
124 lines
6.0 KiB
Python
#!/usr/bin/env python
|
|
|
|
import config
|
|
import base
|
|
|
|
def exclude_arch(directory, frameworks):
|
|
for lib in frameworks:
|
|
base.cmd("lipo", ["-remove", "arm64", directory + "/" + lib + ".framework/" + lib, "-o", directory + "/" + lib + ".framework/" + lib])
|
|
return
|
|
|
|
def deploy_fonts(git_dir, root_dir, platform=""):
|
|
base.create_dir(root_dir + "/fonts")
|
|
base.copy_file(git_dir + "/core-fonts/ASC.ttf", root_dir + "/fonts/ASC.ttf")
|
|
base.copy_dir(git_dir + "/core-fonts/asana", root_dir + "/fonts/asana")
|
|
base.copy_dir(git_dir + "/core-fonts/caladea", root_dir + "/fonts/caladea")
|
|
base.copy_dir(git_dir + "/core-fonts/crosextra", root_dir + "/fonts/crosextra")
|
|
base.copy_dir(git_dir + "/core-fonts/openoffice", root_dir + "/fonts/openoffice")
|
|
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
|
|
|
|
def make():
|
|
base_dir = base.get_script_dir() + "/../out"
|
|
git_dir = base.get_script_dir() + "/../.."
|
|
core_dir = git_dir + "/core"
|
|
branding = config.branding()
|
|
|
|
platforms = config.option("platform").split()
|
|
for native_platform in platforms:
|
|
if not native_platform in config.platforms:
|
|
continue
|
|
|
|
root_dir = base_dir + "/" + native_platform + "/" + branding + "/mobile"
|
|
|
|
if base.get_env("DESTDIR_BUILD_OVERRIDE") != "":
|
|
return
|
|
|
|
if (base.is_dir(root_dir)):
|
|
base.delete_dir(root_dir)
|
|
base.create_dir(root_dir)
|
|
|
|
qt_dir = base.qt_setup(native_platform)
|
|
platform = native_platform
|
|
|
|
core_build_dir = core_dir + "/build"
|
|
if ("" != config.option("branding")):
|
|
core_build_dir += ("/" + config.option("branding"))
|
|
|
|
platform_postfix = platform + base.qt_dst_postfix()
|
|
|
|
# x2t
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "kernel")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "kernel_network")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "UnicodeConverter")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "graphics")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "PdfFile")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "DjVuFile")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "XpsFile")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "OFDFile")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "HtmlFile2")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "doctrenderer")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "Fb2File")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "EpubFile")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "IWorkFile")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "HWPFile")
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "DocxRenderer")
|
|
base.copy_file(git_dir + "/sdkjs/pdf/src/engine/cmap.bin", root_dir + "/cmap.bin")
|
|
|
|
if (0 == platform.find("win") or 0 == platform.find("linux") or 0 == platform.find("mac")):
|
|
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir, "x2t")
|
|
else:
|
|
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "x2t")
|
|
|
|
# icu
|
|
base.deploy_icu(core_dir, root_dir, platform)
|
|
|
|
# js
|
|
base.copy_dir(base_dir + "/js/" + branding + "/mobile/sdkjs", root_dir + "/sdkjs")
|
|
|
|
# correct ios frameworks
|
|
if ("ios" == platform):
|
|
base.for_each_framework(root_dir, "ios", callbacks=[base.generate_plist, base.generate_xcprivacy])
|
|
deploy_fonts(git_dir, root_dir)
|
|
base.copy_dictionaries(git_dir + "/dictionaries", root_dir + "/dictionaries", True, False)
|
|
|
|
if (0 == platform.find("mac")):
|
|
base.mac_correct_rpath_x2t(root_dir)
|
|
|
|
for native_platform in platforms:
|
|
if native_platform == "android":
|
|
# make full version
|
|
root_dir = base_dir + "/android/" + branding + "/mobile"
|
|
if (base.is_dir(root_dir)):
|
|
base.delete_dir(root_dir)
|
|
base.create_dir(root_dir)
|
|
# js
|
|
base.copy_dir(base_dir + "/js/" + branding + "/mobile/sdkjs", root_dir + "/sdkjs")
|
|
# fonts
|
|
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")
|
|
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")
|
|
base.copy_files(base_dir + "/android_arm64_v8a/" + branding + "/mobile/*.so.*", libs_dir + "/arm64-v8a")
|
|
base.copy_files(base_dir + "/android_arm64_v8a/" + branding + "/mobile/*.dat", libs_dir + "/arm64-v8a")
|
|
base.create_dir(libs_dir + "/armeabi-v7a")
|
|
base.copy_files(base_dir + "/android_armv7/" + branding + "/mobile/*.so", libs_dir + "/armeabi-v7a")
|
|
base.copy_files(base_dir + "/android_armv7/" + branding + "/mobile/*.so.*", libs_dir + "/armeabi-v7a")
|
|
base.copy_files(base_dir + "/android_armv7/" + branding + "/mobile/*.dat", libs_dir + "/armeabi-v7a")
|
|
base.create_dir(libs_dir + "/x86")
|
|
base.copy_files(base_dir + "/android_x86/" + branding + "/mobile/*.so", libs_dir + "/x86")
|
|
base.copy_files(base_dir + "/android_x86/" + branding + "/mobile/*.so.*", libs_dir + "/x86")
|
|
base.copy_files(base_dir + "/android_x86/" + branding + "/mobile/*.dat", libs_dir + "/x86")
|
|
base.create_dir(libs_dir + "/x86_64")
|
|
base.copy_files(base_dir + "/android_x86_64/" + branding + "/mobile/*.so", libs_dir + "/x86_64")
|
|
base.copy_files(base_dir + "/android_x86_64/" + branding + "/mobile/*.so.*", libs_dir + "/x86_64")
|
|
base.copy_files(base_dir + "/android_x86_64/" + branding + "/mobile/*.dat", libs_dir + "/x86_64")
|
|
break
|
|
|
|
return
|