mirror of
https://github.com/ONLYOFFICE/build_tools.git
synced 2026-04-07 14:06:31 +08:00
Compare commits
99 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a8a3487749 | |||
| e31c77d42c | |||
| e06a076e30 | |||
| e421a16469 | |||
| bc3a6cd4e9 | |||
| 5b54f203b6 | |||
| 7a115ed3b4 | |||
| 203fa4a554 | |||
| 1ae3df953c | |||
| a06b1a3eae | |||
| 1008de5dcf | |||
| 7e5a509c32 | |||
| 72ae1f18fd | |||
| b5ad4ae8a7 | |||
| e1132269e5 | |||
| 2c43b6e49a | |||
| 2599806cb1 | |||
| 00d31b2354 | |||
| 9d1d24811b | |||
| cf4cac9482 | |||
| 3537d7c05d | |||
| f2022f2607 | |||
| 23d96dbd4d | |||
| a651981b61 | |||
| 6376218441 | |||
| cff2f7256a | |||
| a7c6f1f81a | |||
| fa23cb1efe | |||
| 2c6a2e81ec | |||
| cf0f2feb29 | |||
| b35ba7f6d5 | |||
| 659ef4b804 | |||
| 610fb0e711 | |||
| d641c85aea | |||
| 0a4aaa0583 | |||
| d6e85aa352 | |||
| 191c895d6b | |||
| 1acd5bf8bb | |||
| 86a3dcedd9 | |||
| 1a4e6aa5ab | |||
| bdd4b7ee45 | |||
| fd24c14da4 | |||
| e15a138ff7 | |||
| 4389f35509 | |||
| 8b2c7cac42 | |||
| b2f22ff710 | |||
| 2edf26d70a | |||
| e0d2229b16 | |||
| cec0423b14 | |||
| c2646afd40 | |||
| 03cf7e26b7 | |||
| 4649f8b854 | |||
| 0d81353be1 | |||
| 0fb05dd5e8 | |||
| a38d97c302 | |||
| c0ead7a4c7 | |||
| 7a142c714f | |||
| e1f0b3bdcc | |||
| c4cf3710a7 | |||
| 22666b8bba | |||
| 811a82a211 | |||
| 84b81d2df0 | |||
| 05fa273558 | |||
| 8b23a074a3 | |||
| c6cc482b92 | |||
| 9ccad7a417 | |||
| 39dd4e3aa4 | |||
| 1a35214b2b | |||
| 0d1f975687 | |||
| c218aebea6 | |||
| 0b0277923f | |||
| 6e69de0acc | |||
| 54838d542b | |||
| a3a7289d42 | |||
| 130933db36 | |||
| 8030ac6beb | |||
| 8381ef6c24 | |||
| 880dc8450b | |||
| 105d69337c | |||
| fc2e7b5382 | |||
| a8b9d2ce3e | |||
| 6e1db8eb00 | |||
| ff1c0c9b41 | |||
| 0c111433c8 | |||
| e0754402d8 | |||
| e86f2b3e9f | |||
| 71692df973 | |||
| e1b94bf226 | |||
| 83cc90fbbd | |||
| 5dac0c57cb | |||
| 46fc1d8142 | |||
| aa2df4f6df | |||
| 9ca7fea042 | |||
| 9661121b38 | |||
| e6b8396d2c | |||
| 0df4b93182 | |||
| f4a3c8dc0f | |||
| c61ba0cb77 | |||
| 83bdcb6ada |
33
.github/workflows/update-version.yml
vendored
Normal file
33
.github/workflows/update-version.yml
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
name: Update hard-coded version
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
|
||||
update-version:
|
||||
if: >-
|
||||
${{ contains(github.ref, 'refs/heads/hotfix/v') ||
|
||||
contains(github.ref, 'refs/heads/release/v') }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
token: ${{ secrets.PUSH_TOKEN }}
|
||||
|
||||
- name: Set version
|
||||
run: >-
|
||||
echo "${{ github.ref_name }}" |
|
||||
awk '{gsub(/.+\/v/,"version=");print;}' >> $GITHUB_ENV
|
||||
|
||||
- name: Save version
|
||||
run: echo "${{ env.version }}" > version
|
||||
|
||||
- name: Commit & push changes
|
||||
uses: EndBug/add-and-commit@v8
|
||||
with:
|
||||
author_name: github-actions[bot]
|
||||
author_email: github-actions[bot]@users.noreply.github.com
|
||||
message: Update hard-coded version to v${{ env.version }}
|
||||
add: version
|
||||
14
build.pro
14
build.pro
@ -9,10 +9,10 @@ include($$PWD/common.pri)
|
||||
CONFIG += ordered
|
||||
|
||||
core_windows {
|
||||
CONFIG += core_and_multimedia
|
||||
desktop:CONFIG += core_and_multimedia
|
||||
}
|
||||
core_linux {
|
||||
CONFIG += core_and_multimedia
|
||||
desktop:CONFIG += core_and_multimedia
|
||||
}
|
||||
core_mac {
|
||||
CONFIG += no_desktop_apps
|
||||
@ -33,6 +33,8 @@ addSubProject(kernel, $$CORE_ROOT_DIR/Common/kernel.pro,\
|
||||
cryptopp)
|
||||
addSubProject(unicodeconverter, $$CORE_ROOT_DIR/UnicodeConverter/UnicodeConverter.pro,\
|
||||
kernel)
|
||||
addSubProject(network, $$CORE_ROOT_DIR/Common/Network/network.pro,\
|
||||
kernel)
|
||||
addSubProject(graphics, $$CORE_ROOT_DIR/DesktopEditor/graphics/pro/graphics.pro,\
|
||||
kernel unicodeconverter)
|
||||
addSubProject(pdfwriter, $$CORE_ROOT_DIR/PdfWriter/PdfWriter.pro,\
|
||||
@ -46,7 +48,7 @@ addSubProject(htmlrenderer, $$CORE_ROOT_DIR/HtmlRenderer/htmlrenderer.pro,\
|
||||
addSubProject(pdfreader, $$CORE_ROOT_DIR/PdfReader/PdfReader.pro,\
|
||||
kernel unicodeconverter graphics pdfwriter htmlrenderer)
|
||||
addSubProject(htmlfile2, $$CORE_ROOT_DIR/HtmlFile2/HtmlFile2.pro,\
|
||||
kernel unicodeconverter graphics)
|
||||
kernel unicodeconverter graphics network)
|
||||
addSubProject(doctrenderer, $$CORE_ROOT_DIR/DesktopEditor/doctrenderer/doctrenderer.pro,\
|
||||
kernel unicodeconverter graphics)
|
||||
addSubProject(fb2file, $$CORE_ROOT_DIR/Fb2File/Fb2File.pro,\
|
||||
@ -105,3 +107,9 @@ desktop {
|
||||
}
|
||||
}
|
||||
|
||||
mobile {
|
||||
message(mobile)
|
||||
!desktop {
|
||||
addSubProject(hunspell, $$CORE_ROOT_DIR/Common/3dParty/hunspell/qt/hunspell.pro)
|
||||
}
|
||||
}
|
||||
1
defaults
1
defaults
@ -1,2 +1,3 @@
|
||||
sdkjs-plugin="photoeditor, macros, ocr, translator, thesaurus, youtube, highlightcode"
|
||||
sdkjs-plugin-server="speech, zotero, mendeley"
|
||||
sdkjs-addons="sdkjs-forms"
|
||||
|
||||
@ -1,34 +1,39 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
sys.path.append('scripts')
|
||||
sys.path.append('scripts/develop')
|
||||
sys.path.append('scripts/develop/vendor')
|
||||
sys.path.append('scripts/core_common')
|
||||
sys.path.append('scripts/core_common/modules')
|
||||
import optparse
|
||||
import config
|
||||
import base
|
||||
import packages
|
||||
|
||||
# parse configuration
|
||||
config.parse()
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("--branding", action="store", type="string", dest="branding", default="", help="provides branding path")
|
||||
parser.add_option("--product", action="store", type="string", dest="product", default="", help="defines product")
|
||||
parser.add_option("--package", action="store", type="string", dest="package", default="", help="defines packages")
|
||||
|
||||
(options, args) = parser.parse_args(sys.argv[1:])
|
||||
configOptions = vars(options)
|
||||
|
||||
branding = configOptions["branding"]
|
||||
product = configOptions["product"]
|
||||
package_list = configOptions["package"]
|
||||
base_dir = base.get_script_dir(__file__)
|
||||
|
||||
base.set_env("BUILD_PLATFORM", config.option("platform"))
|
||||
|
||||
# branding
|
||||
if ("1" != base.get_env("OO_RUNNING_BRANDING")) and ("" != config.option("branding")):
|
||||
branding_dir = base_dir + "/../" + config.option("branding")
|
||||
if ("" != branding):
|
||||
branding_dir = base_dir + "/../" + branding
|
||||
|
||||
if base.is_file(branding_dir + "/build_tools/make_packages.py"):
|
||||
base.check_build_version(branding_dir + "/build_tools")
|
||||
base.set_env("OO_RUNNING_BRANDING", "1")
|
||||
base.set_env("OO_BRANDING", config.option("branding"))
|
||||
base.cmd_in_dir(branding_dir + "/build_tools", "python", ["make_packages.py"])
|
||||
base.cmd_in_dir(branding_dir + "/build_tools",
|
||||
"python3", ["make_packages.py",
|
||||
'--product', product,
|
||||
'--package', package_list
|
||||
])
|
||||
exit(0)
|
||||
|
||||
base.check_build_version(base_dir)
|
||||
|
||||
# build packages
|
||||
packages.make()
|
||||
packages.make(product, package_list)
|
||||
|
||||
@ -31,6 +31,11 @@ def host_platform():
|
||||
def is_os_64bit():
|
||||
return platform.machine().endswith('64')
|
||||
|
||||
def is_os_arm():
|
||||
if -1 == platform.machine().find('arm'):
|
||||
return False
|
||||
return True
|
||||
|
||||
def is_python_64bit():
|
||||
return (struct.calcsize("P") == 8)
|
||||
|
||||
@ -460,6 +465,7 @@ def get_repositories():
|
||||
result["server"] = [False, False]
|
||||
result.update(get_server_addons())
|
||||
result["document-server-integration"] = [False, False]
|
||||
result["document-templates"] = [False, False]
|
||||
|
||||
if (config.check_option("module", "server") or config.check_option("platform", "ios")):
|
||||
result["core-fonts"] = [False, False]
|
||||
@ -560,6 +566,8 @@ def qt_config(platform):
|
||||
config_param += " release"
|
||||
if ("mac_arm64" == platform):
|
||||
config_param += " apple_silicon use_javascript_core"
|
||||
if config.check_option("module", "mobile"):
|
||||
config_param += " support_web_socket"
|
||||
return config_param
|
||||
|
||||
def qt_major_version():
|
||||
@ -730,7 +738,7 @@ def generate_plist(path):
|
||||
content += "\t<key>CFBundleGetInfoString</key>\n"
|
||||
content += "\t<string>Created by " + bundle_creator + "</string>\n"
|
||||
content += "\t<key>CFBundleIdentifier</key>\n"
|
||||
content += "\t<string>" + bundle_id_url + name + "</string>\n"
|
||||
content += "\t<string>" + bundle_id_url + correct_bundle_identifier(name) + "</string>\n"
|
||||
content += "\t<key>CFBundlePackageType</key>\n"
|
||||
content += "\t<string>FMWK</string>\n"
|
||||
content += "\t<key>CFBundleShortVersionString</key>\n"
|
||||
@ -754,6 +762,9 @@ def generate_plist(path):
|
||||
|
||||
return
|
||||
|
||||
def correct_bundle_identifier(bundle_identifier):
|
||||
return re.sub("[^a-zA-Z0-9\.\-]", "-", bundle_identifier)
|
||||
|
||||
def get_sdkjs_addons():
|
||||
result = {}
|
||||
if ("" == config.option("sdkjs-addons")):
|
||||
@ -961,9 +972,10 @@ def mac_correct_rpath_x2t(dir):
|
||||
mac_correct_rpath_library("icuuc.58", ["icudata.58"])
|
||||
mac_correct_rpath_library("UnicodeConverter", ["icuuc.58", "icudata.58", "kernel"])
|
||||
mac_correct_rpath_library("kernel", [])
|
||||
mac_correct_rpath_library("kernel_network", ["kernel"])
|
||||
mac_correct_rpath_library("graphics", ["UnicodeConverter", "kernel"])
|
||||
mac_correct_rpath_library("doctrenderer", ["UnicodeConverter", "kernel", "graphics"])
|
||||
mac_correct_rpath_library("HtmlFile2", ["UnicodeConverter", "kernel", "graphics"])
|
||||
mac_correct_rpath_library("doctrenderer", ["UnicodeConverter", "kernel", "kernel_network", "graphics"])
|
||||
mac_correct_rpath_library("HtmlFile2", ["UnicodeConverter", "kernel", "kernel_network", "graphics"])
|
||||
mac_correct_rpath_library("EpubFile", ["kernel", "HtmlFile2", "graphics"])
|
||||
mac_correct_rpath_library("Fb2File", ["UnicodeConverter", "kernel", "graphics"])
|
||||
mac_correct_rpath_library("HtmlRenderer", ["UnicodeConverter", "kernel", "graphics"])
|
||||
@ -973,7 +985,7 @@ def mac_correct_rpath_x2t(dir):
|
||||
mac_correct_rpath_library("XpsFile", ["kernel", "UnicodeConverter", "graphics", "PdfWriter"])
|
||||
cmd("chmod", ["-v", "+x", "./x2t"])
|
||||
cmd("install_name_tool", ["-add_rpath", "@executable_path", "./x2t"], True)
|
||||
mac_correct_rpath_binary("./x2t", ["icudata.58", "icuuc.58", "UnicodeConverter", "kernel", "graphics", "PdfWriter", "HtmlRenderer", "PdfReader", "XpsFile", "DjVuFile", "HtmlFile2", "Fb2File", "EpubFile", "doctrenderer"])
|
||||
mac_correct_rpath_binary("./x2t", ["icudata.58", "icuuc.58", "UnicodeConverter", "kernel", "kernel_network", "graphics", "PdfWriter", "HtmlRenderer", "PdfReader", "XpsFile", "DjVuFile", "HtmlFile2", "Fb2File", "EpubFile", "doctrenderer"])
|
||||
if is_file("./allfontsgen"):
|
||||
cmd("chmod", ["-v", "+x", "./allfontsgen"])
|
||||
cmd("install_name_tool", ["-add_rpath", "@executable_path", "./allfontsgen"], True)
|
||||
@ -981,7 +993,7 @@ def mac_correct_rpath_x2t(dir):
|
||||
if is_file("./allthemesgen"):
|
||||
cmd("chmod", ["-v", "+x", "./allthemesgen"])
|
||||
cmd("install_name_tool", ["-add_rpath", "@executable_path", "./allthemesgen"], True)
|
||||
mac_correct_rpath_binary("./allthemesgen", ["icudata.58", "icuuc.58", "UnicodeConverter", "kernel", "graphics", "doctrenderer"])
|
||||
mac_correct_rpath_binary("./allthemesgen", ["icudata.58", "icuuc.58", "UnicodeConverter", "kernel", "graphics", "kernel_network", "doctrenderer"])
|
||||
os.chdir(cur_dir)
|
||||
return
|
||||
|
||||
@ -991,9 +1003,9 @@ def mac_correct_rpath_desktop(dir):
|
||||
os.chdir(dir)
|
||||
mac_correct_rpath_library("hunspell", [])
|
||||
mac_correct_rpath_library("ooxmlsignature", ["kernel"])
|
||||
mac_correct_rpath_library("ascdocumentscore", ["UnicodeConverter", "kernel", "graphics", "PdfWriter", "HtmlRenderer", "PdfReader", "XpsFile", "DjVuFile", "hunspell", "ooxmlsignature"])
|
||||
mac_correct_rpath_library("ascdocumentscore", ["UnicodeConverter", "kernel", "graphics", "kernel_network", "PdfWriter", "HtmlRenderer", "PdfReader", "XpsFile", "DjVuFile", "hunspell", "ooxmlsignature"])
|
||||
cmd("install_name_tool", ["-change", "@executable_path/../Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework", "@rpath/Chromium Embedded Framework.framework/Chromium Embedded Framework", "libascdocumentscore.dylib"])
|
||||
mac_correct_rpath_binary("./editors_helper.app/Contents/MacOS/editors_helper", ["ascdocumentscore", "UnicodeConverter", "kernel", "graphics", "PdfWriter", "HtmlRenderer", "PdfReader", "XpsFile", "DjVuFile", "hunspell", "ooxmlsignature"])
|
||||
mac_correct_rpath_binary("./editors_helper.app/Contents/MacOS/editors_helper", ["ascdocumentscore", "UnicodeConverter", "kernel", "kernel_network", "graphics", "PdfWriter", "HtmlRenderer", "PdfReader", "XpsFile", "DjVuFile", "hunspell", "ooxmlsignature"])
|
||||
cmd("install_name_tool", ["-add_rpath", "@executable_path/../../../../Frameworks", "./editors_helper.app/Contents/MacOS/editors_helper"], True)
|
||||
cmd("install_name_tool", ["-add_rpath", "@executable_path/../../../../Resources/converter", "./editors_helper.app/Contents/MacOS/editors_helper"], True)
|
||||
cmd("chmod", ["-v", "+x", "./editors_helper.app/Contents/MacOS/editors_helper"])
|
||||
@ -1147,3 +1159,8 @@ def get_mac_sdk_version_number():
|
||||
return 1000 * int(ver_arr[0])
|
||||
return 1000 * int(ver_arr[0]) + int(ver_arr[1])
|
||||
|
||||
def get_android_sdk_home():
|
||||
ndk_root_path = get_env("ANDROID_NDK_ROOT")
|
||||
if (-1 != ndk_root_path.find("/ndk/")):
|
||||
return ndk_root_path + "/../.."
|
||||
return ndk_root_path + "/.."
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
import config
|
||||
import base
|
||||
import os
|
||||
|
||||
# make build.pro
|
||||
def make():
|
||||
@ -46,7 +47,7 @@ def make():
|
||||
|
||||
# mobile
|
||||
if config.check_option("module", "mobile"):
|
||||
build_sdk_native(base_dir + "/../sdkjs/build")
|
||||
build_sdk_native(base_dir + "/../sdkjs/build", False)
|
||||
base.create_dir(out_dir + "/mobile")
|
||||
base.create_dir(out_dir + "/mobile/sdkjs")
|
||||
vendor_dir_src = base_dir + "/../web-apps/vendor/"
|
||||
@ -123,10 +124,10 @@ def build_sdk_builder(directory):
|
||||
_run_grunt(directory, get_build_param() + base.sdkjs_addons_param())
|
||||
return
|
||||
|
||||
def build_sdk_native(directory):
|
||||
def build_sdk_native(directory, minimize=True):
|
||||
#_run_npm_cli(directory)
|
||||
_run_npm(directory)
|
||||
_run_grunt(directory, get_build_param() + ["--mobile=true"] + base.sdkjs_addons_param())
|
||||
_run_grunt(directory, get_build_param(minimize) + ["--mobile=true"] + base.sdkjs_addons_param())
|
||||
return
|
||||
|
||||
def build_js_develop(root_dir):
|
||||
@ -141,4 +142,15 @@ def build_js_develop(root_dir):
|
||||
_run_npm(root_dir + external_folder + "/web-apps/build")
|
||||
_run_npm(root_dir + external_folder + "/web-apps/build/sprites")
|
||||
_run_grunt(root_dir + external_folder + "/web-apps/build/sprites", [])
|
||||
|
||||
old_cur = os.getcwd()
|
||||
old_product_version = base.get_env("PRODUCT_VERSION")
|
||||
base.set_env("PRODUCT_VERSION", old_product_version + "d")
|
||||
os.chdir(root_dir + external_folder + "/web-apps/vendor/framework7-react")
|
||||
base.cmd("npm", ["install"])
|
||||
base.cmd("npm", ["run", "deploy-word"])
|
||||
base.cmd("npm", ["run", "deploy-cell"])
|
||||
base.cmd("npm", ["run", "deploy-slide"])
|
||||
base.set_env("PRODUCT_VERSION", old_product_version)
|
||||
os.chdir(old_cur)
|
||||
return
|
||||
|
||||
58
scripts/build_js_native.py
Normal file
58
scripts/build_js_native.py
Normal file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import config
|
||||
import base
|
||||
import os
|
||||
import build_js
|
||||
|
||||
# parse configuration
|
||||
config.parse()
|
||||
config.extend_option("jsminimize", "0")
|
||||
|
||||
branding = config.option("branding-name")
|
||||
if ("" == branding):
|
||||
branding = "onlyoffice"
|
||||
|
||||
base_dir = base.get_script_dir() + "/.."
|
||||
out_dir = base_dir + "/../native-sdk/examples/win-linux-mac/build/sdkjs"
|
||||
base.create_dir(out_dir)
|
||||
|
||||
build_js.build_sdk_native(base_dir + "/../sdkjs/build")
|
||||
vendor_dir_src = base_dir + "/../web-apps/vendor/"
|
||||
sdk_dir_src = base_dir + "/../sdkjs/deploy/sdkjs/"
|
||||
|
||||
base.join_scripts([vendor_dir_src + "xregexp/xregexp-all-min.js",
|
||||
vendor_dir_src + "underscore/underscore-min.js",
|
||||
base_dir + "/../sdkjs/common/externs/jszip-utils.js",
|
||||
base_dir + "/../sdkjs/common/Native/native.js",
|
||||
base_dir + "/../sdkjs/common/Native/Wrappers/common.js",
|
||||
base_dir + "/../sdkjs/common/Native/jquery_native.js"],
|
||||
out_dir + "/banners_word.js")
|
||||
|
||||
base.join_scripts([vendor_dir_src + "xregexp/xregexp-all-min.js",
|
||||
vendor_dir_src + "underscore/underscore-min.js",
|
||||
base_dir + "/../sdkjs/common/externs/jszip-utils.js",
|
||||
base_dir + "/../sdkjs/common/Native/native.js",
|
||||
base_dir + "/../sdkjs/cell/native/common.js",
|
||||
base_dir + "/../sdkjs/common/Native/jquery_native.js"],
|
||||
out_dir + "/banners_cell.js")
|
||||
|
||||
base.join_scripts([vendor_dir_src + "xregexp/xregexp-all-min.js",
|
||||
vendor_dir_src + "underscore/underscore-min.js",
|
||||
base_dir + "/../sdkjs/common/externs/jszip-utils.js",
|
||||
base_dir + "/../sdkjs/common/Native/native.js",
|
||||
base_dir + "/../sdkjs/common/Native/Wrappers/common.js",
|
||||
base_dir + "/../sdkjs/common/Native/jquery_native.js"],
|
||||
out_dir + "/banners_slide.js")
|
||||
|
||||
base.create_dir(out_dir + "/word")
|
||||
base.join_scripts([out_dir + "/banners_word.js", sdk_dir_src + "word/sdk-all-min.js", sdk_dir_src + "word/sdk-all.js"], out_dir + "/word/script.bin")
|
||||
base.create_dir(out_dir + "/cell")
|
||||
base.join_scripts([out_dir + "/banners_cell.js", sdk_dir_src + "cell/sdk-all-min.js", sdk_dir_src + "cell/sdk-all.js"], out_dir + "/cell/script.bin")
|
||||
base.create_dir(out_dir + "/slide")
|
||||
base.join_scripts([out_dir + "/banners_slide.js", sdk_dir_src + "slide/sdk-all-min.js", sdk_dir_src + "slide/sdk-all.js"], out_dir + "/slide/script.bin")
|
||||
|
||||
base.delete_file(out_dir + "/banners_word.js")
|
||||
base.delete_file(out_dir + "/banners_cell.js")
|
||||
base.delete_file(out_dir + "/banners_slide.js")
|
||||
|
||||
@ -41,7 +41,7 @@ def make():
|
||||
if(base.is_exist(custom_public_key)):
|
||||
base.copy_file(custom_public_key, server_build_dir + '/Common/sources')
|
||||
|
||||
pkg_target = "node10"
|
||||
pkg_target = "node14"
|
||||
|
||||
if ("linux" == base.host_platform()):
|
||||
pkg_target += "-linux"
|
||||
@ -56,13 +56,6 @@ def make():
|
||||
example_dir = base.get_script_dir() + "/../../document-server-integration/web/documentserver-example/nodejs"
|
||||
base.delete_dir(example_dir + "/node_modules")
|
||||
base.cmd_in_dir(example_dir, "npm", ["install"])
|
||||
sync_rpc_lib_dir = example_dir + "/node_modules/sync-rpc/lib"
|
||||
patch_file = base.get_script_dir() + "/../tools/linux/sync-rpc.patch"
|
||||
if ("linux" == base.host_platform()):
|
||||
base.cmd_in_dir(sync_rpc_lib_dir, "patch", ["-N", "-i", patch_file])
|
||||
if ("windows" == base.host_platform()):
|
||||
patch_exe_dir = base.git_dir() + "/usr/bin"
|
||||
base.cmd_in_dir(patch_exe_dir, "patch.exe", ["-N", "-d", sync_rpc_lib_dir, "-i", patch_file])
|
||||
base.cmd_in_dir(example_dir, "pkg", [".", "-t", pkg_target, "-o", "example"])
|
||||
|
||||
def build_server_develop():
|
||||
|
||||
@ -53,6 +53,10 @@ def parse():
|
||||
else:
|
||||
options["platform"] += (" mac_" + bits)
|
||||
|
||||
if ("mac" == host_platform) and check_option("platform", "mac_arm64") and (platform.machine() != "arm64"):
|
||||
if not check_option("platform", "mac_64"):
|
||||
options["platform"] = "mac_64 " + options["platform"]
|
||||
|
||||
if check_option("platform", "xp") and ("windows" == host_platform):
|
||||
options["platform"] += " win_64_xp win_32_xp"
|
||||
|
||||
@ -99,6 +103,12 @@ def check_compiler(platform):
|
||||
compiler["compiler"] = platform
|
||||
compiler["compiler_64"] = platform
|
||||
|
||||
if base.host_platform() == "mac":
|
||||
if not base.is_dir(options["qt-dir"] + "/" + compiler["compiler_64"]):
|
||||
if base.is_dir(options["qt-dir"] + "/macos"):
|
||||
compiler["compiler"] = "macos"
|
||||
compiler["compiler_64"] = "macos"
|
||||
|
||||
return compiler
|
||||
|
||||
def check_option(name, value):
|
||||
@ -126,6 +136,14 @@ def branding():
|
||||
branding = "onlyoffice"
|
||||
return branding
|
||||
|
||||
def is_mobile_platform():
|
||||
all_platforms = option("platform")
|
||||
if (-1 != all_platforms.find("android")):
|
||||
return True
|
||||
if (-1 != all_platforms.find("ios")):
|
||||
return True
|
||||
return False
|
||||
|
||||
def parse_defaults():
|
||||
defaults_path = base.get_script_dir() + "/../defaults"
|
||||
if ("" != option("branding")):
|
||||
|
||||
18
scripts/core_common/make_common.py
Normal file → Executable file
18
scripts/core_common/make_common.py
Normal file → Executable file
@ -6,17 +6,32 @@ sys.path.append('..')
|
||||
|
||||
import config
|
||||
import base
|
||||
import glob
|
||||
|
||||
import boost
|
||||
import cef
|
||||
import icu
|
||||
import openssl
|
||||
import curl
|
||||
import websocket
|
||||
import v8
|
||||
import html2
|
||||
import hunspell
|
||||
import glew
|
||||
|
||||
def check_android_ndk_macos_arm(dir):
|
||||
if base.is_dir(dir + "/darwin-x86_64") and not base.is_dir(dir + "/darwin-arm64"):
|
||||
print("copy toolchain... [" + dir + "]")
|
||||
base.copy_dir(dir + "/darwin-x86_64", dir + "/darwin-arm64")
|
||||
return
|
||||
|
||||
|
||||
def make():
|
||||
if (config.check_option("platform", "android")) and (base.host_platform() == "mac") and (base.is_os_arm()):
|
||||
for toolchain in glob.glob(base.get_env("ANDROID_NDK_ROOT") + "/toolchains/*"):
|
||||
if base.is_dir(toolchain):
|
||||
check_android_ndk_macos_arm(toolchain + "/prebuilt")
|
||||
|
||||
boost.make()
|
||||
cef.make()
|
||||
icu.make()
|
||||
@ -25,4 +40,7 @@ def make():
|
||||
html2.make()
|
||||
hunspell.make(False)
|
||||
glew.make()
|
||||
if config.check_option("module", "mobile"):
|
||||
curl.make()
|
||||
websocket.make()
|
||||
return
|
||||
|
||||
@ -13,7 +13,7 @@ def make():
|
||||
old_cur = os.getcwd()
|
||||
os.chdir(base_dir)
|
||||
|
||||
platforms = ["win_64", "win_32", "win_64_xp", "win_32_xp", "linux_64", "linux_32", "mac_64"]
|
||||
platforms = ["win_64", "win_32", "win_64_xp", "win_32_xp", "linux_64", "linux_32", "mac_64", "mac_arm64"]
|
||||
|
||||
url = "http://d2ettrnqo7v976.cloudfront.net/cef/4280/"
|
||||
|
||||
@ -54,14 +54,14 @@ def make():
|
||||
base.create_dir("./build")
|
||||
|
||||
# deploy
|
||||
if ("mac_64" != platform):
|
||||
if (0 != platform.find("mac")):
|
||||
base.copy_files("cef_binary/Release/*", "build/")
|
||||
base.copy_files("cef_binary/Resources/*", "build/")
|
||||
|
||||
if (0 == platform.find("linux")):
|
||||
base.cmd("chmod", ["a+xr", "build/locales"])
|
||||
|
||||
if ("mac_64" == platform):
|
||||
if (0 == platform.find("mac")):
|
||||
base.cmd("mv", ["Chromium Embedded Framework.framework", "build/Chromium Embedded Framework.framework"])
|
||||
|
||||
os.chdir(base_dir)
|
||||
|
||||
27
scripts/core_common/modules/curl.py
Normal file
27
scripts/core_common/modules/curl.py
Normal file
@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
sys.path.append('../..')
|
||||
import config
|
||||
import subprocess
|
||||
import os
|
||||
import base
|
||||
|
||||
def make():
|
||||
path = base.get_script_dir() + "/../../core/Common/3dParty/curl"
|
||||
old_cur = os.getcwd()
|
||||
os.chdir(path)
|
||||
if (-1 != config.option("platform").find("android")):
|
||||
if base.is_dir(path + "/build/android"):
|
||||
os.chdir(old_cur)
|
||||
return
|
||||
subprocess.call(["./build-android-curl.sh"])
|
||||
|
||||
elif (-1 != config.option("platform").find("ios")):
|
||||
if base.is_dir(path + "/build/ios"):
|
||||
os.chdir(old_cur)
|
||||
return
|
||||
subprocess.call(["./build-ios-curl.sh"])
|
||||
|
||||
os.chdir(old_cur)
|
||||
return
|
||||
@ -18,14 +18,17 @@ def make():
|
||||
if not config.check_option("module", "mobile"):
|
||||
return;
|
||||
|
||||
print("[fetch & build]: glew")
|
||||
base_dir = base.get_script_dir() + "/../../core/Common/3dParty/glew"
|
||||
old_cur = os.getcwd()
|
||||
os.chdir(base_dir)
|
||||
|
||||
base.common_check_version("glew", "1", clean)
|
||||
base.download("https://deac-ams.dl.sourceforge.net/project/glew/glew/2.1.0/glew-2.1.0-win32.zip", "./archive.zip")
|
||||
base.extract("./archive.zip", "./")
|
||||
base.delete_file("./archive.zip")
|
||||
|
||||
if not base.is_dir("glew-2.1.0"):
|
||||
base.download("https://deac-ams.dl.sourceforge.net/project/glew/glew/2.1.0/glew-2.1.0-win32.zip", "./archive.zip")
|
||||
base.extract("./archive.zip", "./")
|
||||
base.delete_file("./archive.zip")
|
||||
|
||||
os.chdir(old_cur)
|
||||
return
|
||||
|
||||
@ -13,6 +13,8 @@ def change_icu_defs(current_dir, arch):
|
||||
if arch == "arm64":
|
||||
param = "-arch arm64 -isysroot " + base.find_mac_sdk()
|
||||
|
||||
param += " -mmacosx-version-min=10.12"
|
||||
|
||||
base.copy_file(icudef_file, icudef_file_old)
|
||||
|
||||
base.replaceInFile(icudef_file, "CFLAGS = ", "CFLAGS = " + param + " ")
|
||||
|
||||
191
scripts/core_common/modules/ixwebsocket.py
Normal file
191
scripts/core_common/modules/ixwebsocket.py
Normal file
@ -0,0 +1,191 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
sys.path.append('../..')
|
||||
import base
|
||||
import os
|
||||
import config
|
||||
from distutils.version import LooseVersion, StrictVersion
|
||||
|
||||
current_dir = base.get_script_dir() + "/../../core/Common/3dParty/ixwebsocket"
|
||||
|
||||
CMAKE = "cmake"
|
||||
|
||||
def find_last_version(arr_input, base_directory):
|
||||
arr = []
|
||||
for arr_rec in arr_input:
|
||||
if base.is_file(base_directory + "/" + arr_rec + "/bin/cmake"):
|
||||
arr.append(arr_rec)
|
||||
res = arr[0]
|
||||
for version in arr:
|
||||
if(LooseVersion(version) > LooseVersion(res)):
|
||||
res = version
|
||||
return res
|
||||
|
||||
def build_arch(platform, arch, params, is_debug=False):
|
||||
print("ixwebsocket build: " + platform + "....." + arch + " ----------------------------------------")
|
||||
|
||||
if base.is_dir(current_dir + "/IXWebSocket/build/"+ platform + "/" + arch):
|
||||
base.delete_dir(current_dir + "/IXWebSocket/build/" + platform + "/" + arch)
|
||||
base.create_dir(current_dir + "/IXWebSocket/build/" + platform + "/" + arch)
|
||||
cache_dir = current_dir + "/IXWebSocket/build/" + platform + "/cache"
|
||||
base.create_dir(cache_dir)
|
||||
os.chdir(cache_dir)
|
||||
|
||||
libext = "a"
|
||||
prefix = "/"
|
||||
zlib = "1"
|
||||
if (0 == platform.find("windows")):
|
||||
zlib = "0"
|
||||
libext = "lib"
|
||||
prefix = cache_dir + "/../" + arch
|
||||
|
||||
path = platform
|
||||
if(platform == "ios" or platform == "android"):
|
||||
path += "/"
|
||||
else:
|
||||
path = ""
|
||||
|
||||
base.cmd(CMAKE, ["../../..",
|
||||
"-DUSE_WS=0", "-DUSE_ZLIB=" + zlib, "-DUSE_TLS=1", "-DUSE_OPEN_SSL=1",
|
||||
"-DOPENSSL_ROOT_DIR=" + cache_dir + "/../../../../../openssl/build/" + path + arch,
|
||||
"-DOPENSSL_INCLUDE_DIR=" + cache_dir + "/../../../../../openssl/build/" + path + arch + "/include",
|
||||
"-DOPENSSL_CRYPTO_LIBRARY=" + cache_dir + "/../../../../../openssl/build/" + path + arch + "/lib/libcrypto." + libext,
|
||||
"-DOPENSSL_SSL_LIBRARY=" + cache_dir + "/../../../../../openssl/build/" + path + arch + "/lib/libssl." + libext,
|
||||
"-DCMAKE_INSTALL_PREFIX:PATH=" + prefix] + params)
|
||||
|
||||
if(-1 != platform.find("ios") or -1 != platform.find("mac")):
|
||||
base.cmd(CMAKE, ["--build", ".", "--config", "Release"])
|
||||
base.cmd(CMAKE, ["--install", ".", "--config", "Release", "--prefix", cache_dir + "/../" + arch])
|
||||
elif(-1 != platform.find("android") or -1 != platform.find("linux")):
|
||||
base.cmd("make", ["-j4"])
|
||||
base.cmd("make", ["DESTDIR=" + cache_dir + "/../" + arch, "install"])
|
||||
elif(-1 != platform.find("windows")):
|
||||
conf = "Debug" if is_debug else "Release"
|
||||
base.cmd(CMAKE, ["--build", ".", "--target", "install", "--config", conf])
|
||||
|
||||
base.delete_dir(cache_dir)
|
||||
os.chdir(current_dir)
|
||||
|
||||
return
|
||||
|
||||
def make():
|
||||
if not base.is_dir(current_dir):
|
||||
base.create_dir(current_dir)
|
||||
|
||||
print("[fetch & build]: ixwebsocket")
|
||||
|
||||
current_dir_old = os.getcwd()
|
||||
|
||||
os.chdir(current_dir)
|
||||
|
||||
if not base.is_dir(current_dir + "/IXWebSocket"):
|
||||
base.cmd("git", ["clone", "https://github.com/machinezone/IXWebSocket"])
|
||||
|
||||
|
||||
# build for platform
|
||||
if (-1 != config.option("platform").find("android")):
|
||||
if base.is_dir(current_dir + "/IXWebSocket/build/android"):
|
||||
os.chdir(current_dir_old)
|
||||
return
|
||||
|
||||
os.chdir(current_dir + "/IXWebSocket")
|
||||
|
||||
global CMAKE
|
||||
|
||||
CMAKE_TOOLCHAIN_FILE = base.get_env("ANDROID_NDK_ROOT") + "/build/cmake/android.toolchain.cmake"
|
||||
CMAKE_DIR = base.get_android_sdk_home() + "/cmake/"
|
||||
CMAKE = CMAKE_DIR + find_last_version(os.listdir(CMAKE_DIR), CMAKE_DIR) + "/bin/cmake"
|
||||
|
||||
def param_android(arch, api):
|
||||
return ["-G","Unix Makefiles", "-DANDROID_NATIVE_API_LEVEL=" + api, "-DANDROID_ABI=" + arch, "-DANDROID_TOOLCHAIN=clang", "-DANDROID_NDK=" + base.get_env("ANDROID_NDK_ROOT"), "-DCMAKE_TOOLCHAIN_FILE=" + CMAKE_TOOLCHAIN_FILE, "-DCMAKE_MAKE_PROGRAM=make"]
|
||||
|
||||
build_arch("android", "arm64-v8a", param_android("arm64-v8a", "21"))
|
||||
build_arch("android", "armeabi-v7a", param_android("armeabi-v7a", "16"))
|
||||
build_arch("android", "x86_64", param_android("x86_64", "21"))
|
||||
build_arch("android", "x86", param_android("x86", "16"))
|
||||
|
||||
|
||||
elif (-1 != config.option("platform").find("ios") or -1 != config.option("platform").find("mac")):
|
||||
platform = "ios" if -1 != config.option("platform").find("ios") else "mac"
|
||||
if base.is_dir(current_dir + "/IXWebSocket/build/" + platform):
|
||||
os.chdir(current_dir_old)
|
||||
return
|
||||
|
||||
if not base.is_dir(current_dir + "/ios-cmake"):
|
||||
base.cmd("git", ["clone", "https://github.com/leetal/ios-cmake"])
|
||||
|
||||
CMAKE_TOOLCHAIN_FILE = current_dir + "/ios-cmake/ios.toolchain.cmake"
|
||||
|
||||
os_cmd = 'cmake'
|
||||
if os.system(os_cmd) != 0:
|
||||
base.cmd("brew install", ["cmake"])
|
||||
|
||||
os.chdir(current_dir + "/IXWebSocket")
|
||||
|
||||
def param_apple(platform, arch):
|
||||
return ["-G","Xcode", "-DDEPLOYMENT_TARGET=10", "-DENABLE_BITCODE=1", "-DPLATFORM=" + platform, "-DARCHS=" + arch, "-DCMAKE_TOOLCHAIN_FILE=" + CMAKE_TOOLCHAIN_FILE]
|
||||
|
||||
if(platform == "ios"):
|
||||
build_arch("ios", "armv7", param_apple("OS", "armv7"))
|
||||
build_arch("ios", "arm64", param_apple("OS64", "arm64"))
|
||||
build_arch("ios", "i386", param_apple("SIMULATOR", "i386"))
|
||||
build_arch("ios", "x86_64", param_apple("SIMULATOR64", "x86_64"))
|
||||
else:
|
||||
build_arch("mac", "mac_arm64", param_apple("MAC_ARM64", "arm64"))
|
||||
build_arch("mac", "mac_64", param_apple("MAC", "x86_64"))
|
||||
|
||||
os.chdir(current_dir)
|
||||
|
||||
if(platform == "ios"):
|
||||
base.create_dir(current_dir + "/IXWebSocket/build/ios/ixwebsocket-universal/include")
|
||||
base.create_dir(current_dir + "/IXWebSocket/build/ios/ixwebsocket-universal/lib")
|
||||
|
||||
#copy include
|
||||
prefix_dir = current_dir + "/IXWebSocket/build/ios/"
|
||||
postfix_dir = ""
|
||||
if base.is_dir(prefix_dir + "armv7/usr"):
|
||||
postfix_dir = "/usr"
|
||||
|
||||
if base.is_dir(prefix_dir + "armv7" + postfix_dir + "/include"):
|
||||
base.cmd("cp", [ "-r", prefix_dir + "armv7" + postfix_dir + "/include", current_dir + "/IXWebSocket/build/ios/ixwebsocket-universal"])
|
||||
elif base.is_dir(prefix_dir + "armv64" + postfix_dir + "/include"):
|
||||
base.cmd("cp", [ "-r", prefix_dir + "armv64" + postfix_dir + "/include", current_dir + "/IXWebSocket/build/ios/ixwebsocket-universal"])
|
||||
elif base.is_dir(prefix_dir + "i386" + postfix_dir + "/include"):
|
||||
base.cmd("cp", [ "-r", prefix_dir + "i386" + postfix_dir + "/include", current_dir + "/IXWebSocket/build/ios/ixwebsocket-universal"])
|
||||
elif base.is_dir(prefix_dir + "x86_64" + postfix_dir + "/include"):
|
||||
base.cmd("cp", [ "-r", prefix_dir + "x86_64" + postfix_dir + "/include", current_dir + "/IXWebSocket/build/ios/ixwebsocket-universal"])
|
||||
|
||||
# Create fat lib
|
||||
base.cmd("lipo", ["IXWebSocket/build/ios/armv7" + postfix_dir + "/lib/libixwebsocket.a", "IXWebSocket/build/ios/arm64" + postfix_dir + "/lib/libixwebsocket.a",
|
||||
"IXWebSocket/build/ios/i386" + postfix_dir + "/lib/libixwebsocket.a", "IXWebSocket/build/ios/x86_64" + postfix_dir + "/lib/libixwebsocket.a",
|
||||
"-create", "-output",
|
||||
"IXWebSocket/build/ios/ixwebsocket-universal/lib/libixwebsocket.a"])
|
||||
|
||||
|
||||
elif (-1 != config.option("platform").find("linux")):
|
||||
if base.is_dir(current_dir + "/IXWebSocket/build/linux"):
|
||||
os.chdir(current_dir_old)
|
||||
return
|
||||
|
||||
#will support when openssl x86 will support
|
||||
#if (-1 != config.option("platform").find("linux_32")):
|
||||
#build_arch("linux", "linux_32", ["-G","Unix Makefiles", "-DCMAKE_MAKE_PROGRAM=make", "-DCMAKE_C_FLAGS=-m32", "-DCMAKE_CXX_FLAGS=-m32"])
|
||||
if (-1 != config.option("platform").find("linux_64")):
|
||||
build_arch("linux", "linux_64", ["-G","Unix Makefiles", "-DCMAKE_MAKE_PROGRAM=make"])
|
||||
|
||||
|
||||
elif ("windows" == base.host_platform()):
|
||||
if base.is_dir(current_dir + "/IXWebSocket/build/windows"):
|
||||
os.chdir(current_dir_old)
|
||||
return
|
||||
|
||||
if (-1 != config.option("platform").find("win_32")):
|
||||
build_arch("windows", "win_32", ["-G","Visual Studio 14 2015", "-A", "Win32"])
|
||||
build_arch("windows_debug", "win_32", ["-G","Visual Studio 14 2015", "-A", "Win32"], True)
|
||||
if (-1 != config.option("platform").find("win_64")):
|
||||
build_arch("windows", "win_64", ["-G","Visual Studio 14 2015 Win64"])
|
||||
build_arch("windows_debug", "win_64", ["-G","Visual Studio 14 2015 Win64"], True)
|
||||
|
||||
os.chdir(current_dir_old)
|
||||
return
|
||||
@ -5,6 +5,7 @@ sys.path.append('../..')
|
||||
import config
|
||||
import base
|
||||
import os
|
||||
import openssl_mobile
|
||||
|
||||
def clean():
|
||||
if base.is_dir("openssl"):
|
||||
@ -14,11 +15,13 @@ def clean():
|
||||
return
|
||||
|
||||
def make():
|
||||
if ("android" == base.host_platform() or "ios" == config.option("platform")):
|
||||
return
|
||||
|
||||
print("[fetch & build]: openssl")
|
||||
|
||||
if (-1 != config.option("platform").find("android") or -1 != config.option("platform").find("ios")):
|
||||
openssl_mobile.make()
|
||||
return
|
||||
|
||||
base_dir = base.get_script_dir() + "/../../core/Common/3dParty/openssl"
|
||||
old_cur = os.getcwd()
|
||||
os.chdir(base_dir)
|
||||
|
||||
21
scripts/core_common/modules/openssl_mobile.py
Executable file
21
scripts/core_common/modules/openssl_mobile.py
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import base
|
||||
import config
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
def make():
|
||||
path = base.get_script_dir() + "/../../core/Common/3dParty/openssl"
|
||||
old_cur = os.getcwd()
|
||||
os.chdir(path)
|
||||
base.set_env("ANDROID_HOME", base.get_android_sdk_home())
|
||||
|
||||
if (-1 != config.option("platform").find("android") and not base.is_dir("./build/android")):
|
||||
subprocess.call(["./build-android-openssl.sh"])
|
||||
|
||||
if (-1 != config.option("platform").find("ios") and not base.is_dir("./build/ios")):
|
||||
subprocess.call(["./build-ios-openssl.sh"])
|
||||
|
||||
os.chdir(old_cur)
|
||||
return
|
||||
62
scripts/core_common/modules/socketrocket.py
Normal file
62
scripts/core_common/modules/socketrocket.py
Normal file
@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
sys.path.append('../..')
|
||||
import config
|
||||
import base
|
||||
import os
|
||||
import config
|
||||
|
||||
current_dir = base.get_script_dir() + "/../../core/Common/3dParty/socketrocket"
|
||||
|
||||
def buildIOS():
|
||||
|
||||
# Build for iphone
|
||||
base.cmd("xcodebuild", ["-sdk", "iphoneos", "BITCODE_GENERATION_MODE = bitcode", "ENABLE_BITCODE = YES", "OTHER_CFLAGS = -fembed-bitcode", "-configuration", "Release"])
|
||||
|
||||
# Build for simulator
|
||||
base.cmd("xcodebuild", ["-sdk", "iphonesimulator", "BITCODE_GENERATION_MODE = bitcode", "ENABLE_BITCODE = YES", "OTHER_CFLAGS = -fembed-bitcode", "-configuration", "Release"])
|
||||
|
||||
# Remove arm64 for simulator for SDK 14
|
||||
base.cmd("lipo", ["-remove", "arm64", "-output", "build/Release-iphonesimulator/libSocketRocket.a", "build/Release-iphonesimulator/libSocketRocket.a"])
|
||||
|
||||
base.create_dir(current_dir + "/build/ios/lib")
|
||||
|
||||
# Create fat lib
|
||||
base.cmd("lipo", ["./build/Release-iphonesimulator/libSocketRocket.a", "./build/Release-iphoneos/libSocketRocket.a", "-create", "-output",
|
||||
"./build/ios/lib/libSoсketRocket.a"])
|
||||
|
||||
return
|
||||
|
||||
def buildMacOS():
|
||||
|
||||
# Build for iphone
|
||||
base.cmd("xcodebuild", ["-sdk", "macosx", "BITCODE_GENERATION_MODE = bitcode", "ENABLE_BITCODE = YES", "OTHER_CFLAGS = -fembed-bitcode", "-configuration", "Release"])
|
||||
|
||||
base.create_dir(current_dir + "/build/mac_64/lib")
|
||||
base.create_dir(current_dir + "/build/mac_arm64/lib")
|
||||
|
||||
base.cmd("lipo", ["build/Release/libSocketRocket.a", "-thin", "x86_64", "-output", "build/mac_64/lib/libSoсketRocket.a"])
|
||||
base.cmd("lipo", ["build/Release/libSocketRocket.a", "-thin", "arm64", "-output", "build/mac_arm64/lib/libSoсketRocket.a"])
|
||||
|
||||
base.delete_file("build/Release/libSocketRocket.a")
|
||||
|
||||
return
|
||||
|
||||
def make():
|
||||
if (-1 == config.option("platform").find("mac") and -1 == config.option("platform").find("ios")):
|
||||
return
|
||||
|
||||
current_dir_old = os.getcwd()
|
||||
|
||||
print("[build]: socketrocket")
|
||||
os.chdir(current_dir)
|
||||
|
||||
if (-1 != config.option("platform").find("mac")):
|
||||
if not base.is_dir(current_dir + "/build/mac_64") or not base.is_dir(current_dir + "/build/mac_arm_64"):
|
||||
buildMacOS()
|
||||
elif (-1 != config.option("platform").find("ios")):
|
||||
if not base.is_dir(current_dir + "/build/ios"):
|
||||
buildIOS()
|
||||
os.chdir(current_dir_old)
|
||||
return
|
||||
16
scripts/core_common/modules/websocket.py
Executable file
16
scripts/core_common/modules/websocket.py
Executable file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
sys.path.append('../..')
|
||||
import config
|
||||
import base
|
||||
import ixwebsocket
|
||||
import socketrocket
|
||||
|
||||
config_file = base.get_script_dir() + "/../../core/Common/WebSocket/websocket.pri"
|
||||
|
||||
def make():
|
||||
ixwebsocket.make()
|
||||
socketrocket.make()
|
||||
|
||||
return
|
||||
@ -34,6 +34,7 @@ def make():
|
||||
# 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, "kernel_network")
|
||||
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")
|
||||
|
||||
@ -24,20 +24,22 @@ def make():
|
||||
base.create_dir(archive_dir)
|
||||
|
||||
platform = native_platform
|
||||
platform_postfix = platform + base.qt_dst_postfix()
|
||||
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "kernel")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "graphics")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "doctrenderer")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "HtmlRenderer")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "DjVuFile")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "XpsFile")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "PdfReader")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "PdfWriter")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "HtmlFile2")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "UnicodeConverter")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "Fb2File")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform, archive_dir, "EpubFile")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform, archive_dir, "x2t")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "kernel")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "kernel_network")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "graphics")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "doctrenderer")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "HtmlRenderer")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "DjVuFile")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "XpsFile")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "PdfReader")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "PdfWriter")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "HtmlFile2")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "UnicodeConverter")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "Fb2File")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, archive_dir, "EpubFile")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, archive_dir, "x2t")
|
||||
|
||||
base.copy_dir(base_dir + "/js/" + branding + "/builder/sdkjs", archive_dir + "/sdkjs")
|
||||
base.create_dir(archive_dir + "/sdkjs/vendor")
|
||||
@ -52,9 +54,9 @@ def make():
|
||||
if (-1 == config.option("config").find("use_javascript_core")):
|
||||
base.copy_file(core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/icudtl.dat", archive_dir + "/")
|
||||
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform, archive_dir, "allfontsgen")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform, archive_dir, "allthemesgen")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform, archive_dir, "standardtester")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, archive_dir, "allfontsgen")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, archive_dir, "allthemesgen")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, archive_dir, "standardtester")
|
||||
|
||||
if base.is_file(archive_dir + "/core.7z"):
|
||||
base.delete_file(archive_dir + "/core.7z")
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
import config
|
||||
import base
|
||||
import os
|
||||
import platform
|
||||
|
||||
def make():
|
||||
base_dir = base.get_script_dir() + "/../out"
|
||||
@ -43,6 +44,7 @@ def make():
|
||||
# x2t
|
||||
base.create_dir(root_dir + "/converter")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "kernel")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "kernel_network")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "UnicodeConverter")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "graphics")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "PdfWriter")
|
||||
@ -198,6 +200,10 @@ def make():
|
||||
base.delete_file(root_dir + "/cef_sandbox.lib")
|
||||
base.delete_file(root_dir + "/libcef.lib")
|
||||
|
||||
isMacArmPlaformOnIntel = False
|
||||
if (platform == "mac_arm64") and not base.is_os_arm():
|
||||
isMacArmPlaformOnIntel = True
|
||||
|
||||
# all themes generate ----
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir + "/converter", "allfontsgen")
|
||||
base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir + "/converter", "allthemesgen")
|
||||
@ -205,16 +211,23 @@ def make():
|
||||
if (0 == platform.find("mac")):
|
||||
base.mac_correct_rpath_desktop(root_dir)
|
||||
|
||||
themes_params = []
|
||||
if ("" != config.option("themesparams")):
|
||||
themes_params = ["--params=\"" + config.option("themesparams") + "\""]
|
||||
base.cmd_exe(root_dir + "/converter/allfontsgen", ["--use-system=\"1\"", "--input=\"" + root_dir + "/fonts\"", "--input=\"" + git_dir + "/core-fonts\"", "--allfonts=\"" + root_dir + "/converter/AllFonts.js\"", "--selection=\"" + root_dir + "/converter/font_selection.bin\""])
|
||||
base.cmd_exe(root_dir + "/converter/allthemesgen", ["--converter-dir=\"" + root_dir + "/converter\"", "--src=\"" + root_dir + "/editors/sdkjs/slide/themes\"", "--allfonts=\"AllFonts.js\"", "--output=\"" + root_dir + "/editors/sdkjs/common/Images\""] + themes_params)
|
||||
if isMacArmPlaformOnIntel:
|
||||
sdkjs_dir = root_dir + "/editors/sdkjs"
|
||||
end_find_platform = sdkjs_dir.rfind("/mac_arm64/")
|
||||
sdkjs_dir_mac64 = sdkjs_dir[0:end_find_platform] + "/mac_64/" + sdkjs_dir[end_find_platform+11:]
|
||||
base.delete_dir(sdkjs_dir)
|
||||
base.copy_dir(sdkjs_dir_mac64, sdkjs_dir)
|
||||
else:
|
||||
themes_params = []
|
||||
if ("" != config.option("themesparams")):
|
||||
themes_params = ["--params=\"" + config.option("themesparams") + "\""]
|
||||
base.cmd_exe(root_dir + "/converter/allfontsgen", ["--use-system=\"1\"", "--input=\"" + root_dir + "/fonts\"", "--input=\"" + git_dir + "/core-fonts\"", "--allfonts=\"" + root_dir + "/converter/AllFonts.js\"", "--selection=\"" + root_dir + "/converter/font_selection.bin\""])
|
||||
base.cmd_exe(root_dir + "/converter/allthemesgen", ["--converter-dir=\"" + root_dir + "/converter\"", "--src=\"" + root_dir + "/editors/sdkjs/slide/themes\"", "--allfonts=\"AllFonts.js\"", "--output=\"" + root_dir + "/editors/sdkjs/common/Images\""] + themes_params)
|
||||
base.delete_file(root_dir + "/converter/AllFonts.js")
|
||||
base.delete_file(root_dir + "/converter/font_selection.bin")
|
||||
|
||||
base.delete_exe(root_dir + "/converter/allfontsgen")
|
||||
base.delete_exe(root_dir + "/converter/allthemesgen")
|
||||
base.delete_file(root_dir + "/converter/AllFonts.js")
|
||||
base.delete_file(root_dir + "/converter/font_selection.bin")
|
||||
|
||||
if not isUseJSC:
|
||||
base.delete_file(root_dir + "/editors/sdkjs/slide/sdk-all.cache")
|
||||
|
||||
@ -3,6 +3,11 @@
|
||||
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 make():
|
||||
base_dir = base.get_script_dir() + "/../out"
|
||||
git_dir = base.get_script_dir() + "/../.."
|
||||
@ -34,6 +39,7 @@ def make():
|
||||
|
||||
# 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, "PdfWriter")
|
||||
@ -51,6 +57,12 @@ def make():
|
||||
else:
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "x2t")
|
||||
|
||||
if ("ios" == platform) and config.check_option("config", "bundle_dylibs") and config.check_option("config", "simulator"):
|
||||
exclude_arch(root_dir, ["kernel", "kernel_network", "UnicodeConverter", "graphics", "PdfWriter",
|
||||
"PdfReader", "DjVuFile", "XpsFile", "HtmlFile2", "HtmlRenderer", "doctrenderer",
|
||||
"Fb2File", "EpubFile", "x2t"])
|
||||
|
||||
|
||||
# icu
|
||||
if (0 == platform.find("win")):
|
||||
base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/icudt58.dll", root_dir + "/icudt58.dll")
|
||||
|
||||
@ -72,6 +72,7 @@ def make():
|
||||
base.create_dir(converter_dir)
|
||||
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "kernel")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "kernel_network")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "UnicodeConverter")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "graphics")
|
||||
base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "PdfWriter")
|
||||
@ -135,7 +136,7 @@ def make():
|
||||
branding_dir = git_dir + '/' + config.option("branding") + '/server'
|
||||
|
||||
#dictionaries
|
||||
spellchecker_dictionaries = build_server_dir + '/dictionaries'
|
||||
spellchecker_dictionaries = root_dir + '/dictionaries'
|
||||
spellchecker_dictionaries_files = server_dir + '/../dictionaries/*_*'
|
||||
base.create_dir(spellchecker_dictionaries)
|
||||
base.copy_files(spellchecker_dictionaries_files, spellchecker_dictionaries)
|
||||
@ -157,6 +158,12 @@ def make():
|
||||
base.create_dir(core_fonts)
|
||||
base.copy_dir_content(core_fonts_files, core_fonts, "", ".git")
|
||||
|
||||
#document-templates
|
||||
document_templates_files = server_dir + '/../document-templates'
|
||||
document_templates = build_server_dir + '/../document-templates'
|
||||
base.create_dir(document_templates)
|
||||
base.copy_dir(document_templates_files, document_templates)
|
||||
|
||||
#license
|
||||
license_file1 = server_dir + '/LICENSE.txt'
|
||||
license_file2 = server_dir + '/3rd-Party.txt'
|
||||
@ -187,6 +194,8 @@ def make():
|
||||
|
||||
# snap
|
||||
if (0 == platform.find("linux")):
|
||||
if (base.is_dir(root_dir_snap)):
|
||||
base.delete_dir(root_dir_snap)
|
||||
base.create_dir(root_dir_snap)
|
||||
base.copy_dir(root_dir, root_dir_snap)
|
||||
base.copy_dir(bin_server_dir + '/DocService/node_modules', root_dir_snap + '/server/DocService/node_modules')
|
||||
@ -198,6 +207,8 @@ def make():
|
||||
base.delete_file(root_dir_snap + '/server/FileConverter/converter')
|
||||
base.copy_dir(bin_server_dir + '/Common/node_modules', root_dir_snap + '/server/Common/node_modules')
|
||||
base.copy_dir(bin_server_dir + '/Common/sources', root_dir_snap + '/server/Common/sources')
|
||||
if (base.is_dir(root_dir_snap_example)):
|
||||
base.delete_dir(root_dir_snap_example)
|
||||
base.create_dir(root_dir_snap_example)
|
||||
base.copy_dir(bin_example_dir + '/..', root_dir_snap_example)
|
||||
base.delete_file(root_dir_snap + '/example/nodejs/example')
|
||||
|
||||
@ -64,9 +64,8 @@ def make():
|
||||
base.generate_doctrenderer_config("./DoctRenderer.config", "../../../sdkjs/deploy/", "server", "../../../web-apps/vendor/")
|
||||
base.support_old_versions_plugins(git_dir + "/sdkjs-plugins")
|
||||
|
||||
if base.is_dir(git_dir + "/fonts"):
|
||||
base.delete_dir(git_dir + "/fonts")
|
||||
base.create_dir(git_dir + "/fonts")
|
||||
if not base.is_dir(git_dir + "/fonts"):
|
||||
base.create_dir(git_dir + "/fonts")
|
||||
|
||||
if ("mac" == base.host_platform()):
|
||||
base.mac_correct_rpath_x2t("./")
|
||||
|
||||
@ -18,5 +18,9 @@ def make():
|
||||
build_server.build_server_develop()
|
||||
build_js.build_js_develop(base_dir + "/../../..")
|
||||
develop_config_server.make()
|
||||
if ("" != config.option("branding")):
|
||||
branding_develop_script_dir = base_dir + "/../../../" + config.option("branding") + "/build_tools/scripts"
|
||||
if base.is_file(branding_develop_script_dir + "/develop.py"):
|
||||
base.cmd_in_dir(branding_develop_script_dir, "python", ["develop.py"], True)
|
||||
exit(0)
|
||||
|
||||
51
scripts/develop/print_repositories.py
Executable file
51
scripts/develop/print_repositories.py
Executable file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import sys
|
||||
sys.path.append('../')
|
||||
|
||||
import optparse
|
||||
import config
|
||||
import base
|
||||
import os
|
||||
|
||||
arguments = sys.argv[1:]
|
||||
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("--module", action="store", type="string", dest="module", default="core desktop builder server", help="defines modules")
|
||||
parser.add_option("--platform", action="store", type="string", dest="platform", default="native", help="defines platform")
|
||||
parser.add_option("--branding", action="store", type="string", dest="branding", default="onlyoffice", help="provides branding path")
|
||||
|
||||
(options, args) = parser.parse_args(arguments)
|
||||
configOptions = vars(options)
|
||||
|
||||
base.cmd_in_dir('../../', 'python',['configure.py',
|
||||
'--module', configOptions["module"],
|
||||
'--platform', configOptions["platform"],
|
||||
'--branding', configOptions["branding"]])
|
||||
|
||||
# parse configuration
|
||||
config.parse()
|
||||
config.parse_defaults()
|
||||
|
||||
repositories = base.get_repositories()
|
||||
|
||||
# Add other plugins
|
||||
repositories.update(base.get_plugins('autocomplete, easybib, wordpress'))
|
||||
|
||||
# Add other repositories
|
||||
if config.check_option("module", "builder"):
|
||||
repositories['document-builder-package'] = [False, False]
|
||||
|
||||
if (config.check_option("module", "server")):
|
||||
repositories['document-server-package'] = [False, False]
|
||||
repositories['Docker-DocumentServer'] = [False, False]
|
||||
|
||||
for repo in repositories:
|
||||
line = repo
|
||||
repo_dir = repositories[repo][1]
|
||||
if repo_dir != False:
|
||||
repo_dir = os.path.relpath(repo_dir, base.get_script_dir() + "../../..")
|
||||
line += " " + repo_dir
|
||||
print(line)
|
||||
|
||||
sys.exit(0)
|
||||
@ -1,16 +1,14 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import config
|
||||
import base
|
||||
import packages_desktop
|
||||
# import packages_server
|
||||
# import packages_builder
|
||||
|
||||
def make():
|
||||
if config.check_option("module", "desktop"):
|
||||
packages_desktop.make()
|
||||
# if config.check_option("module", "server"):
|
||||
# packages_server.make()
|
||||
# if config.check_option("module", "builder"):
|
||||
# packages_builder.make()
|
||||
def make(product, package_list):
|
||||
if ("desktop" == product):
|
||||
packages_desktop.make(package_list.split())
|
||||
# if ("server" == product):
|
||||
# packages_server.make(package_list.split())
|
||||
# if ("builder" == product):
|
||||
# packages_builder.make(package_list.split())
|
||||
return
|
||||
|
||||
@ -1,67 +1,93 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import config
|
||||
import base
|
||||
import os
|
||||
import re
|
||||
|
||||
def make():
|
||||
def make(packages):
|
||||
base_dir = base.get_script_dir() + "/../out"
|
||||
git_dir = base.get_script_dir() + "/../.."
|
||||
branding = config.branding()
|
||||
|
||||
platforms = config.option("platform").split()
|
||||
for native_platform in platforms:
|
||||
if not native_platform in config.platforms:
|
||||
continue
|
||||
for package in packages:
|
||||
|
||||
isWindowsXP = False if (-1 == native_platform.find("_xp")) else True
|
||||
platform = native_platform[0:-3] if isWindowsXP else native_platform
|
||||
|
||||
if (0 == platform.find("mac")):
|
||||
macos_dir = git_dir + "/desktop-apps/macos"
|
||||
if -1 != package.find("diskimage"):
|
||||
macos_dir = os.path.abspath(git_dir + "/desktop-apps/macos")
|
||||
update_dir = macos_dir + "/build/update"
|
||||
changes_dir = macos_dir + "/ONLYOFFICE/update/updates/ONLYOFFICE/changes"
|
||||
|
||||
isX86 = True if ("" != base.get_env("_X86")) else False
|
||||
if (package == "diskimage-x86_64"):
|
||||
lane = "release_x86_64"
|
||||
scheme = "ONLYOFFICE-x86_64"
|
||||
elif (package == "diskimage-v8-x86_64"):
|
||||
lane = "release_v8"
|
||||
scheme = "ONLYOFFICE-v8"
|
||||
elif (package == "diskimage-arm64"):
|
||||
lane = "release_arm"
|
||||
scheme = "ONLYOFFICE-arm"
|
||||
else:
|
||||
exit(1)
|
||||
|
||||
target = "release" if not isX86 else "release_x86"
|
||||
base.cmd_in_dir(macos_dir, "bundler", ["exec", "fastlane", target, "skip_git_bump:true"])
|
||||
print("Build package " + scheme)
|
||||
|
||||
print("$ bundler exec fastlane " + lane + " skip_git_bump:true")
|
||||
base.cmd_in_dir(macos_dir, "bundler", ["exec", "fastlane", lane, "skip_git_bump:true"])
|
||||
|
||||
print("Build updates")
|
||||
|
||||
app_version = base.run_command("/usr/libexec/PlistBuddy -c 'print :CFBundleShortVersionString' " +
|
||||
macos_dir + "/build/ONLYOFFICE.app/Contents/Info.plist")['stdout']
|
||||
zip_filename = scheme + "-" + app_version
|
||||
macos_zip = macos_dir + "/build/" + zip_filename + ".zip"
|
||||
update_storage_dir = base.get_env("ARCHIVES_DIR") + "/" + scheme + "/_updates"
|
||||
|
||||
package = "ONLYOFFICE" if not isX86 else "ONLYOFFICE-x86"
|
||||
app_version = base.run_command("mdls -name kMDItemVersion -raw " +
|
||||
macos_dir + "/build/ONLYOFFICE.app")['stdout']
|
||||
macos_zip = macos_dir + "/build/" + package + "-" + app_version + ".zip"
|
||||
update_storage = base.get_env("ARCHIVES_DIR") + "/" + package + "/_updates"
|
||||
changes_dir = macos_dir + "/ONLYOFFICE/update/updates/ONLYOFFICE/changes/" + app_version
|
||||
base.delete_dir(update_dir)
|
||||
base.delete_dir(os.path.expanduser("~/Library/Caches/Sparkle_generate_appcast"))
|
||||
base.create_dir(update_dir)
|
||||
base.copy_dir_content(update_storage, update_dir, ".zip")
|
||||
base.copy_dir_content(update_storage_dir, update_dir, ".zip")
|
||||
base.copy_dir_content(update_storage_dir, update_dir, ".html")
|
||||
base.copy_file(macos_zip, update_dir)
|
||||
for file in os.listdir(update_dir):
|
||||
if file.endswith(".zip"):
|
||||
base.copy_file(changes_dir + "/ReleaseNotes.html",
|
||||
update_dir + "/" + os.path.splitext(file)[0] + ".html")
|
||||
base.copy_file(changes_dir + "/ReleaseNotesRU.html",
|
||||
update_dir + "/" + os.path.splitext(file)[0] + ".ru.html")
|
||||
|
||||
notes_src = changes_dir + "/" + app_version + "/ReleaseNotes.html"
|
||||
notes_dst = update_dir + "/" + zip_filename + ".html"
|
||||
cur_date = base.run_command("LC_ALL=en_US.UTF-8 date -u \"+%B %e, %Y\"")['stdout']
|
||||
if base.is_exist(notes_src):
|
||||
base.copy_file(notes_src, notes_dst)
|
||||
base.replaceInFileRE(notes_dst,
|
||||
r"(<span class=\"releasedate\">).+(</span>)", "\\1 - " + cur_date + "\\2")
|
||||
else:
|
||||
base.writeFile(notes_dst, "placeholder\n")
|
||||
|
||||
notes_src = changes_dir + "/" + app_version + "/ReleaseNotesRU.html"
|
||||
notes_dst = update_dir + "/" + zip_filename + ".ru.html"
|
||||
cur_date = base.run_command("LC_ALL=ru_RU.UTF-8 date -u \"+%e %B %Y\"")['stdout']
|
||||
if base.is_exist(notes_src):
|
||||
base.copy_file(notes_src, notes_dst)
|
||||
base.replaceInFileRE(notes_dst,
|
||||
r"(<span class=\"releasedate\">).+(</span>)", "\\1 - " + cur_date + "\\2")
|
||||
else:
|
||||
base.writeFile(notes_dst, "placeholder\n")
|
||||
|
||||
print("$ ./generate_appcast " + update_dir)
|
||||
base.cmd(macos_dir + "/Vendor/Sparkle/bin/generate_appcast", [update_dir])
|
||||
|
||||
base_url = "https://download.onlyoffice.com/install/desktop/editors/mac"
|
||||
changes_url = base_url + "/updates/onlyoffice/changes"
|
||||
update_url = base_url + ("/updates/onlyoffice" if not isX86 else "/x86")
|
||||
print("Edit Sparkle appcast links")
|
||||
|
||||
sparkle_base_url = "https://download.onlyoffice.com/install/desktop/editors/mac"
|
||||
if (package == "diskimage-x86_64"): sparkle_base_url += "/x86_64"
|
||||
elif (package == "diskimage-v8-x86_64"): sparkle_base_url += "/v8"
|
||||
elif (package == "diskimage-arm64"): sparkle_base_url += "/arm"
|
||||
|
||||
base.replaceInFileRE(update_dir + "/onlyoffice.xml",
|
||||
r"(<sparkle:releaseNotesLink>)(?:.+ONLYOFFICE(?:|-x86)-([0-9.]+)\..+)(</sparkle:releaseNotesLink>)",
|
||||
"\\1" + changes_url + "/\\2/ReleaseNotes.html\\3")
|
||||
r"(<sparkle:releaseNotesLink>)(?:.+ONLYOFFICE-(?:x86|x86_64|v8|arm)-([0-9.]+)\..+)(</sparkle:releaseNotesLink>)",
|
||||
"\\1" + sparkle_base_url + "/updates/changes/\\2/ReleaseNotes.html\\3")
|
||||
base.replaceInFileRE(update_dir + "/onlyoffice.xml",
|
||||
r"(<sparkle:releaseNotesLink xml:lang=\"ru\">)(?:ONLYOFFICE(?:|-x86)-([0-9.]+)\..+)(</sparkle:releaseNotesLink>)",
|
||||
"\\1" + changes_url + "/\\2/ReleaseNotesRU.html\\3")
|
||||
r"(<sparkle:releaseNotesLink xml:lang=\"ru\">)(?:ONLYOFFICE-(?:x86|x86_64|v8|arm)-([0-9.]+)\..+)(</sparkle:releaseNotesLink>)",
|
||||
"\\1" + sparkle_base_url + "/updates/changes/\\2/ReleaseNotesRU.html\\3")
|
||||
base.replaceInFileRE(update_dir + "/onlyoffice.xml",
|
||||
r"(url=\")(?:.+/)(ONLYOFFICE.+\")", "\\1" + update_url + "/\\2")
|
||||
r"(url=\")(?:.+/)(ONLYOFFICE.+\")", "\\1" + sparkle_base_url + "/updates/\\2")
|
||||
|
||||
print("Delete unnecessary files")
|
||||
|
||||
for file in os.listdir(update_dir):
|
||||
if -1 == file.find(app_version) and (file.endswith(".zip") or file.endswith(".html")):
|
||||
base.delete_dir(update_dir + "/" + file)
|
||||
if (-1 == file.find(app_version)) and (file.endswith(".zip") or file.endswith(".html")):
|
||||
base.delete_file(update_dir + "/" + file)
|
||||
|
||||
return
|
||||
|
||||
8
scripts/update_js.py
Normal file
8
scripts/update_js.py
Normal file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import config
|
||||
import base
|
||||
import build_js
|
||||
|
||||
config.parse()
|
||||
build_js.make()
|
||||
@ -1,21 +0,0 @@
|
||||
--- index.js
|
||||
+++ index.js
|
||||
@@ -101,18 +101,11 @@
|
||||
|
||||
function nodeNC(port, input) {
|
||||
const src = nodeNetCatSrc(port, input);
|
||||
- if (src.length < 1000) {
|
||||
- return spawnSync(process.execPath, ['-e', src], {
|
||||
- windowsHide: true,
|
||||
- maxBuffer: Infinity,
|
||||
- });
|
||||
- } else {
|
||||
return spawnSync(process.execPath, [], {
|
||||
input: src,
|
||||
windowsHide: true,
|
||||
maxBuffer: Infinity,
|
||||
});
|
||||
- }
|
||||
}
|
||||
|
||||
function test(fn, port) {
|
||||
Reference in New Issue
Block a user