diff --git a/scripts/base.py b/scripts/base.py index 655c06c..f38a823 100644 --- a/scripts/base.py +++ b/scripts/base.py @@ -737,6 +737,18 @@ def save_as_script(path, lines): file.close() return +def join_scripts(files, path): + files_data = [] + for file in files: + with open(get_path(file), "r") as content: + files_data.append(content) + + dst_content = "\n".join(files_data) + dst_file = codecs.open(path, "w", "utf-8") + dst_file.write(dst_content) + dst_file.close() + return + def get_file_last_modified_url(url): curl_command = 'curl --head %s' % (url) popen = subprocess.Popen(curl_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) diff --git a/scripts/build_js.py b/scripts/build_js.py index e9fbb22..9504d7c 100644 --- a/scripts/build_js.py +++ b/scripts/build_js.py @@ -41,6 +41,28 @@ def make(): build_interface(base_dir + "/../desktop-apps/common/loginpage/build") base.copy_file(base_dir + "/../desktop-apps/common/loginpage/deploy/index.html", out_dir + "/desktop/index.html") + + # mobile + if config.check_option("module", "mobile"): + build_sdk_native(base_dir + "/../sdkjs/build") + base.create_dir(out_dir + "/mobile") + base.create_dir(out_dir + "/mobile/sdkjs") + vendor_dir_src = base_dir + "/../web-apps/vendor/" + sdk_dir_src = base_dir + "/../sdkjs/deploy/sdkjs/" + # banners + base.join_scripts([vendor_dir_src + "xregexp/xregexp-all-min.js", + vendor_dir_src + "underscore/underscore-min.js", + sdk_dir_src + "common/Native/native.js", + sdk_dir_src + "common/Native/Wrappers/common.js", + sdk_dir_src + "common/Native/jquery_native.js"], + out_dir + "/mobile/sdkjs/banners.js") + base.create_dir(out_dir + "/mobile/sdkjs/word") + base.join_scripts([out_dir + "/mobile/sdkjs/banners.js", sdk_dir_src + "word/sdk-all-min.js", sdk_dir_src + "word/sdk-all.js"], out_dir + "mobile/sdkjs/word/script.bin") + base.create_dir(out_dir + "/mobile/sdkjs/cell") + base.join_scripts([out_dir + "/mobile/sdkjs/banners.js", sdk_dir_src + "cell/sdk-all-min.js", sdk_dir_src + "cell/sdk-all.js"], out_dir + "mobile/sdkjs/cell/script.bin") + base.create_dir(out_dir + "/mobile/sdkjs/slide") + base.join_scripts([out_dir + "/mobile/sdkjs/banners.js", sdk_dir_src + "slide/sdk-all-min.js", sdk_dir_src + "slide/sdk-all.js"], out_dir + "mobile/sdkjs/slide/script.bin") + base.delete_file(out_dir + "/mobile/sdkjs/banners.js") return # JS build @@ -70,6 +92,12 @@ def build_sdk_builder(directory): _run_grunt(directory, ["--level=ADVANCED"] + base.sdkjs_addons_param()) return +def build_sdk_native(directory): + #_run_npm_cli(directory) + _run_npm(directory) + _run_grunt(directory, ["--level=ADVANCED", "--mobile=true"] + base.sdkjs_addons_param()) + return + def build_js_develop(root_dir): #_run_npm_cli(root_dir + "/sdkjs/build") _run_npm(root_dir + "/sdkjs/build") diff --git a/scripts/deploy.py b/scripts/deploy.py index aad022b..5a9963e 100644 --- a/scripts/deploy.py +++ b/scripts/deploy.py @@ -7,6 +7,7 @@ import deploy_builder import deploy_server import deploy_develop import deploy_core +import deploy_mobile def make(): if config.check_option("module", "desktop"): @@ -19,4 +20,6 @@ def make(): deploy_develop.make() if config.check_option("module", "core"): deploy_core.make() + if config.check_option("module", "mobile"): + deploy_mobile.make() return diff --git a/scripts/deploy_mobile.py b/scripts/deploy_mobile.py new file mode 100644 index 0000000..7eb411f --- /dev/null +++ b/scripts/deploy_mobile.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python + +import config +import base + +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.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, "UnicodeConverter") + base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "graphics") + base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "PdfWriter") + base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "PdfReader") + 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, "HtmlFile") + base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "HtmlRenderer") + base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "doctrenderer") + + if ("ios" == platform) or (0 == platform.find("android")): + base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "x2t") + else: + base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir, "x2t") + + # icu + if (0 == platform.find("win")): + base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/icudt58.dll", root_dir + "/icudt58.dll") + base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/icuuc58.dll", root_dir + "/icuuc58.dll") + + if (0 == platform.find("linux")): + base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.so.58", root_dir + "/libicudata.so.58") + base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.so.58", root_dir + "/libicuuc.so.58") + + 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") + + # app + base.generate_doctrenderer_config(root_dir + "/DoctRenderer.config", "./", "builder") + base.copy_dir(git_dir + "/DocumentBuilder/empty", root_dir + "/empty") + + # js + base.copy_dir(base_dir + "/js/" + branding + "/mobile/sdkjs", root_dir + "/sdkjs") + + # correct ios frameworks + if ("ios" == platform): + base.generate_plist(root_dir) + + if (0 == platform.find("mac")): + base.mac_correct_rpath_x2t(root_dir) + return