def make(): base.configure_common_apps("../../../build_tools/scripts/base.py") with open("template.docx", "rb") as f: binary_content = bytearray(open("template.docx", "rb").read()) text_indent = " " # 4 spaces len_content = len(binary_content) cpp_content = "// [START]" cpp_content += "\n" + text_indent cpp_content += "int template_binary_len = " + str(len_content) + ";" cpp_content += "\n" + text_indent cpp_content += "BYTE template_binary[" + str(len_content) + "] = {" for byte in binary_content: cpp_content += str(byte) cpp_content += "," cpp_content = cpp_content[0:-1] cpp_content += "};" cpp_content += "\n" + text_indent cpp_content += "// [END]" template_path = "./template.h" header_content = base.readFile(template_path) index_start = header_content.find("// [START]") index_end = header_content.find("// [END]") + 8 header_content_new = header_content[ 0:index_start] + cpp_content + header_content[index_end:] base.delete_file(template_path) with open(base.get_path(template_path), "w") as file: file.write(header_content_new) return
def installProgram(sName): base.print_info("Installing " + sName + "...") if (sName in install_special): code = install_special[sName]() else: if (sName not in downloads_list): print("Url for install not found!") return False download_url = downloads_list[sName] file_name = "install." is_msi = download_url.endswith('msi') if is_msi: file_name += "msi" else: file_name += "exe" base.download(download_url, file_name) base.print_info("Install " + sName + "...") if (sName in install_params): install_command = file_name + " " + install_params[sName] elif is_msi: install_command = "msiexec.exe /i " + file_name + " /qn" else: install_command = file_name + " /S" print(install_command) code = os.system(install_command) base.delete_file(file_name) if (code != 0): print("Installing was failed!") return False return True
def restore_icu_defs(current_dir): icudef_file = current_dir + "/icudefs.mk" icudef_file_old = current_dir + "/icudefs.mk.back" base.delete_file(icudef_file) base.copy_file(icudef_file_old, icudef_file) base.delete_file(icudef_file_old) return
def move_debug_libs_windows(dir): base.create_dir(dir + "/debug") for file in glob.glob(dir + "/*"): file_name = os.path.basename(file) if not base.is_file(file): continue if (0 != file_name.find("libboost_")): continue base.copy_file(file, dir + "/debug/" + file_name) base.delete_file(file) return
def installProgram(sName): base.print_info("Installing " + sName + "...") if (host_platform == 'windows'): if (sName in install_special): code = install_special[sName]() else: if (sName not in downloads_list['Windows']): print("Url for install not found!") return False download_url = downloads_list['Windows'][sName] file_name = "install." is_msi = download_url.endswith('msi') if is_msi: file_name += "msi" else: file_name += "exe" base.download(download_url, file_name) base.print_info("Install " + sName + "...") install_command = ("msiexec.exe /i " + file_name) if is_msi else file_name if (sName in install_params): install_command += " " + install_params.get(sName, '') if (is_msi == True): install_command += " /qn " elif sName not in install_params: install_command += " /S" print(install_command) code = os.system(install_command) base.delete_file(file_name) elif (host_platform == 'linux'): if (sName in install_special): code = install_special[sName]() else: if (sName not in downloads_list['Linux']): print("Program for install not found!") return False base.print_info("Install " + sName + "...") install_command = 'yes | sudo apt install ' + downloads_list[ 'Linux'][sName] print(install_command) code = os.system(install_command) if (code != 0): print("Installing was failed!") return False return True
def clean(): if base.is_dir("depot_tools"): base.delete_dir_with_access_error("depot_tools") base.delete_dir("depot_tools") if base.is_dir("v8"): base.delete_dir_with_access_error("v8") base.delete_dir("v8") if base.is_exist("./.gclient"): base.delete_file("./.gclient") if base.is_exist("./.gclient_entries"): base.delete_file("./.gclient_entries") if base.is_exist("./.cipd"): base.delete_dir("./.cipd") return
def install_postgresql(): if (host_platform == 'windows'): download_url = downloads_list['PostgreSQL'] file_name = "install.exe" base.download(download_url, file_name) base.print_info("Install PostgreSQL...") install_command = file_name + ' --mode unattended --unattendedmodeui none --superpassword ' + install_params['PostgreSQL']['dbPass'] + ' --serverport ' + install_params['PostgreSQL']['dbPort'] else: base.print_info("Install PostgreSQL...") install_command = 'sudo apt install postgresql -y' print(install_command) code = os.system(install_command) if (host_platform == 'windows'): base.delete_file(file_name) else: code = os.system('sudo -i -u postgres psql -c "ALTER USER postgres PASSWORD ' + "'" + install_params['PostgreSQL']['dbPass'] + "'" + ';"') and code return code
def make(): if ("windows" != base.host_platform()): return 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) 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
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
], 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")
def make(packages): base_dir = base.get_script_dir() + "/../out" git_dir = base.get_script_dir() + "/../.." for package in packages: 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" 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) 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" base.create_dir(update_dir) 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) 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]) 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|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|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" + 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_file(update_dir + "/" + file) 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 + ("/DocumentBuilder" if base.is_windows() else "/documentbuilder")) if (base.is_dir(root_dir)): base.delete_dir(root_dir) base.create_dir(root_dir) qt_dir = base.qt_setup(native_platform) # check platform on xp isWindowsXP = False if (-1 == native_platform.find("_xp")) else True platform = native_platform[0:-3] if isWindowsXP else 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") if ("ios" == platform): 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") # doctrenderer if isWindowsXP: base.copy_lib(core_build_dir + "/lib/" + platform_postfix + "/xp", root_dir, "doctrenderer") base.copy_file( core_build_dir + "/lib/" + platform_postfix + "/xp/doctrenderer.lib", root_dir + "/doctrenderer.lib") base.copy_files( core_dir + "/Common/3dParty/v8/v8_xp/" + platform + "/release/icudt*.dll", root_dir + "/") else: base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "doctrenderer") if (0 == platform.find("win")): base.copy_file( core_build_dir + "/lib/" + platform_postfix + "/doctrenderer.lib", root_dir + "/doctrenderer.lib") base.copy_files( core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/release/icudt*.dat", root_dir + "/") else: base.copy_file( core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/icudtl.dat", root_dir + "/icudtl.dat") # app base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir, "docbuilder") base.generate_doctrenderer_config(root_dir + "/DoctRenderer.config", "./", "builder") base.copy_dir(git_dir + "/DocumentBuilder/empty", root_dir + "/empty") base.copy_dir(git_dir + "/DocumentBuilder/samples", root_dir + "/samples") # html base.create_dir(root_dir + "/HtmlFileInternal") if (False == isWindowsXP) and (0 != platform.find("mac")) and ( 0 != platform.find("ios")): base.copy_exe(core_build_dir + "/lib/" + platform_postfix, root_dir + "/HtmlFileInternal", "HtmlFileInternal") base.copy_files( core_dir + "/Common/3dParty/cef/" + platform + "/build/*", root_dir + "/HtmlFileInternal") if (0 == platform.find("win")): base.delete_file(root_dir + "/HtmlFileInternal/cef_sandbox.lib") base.delete_file(root_dir + "/HtmlFileInternal/libcef.lib") # js base.copy_dir(base_dir + "/js/" + branding + "/builder/sdkjs", root_dir + "/sdkjs") base.create_dir(root_dir + "/sdkjs/vendor") base.copy_dir( base_dir + "/js/" + branding + "/builder/web-apps/vendor/jquery", root_dir + "/sdkjs/vendor/jquery") base.copy_dir( base_dir + "/js/" + branding + "/builder/web-apps/vendor/xregexp", root_dir + "/sdkjs/vendor/xregexp") # include base.create_dir(root_dir + "/include") base.copy_file( core_dir + "/DesktopEditor/doctrenderer/common_deploy.h", root_dir + "/include/common.h") base.copy_file(core_dir + "/DesktopEditor/doctrenderer/docbuilder.h", root_dir + "/include/docbuilder.h") base.replaceInFile(root_dir + "/include/docbuilder.h", "Q_DECL_EXPORT", "BUILDING_DOCBUILDER") if ("win_64" == platform): base.copy_file( core_dir + "/DesktopEditor/doctrenderer/docbuilder.com/x64/Release/docbuilder.com.dll", root_dir + "/docbuilder.com.dll") elif ("win_32" == platform): base.copy_file( core_dir + "/DesktopEditor/doctrenderer/docbuilder.com/Win32/Release/docbuilder.com.dll", root_dir + "/docbuilder.com.dll") # correct ios frameworks if ("ios" == platform): base.generate_plist(root_dir) if (0 == platform.find("mac")): base.mac_correct_rpath_x2t(root_dir) return
def make(): print("[fetch & build]: boost") base_dir = base.get_script_dir() + "/../../core/Common/3dParty/boost" old_cur = os.getcwd() os.chdir(base_dir) # download #url = "https://downloads.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.7z" #if not base.is_file("boost_1_58_0.7z"): # base.download("https://downloads.sourceforge.net/project/boost/boost/1.58.0/boost_1_58_0.7z", "boost_1_58_0.7z") #if not base.is_dir("boost_1_58_0"): # base.extract("boost_1_58_0.7z", "./") base.common_check_version("boost", "5", clean) if not base.is_dir("boost_1_72_0"): base.cmd("git", ["clone", "--recursive", "--depth=1", "https://github.com/boostorg/boost.git", "boost_1_72_0", "-b" "boost-1.72.0"]) os.chdir("boost_1_72_0") # build if ("windows" == base.host_platform()): win_toolset = "msvc-14.0" if (-1 != config.option("platform").find("win_64")) and not base.is_dir("../build/win_64"): base.cmd("bootstrap.bat", ["vc14"]) base.cmd("b2.exe", ["headers"]) base.cmd("b2.exe", ["--clean"]) base.cmd("b2.exe", ["--prefix=./../build/win_64", "link=static", "--with-filesystem", "--with-system", "--with-date_time", "--with-regex", "--toolset=" + win_toolset, "address-model=64", "install"]) if (-1 != config.option("platform").find("win_32")) and not base.is_dir("../build/win_32"): base.cmd("bootstrap.bat", ["vc14"]) base.cmd("b2.exe", ["headers"]) base.cmd("b2.exe", ["--clean"]) base.cmd("b2.exe", ["--prefix=./../build/win_32", "link=static", "--with-filesystem", "--with-system", "--with-date_time", "--with-regex", "--toolset=" + win_toolset, "address-model=32", "install"]) correct_install_includes_win(base_dir, "win_64") correct_install_includes_win(base_dir, "win_32") if (-1 != config.option("platform").find("linux")) and not base.is_dir("../build/linux_64"): base.cmd("./bootstrap.sh", ["--with-libraries=filesystem,system,date_time,regex"]) base.cmd("./b2", ["headers"]) base.cmd("./b2", ["--clean"]) base.cmd("./b2", ["--prefix=./../build/linux_64", "link=static", "cxxflags=-fPIC", "install"]) # TODO: support x86 if (-1 != config.option("platform").find("ios")) and not base.is_dir("../build/ios"): clang_correct() os.chdir("../") base.bash("./boost_ios") if (-1 != config.option("platform").find("android")) and not base.is_dir("../build/android"): boost_qt.make(os.getcwd(), ["filesystem", "system", "date_time", "regex"]) if (-1 != config.option("platform").find("mac")) and not base.is_dir("../build/mac_64"): boost_qt.make(os.getcwd(), ["filesystem", "system", "date_time", "regex"], "mac_64") directory_build = base_dir + "/build/mac_64/lib" base.delete_file(directory_build + "/libboost_system.a") base.delete_file(directory_build + "/libboost_system.dylib") base.copy_files(directory_build + "/mac_64/*.a", directory_build) if (-1 != config.option("platform").find("mac_arm64")) and not base.is_dir("../build/mac_arm64"): boost_qt.make(os.getcwd(), ["filesystem", "system", "date_time", "regex"], "mac_arm64") directory_build = base_dir + "/build/mac_arm64/lib" base.delete_file(directory_build + "/libboost_system.a") base.delete_file(directory_build + "/libboost_system.dylib") base.copy_files(directory_build + "/mac_arm64/*.a", directory_build) os.chdir(old_cur) return
def make(): is_no_brandind_build = base.is_file("config") platforms = config.option("platform").split() for platform in platforms: if not platform in config.platforms: continue print("------------------------------------------") print("BUILD_PLATFORM: " + platform) print("------------------------------------------") old_env = os.environ.copy() isAndroid = False if (-1 == platform.find("android")) else True if isAndroid: toolchain_platform = "linux-x86_64" if ("mac" == base.host_platform()): toolchain_platform = "darwin-x86_64" base.set_env("ANDROID_NDK_HOST", toolchain_platform) old_path = base.get_env("PATH") new_path = base.qt_setup(platform) + "/bin:" new_path += (base.get_env("ANDROID_NDK_ROOT") + "/toolchains/llvm/prebuilt/" + toolchain_platform + "/bin:") new_path += old_path base.set_env("PATH", new_path) if ("android_arm64_v8a" == platform): base.set_env("ANDROID_NDK_PLATFORM", "android-21") else: base.set_env("ANDROID_NDK_PLATFORM", "android-16") # makefile suffix file_suff = platform if (config.check_option("config", "debug")): file_suff += "_debug_" file_suff += config.option("branding") # setup qt qt_dir = base.qt_setup(platform) base.set_env("OS_DEPLOY", platform) # qmake CONFIG+=... config_param = base.qt_config(platform) # qmake ADDON qmake_addon = [] if ("" != config.option("qmake_addon")): qmake_addon.append(config.option("qmake_addon")) # non windows platform if not base.is_windows(): if ("1" == config.option("clean")): base.cmd( base.app_make(), ["clean", "-f", "makefiles/build.makefile_" + file_suff], True) base.cmd(base.app_make(), [ "distclean", "-f", "makefiles/build.makefile_" + file_suff ], True) if base.is_file("makefiles/build.makefile_" + file_suff): base.delete_file("makefiles/build.makefile_" + file_suff) base.cmd(qt_dir + "/bin/qmake", ["-nocache", "build.pro", "CONFIG+=" + config_param] + qmake_addon) base.cmd(base.app_make(), ["-f", "makefiles/build.makefile_" + file_suff]) else: qmake_bat = [] qmake_bat.append( "call \"" + config.option("vs-path") + "/vcvarsall.bat\" " + ("x86" if base.platform_is_32(platform) else "x64")) if ("1" == config.option("clean")): qmake_bat.append( "call nmake clean -f makefiles/build.makefile_" + file_suff) qmake_bat.append( "call nmake distclean -f makefiles/build.makefile_" + file_suff) qmake_addon_string = "" if ("" != config.option("qmake_addon")): qmake_addon_string = " \"" + config.option( "qmake_addon") + "\"" qmake_bat.append("if exist ./makefiles/build.makefile_" + file_suff + " del /F ./makefiles/build.makefile_" + file_suff) qmake_bat.append("call \"" + qt_dir + "/bin/qmake\" -nocache build.pro \"CONFIG+=" + config_param + "\"" + qmake_addon_string) qmake_bat.append("call nmake -f makefiles/build.makefile_" + file_suff) base.run_as_bat(qmake_bat) os.environ = old_env.copy() base.delete_file(".qmake.stash") if config.check_option( "module", "builder") and base.is_windows() and is_no_brandind_build: base.bash("../core/DesktopEditor/doctrenderer/docbuilder.com/build") return
def make_xp(): print("[fetch & build]: v8_xp") base_dir = base.get_script_dir() + "/../../core/Common/3dParty/v8/v8_xp" old_cur = os.getcwd() os.chdir(base_dir) if ("windows" == base.host_platform()): base.set_env("DEPOT_TOOLS_WIN_TOOLCHAIN", "0") base.set_env("GYP_MSVS_VERSION", "2015") if not base.is_dir("depot_tools"): base.cmd("git", ["clone", "https://chromium.googlesource.com/chromium/tools/depot_tools.git"]) else: os.chdir(base_dir + "/depot_tools") base.cmd("git", ["reset", "--hard"]) os.chdir(base_dir) old_path = os.environ["PATH"] os.environ["PATH"] = os.pathsep.join([base_dir + "/depot_tools", base_dir + "/depot_tools/win_tools-2_7_13_chromium7_bin/python/bin", config.option("vs-path") + "/../Common7/IDE", os.environ["PATH"]]) # -------------------------------------------------------------------------- # fetch if not base.is_dir("v8"): base.delete_file("./.gclient") base.delete_file("./.gclient_entries") base.delete_dir("./.cipd") base.cmd("./depot_tools/fetch", ["v8"], True) base.cmd("./depot_tools/gclient", ["sync", "-r", "4.10.253"], True) # save common py script base.save_as_script("v8/build/common_xp.py", [ "import os", "def replaceInFile(path, text, textReplace):", " filedata = '';", " with open(path, 'r') as file:", " filedata = file.read()", " filedata = filedata.replace(text, textReplace)", " os.remove(path)", " with open(path, 'w') as file:", " file.write(filedata)", " return", "", "projects = ['v8/tools/gyp/v8_base_0.vcxproj', 'v8/tools/gyp/v8_base_1.vcxproj', 'v8/tools/gyp/v8_base_2.vcxproj', 'v8/tools/gyp/v8_base_3.vcxproj',", "'v8/tools/gyp/v8_libbase.vcxproj', 'v8/tools/gyp/v8_libplatform.vcxproj', 'v8/tools/gyp/v8_nosnapshot.vcxproj', 'v8/tools/gyp/mksnapshot.vcxproj',", "'v8/third_party/icu/icui18n.vcxproj', 'v8/third_party/icu/icuuc.vcxproj']", "", "for file in projects:", " replaceInFile(file, '<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>', '<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>')", " replaceInFile(file, '<RuntimeLibrary>MultiThreaded</RuntimeLibrary>', '<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>')", ]); if config.check_option("platform", "win_64_xp"): if not base.is_dir("win_64/release"): base.run_as_bat(["call python v8/build/gyp_v8 -Dtarget_arch=x64", "call python v8/build/common_xp.py", "call devenv v8/tools/gyp/v8.sln /Rebuild Release"]) base.create_dir("win_64/release") base.copy_files("v8/build/Release/lib/*", "win_64/release/") base.copy_file("v8/build/Release/icudt.dll", "win_64/release/icudt.dll") if (-1 != config.option("config").lower().find("debug")) and not base.is_dir("win_64/debug"): base.run_as_bat(["call python v8/build/gyp_v8 -Dtarget_arch=x64", "call python v8/build/common_xp.py", "call devenv v8/tools/gyp/v8.sln /Rebuild Debug"]) base.create_dir("win_64/debug") base.copy_files("v8/build/Debug/lib/*", "win_64/debug/") base.copy_file("v8/build/Debug/icudt.dll", "win_64/debug/icudt.dll") if config.check_option("platform", "win_32_xp"): if not base.is_dir("win_32/release"): base.run_as_bat(["call python v8/build/gyp_v8", "call python v8/build/common_xp.py", "call devenv v8/tools/gyp/v8.sln /Rebuild Release"]) base.create_dir("win_32/release") base.copy_files("v8/build/Release/lib/*", "win_32/release/") base.copy_file("v8/build/Release/icudt.dll", "win_32/release/icudt.dll") if (-1 != config.option("config").lower().find("debug")) and not base.is_dir("win_32/debug"): base.run_as_bat(["call python v8/build/gyp_v8", "call python v8/build/common_xp.py", "call devenv v8/tools/gyp/v8.sln /Rebuild Debug"]) base.create_dir("win_32/debug") base.copy_files("v8/build/Debug/lib/*", "win_32/debug/") base.copy_file("v8/build/Debug/icudt.dll", "win_32/debug/icudt.dll") os.environ["PATH"] = old_path os.chdir(old_cur) 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 + ("/DesktopEditors" if base.is_windows() else "/desktopeditors")) if (base.is_dir(root_dir)): base.delete_dir(root_dir) base.create_dir(root_dir) qt_dir = base.qt_setup(native_platform) # check platform on xp isWindowsXP = False if (-1 == native_platform.find("_xp")) else True platform = native_platform[0:-3] if isWindowsXP else native_platform apps_postfix = "build" + base.qt_dst_postfix() if ("" != config.option("branding")): apps_postfix += ("/" + config.option("branding")) apps_postfix += "/" apps_postfix += platform if isWindowsXP: apps_postfix += "/xp" 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.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", "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") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "PdfReader") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "DjVuFile") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "XpsFile") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "HtmlFile2") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "HtmlRenderer") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "Fb2File") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "EpubFile") if ("ios" == platform): base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "x2t") else: base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir + "/converter", "x2t") # icu if (0 == platform.find("win")): base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/icudt58.dll", root_dir + "/converter/icudt58.dll") base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/icuuc58.dll", root_dir + "/converter/icuuc58.dll") if (0 == platform.find("linux")): base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.so.58", root_dir + "/converter/libicudata.so.58") base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.so.58", root_dir + "/converter/libicuuc.so.58") if (0 == platform.find("mac")): base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.58.dylib", root_dir + "/converter/libicudata.58.dylib") base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.58.dylib", root_dir + "/converter/libicuuc.58.dylib") # doctrenderer if isWindowsXP: base.copy_lib(core_build_dir + "/lib/" + platform_postfix + "/xp", root_dir + "/converter", "doctrenderer") base.copy_files( core_dir + "/Common/3dParty/v8/v8_xp/" + platform + "/release/icudt*.dll", root_dir + "/converter/") else: base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "doctrenderer") if (0 == platform.find("win")): base.copy_files( core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/release/icudt*.dat", root_dir + "/converter/") else: base.copy_file( core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/icudtl.dat", root_dir + "/converter/icudtl.dat") base.generate_doctrenderer_config( root_dir + "/converter/DoctRenderer.config", "../editors/", "desktop") base.copy_dir(git_dir + "/desktop-apps/common/converter/empty", root_dir + "/converter/empty") # dictionaries base.create_dir(root_dir + "/dictionaries") base.copy_dir_content(git_dir + "/dictionaries", root_dir + "/dictionaries", "", ".git") base.copy_dir(git_dir + "/desktop-apps/common/package/fonts", root_dir + "/fonts") base.copy_file( git_dir + "/desktop-apps/common/package/license/3dparty/3DPARTYLICENSE", root_dir + "/3DPARTYLICENSE") # cef if not isWindowsXP: base.copy_files( core_dir + "/Common/3dParty/cef/" + platform + "/build/*", root_dir) else: base.copy_files( core_dir + "/Common/3dParty/cef/" + native_platform + "/build/*", root_dir) isUseQt = True if (0 == platform.find("mac")) or (0 == platform.find("ios")): isUseQt = False # libraries base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "hunspell") base.copy_lib( core_build_dir + "/lib/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "ooxmlsignature") base.copy_lib( core_build_dir + "/lib/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "ascdocumentscore") if (0 != platform.find("mac")): base.copy_lib( core_build_dir + "/lib/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "qtascdocumentscore") if (0 == platform.find("mac")): base.copy_dir( core_build_dir + "/bin/" + platform_postfix + "/editors_helper.app", root_dir + "/editors_helper.app") else: base.copy_exe( core_build_dir + "/bin/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "editors_helper") if isUseQt: base.qt_copy_lib("Qt5Core", root_dir) base.qt_copy_lib("Qt5Gui", root_dir) base.qt_copy_lib("Qt5PrintSupport", root_dir) base.qt_copy_lib("Qt5Svg", root_dir) base.qt_copy_lib("Qt5Widgets", root_dir) base.qt_copy_lib("Qt5Multimedia", root_dir) base.qt_copy_lib("Qt5MultimediaWidgets", root_dir) base.qt_copy_lib("Qt5Network", root_dir) base.qt_copy_lib("Qt5OpenGL", root_dir) base.qt_copy_plugin("bearer", root_dir) base.qt_copy_plugin("iconengines", root_dir) base.qt_copy_plugin("imageformats", root_dir) base.qt_copy_plugin("platforms", root_dir) base.qt_copy_plugin("platforminputcontexts", root_dir) base.qt_copy_plugin("printsupport", root_dir) base.qt_copy_plugin("mediaservice", root_dir) base.qt_copy_plugin("playlistformats", root_dir) base.qt_copy_plugin("platformthemes", root_dir) base.qt_copy_plugin("xcbglintegrations", root_dir) base.qt_copy_plugin("styles", root_dir) if (0 == platform.find("linux")): base.qt_copy_lib("Qt5DBus", root_dir) base.qt_copy_lib("Qt5X11Extras", root_dir) base.qt_copy_lib("Qt5XcbQpa", root_dir) base.qt_copy_icu(root_dir) base.copy_files( base.get_env("QT_DEPLOY") + "/../lib/libqgsttools_p.so*", root_dir) if (0 == platform.find("win")): base.copy_file( git_dir + "/desktop-apps/win-linux/extras/projicons/" + apps_postfix + "/projicons.exe", root_dir + "/DesktopEditors.exe") base.copy_file( git_dir + "/desktop-apps/win-linux/" + apps_postfix + "/DesktopEditors.exe", root_dir + "/editors.exe") base.copy_file( git_dir + "/desktop-apps/win-linux/res/icons/desktopeditors.ico", root_dir + "/app.ico") elif (0 == platform.find("linux")): base.copy_file( git_dir + "/desktop-apps/win-linux/" + apps_postfix + "/DesktopEditors", root_dir + "/DesktopEditors") base.copy_lib( core_build_dir + "/lib/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "videoplayer") base.create_dir(root_dir + "/editors") base.copy_dir(base_dir + "/js/" + branding + "/desktop/sdkjs", root_dir + "/editors/sdkjs") base.copy_dir(base_dir + "/js/" + branding + "/desktop/web-apps", root_dir + "/editors/web-apps") base.copy_dir( git_dir + "/desktop-sdk/ChromiumBasedEditors/resources/local", root_dir + "/editors/sdkjs/common/Images/local") base.create_dir(root_dir + "/editors/sdkjs-plugins") base.copy_sdkjs_plugins(root_dir + "/editors/sdkjs-plugins", True, True) # remove some default plugins if base.is_dir(root_dir + "/editors/sdkjs-plugins/speech"): base.delete_dir(root_dir + "/editors/sdkjs-plugins/speech") # io base.create_dir(root_dir + "/editors/sdkjs-plugins/v1") base.download( "https://onlyoffice.github.io/sdkjs-plugins/v1/plugins.js", root_dir + "/editors/sdkjs-plugins/v1/plugins.js") base.download( "https://onlyoffice.github.io/sdkjs-plugins/v1/plugins-ui.js", root_dir + "/editors/sdkjs-plugins/v1/plugins-ui.js") base.download( "https://onlyoffice.github.io/sdkjs-plugins/v1/plugins.css", root_dir + "/editors/sdkjs-plugins/v1/plugins.css") base.support_old_versions_plugins(root_dir + "/editors/sdkjs-plugins") base.copy_sdkjs_plugin( git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins", root_dir + "/editors/sdkjs-plugins", "manager", True) base.copy_sdkjs_plugin( git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt", root_dir + "/editors/sdkjs-plugins", "advanced2", True) #base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt/ui/common/{14A8FC87-8E26-4216-B34E-F27F053B2EC4}", root_dir + "/editors/sdkjs-plugins/{14A8FC87-8E26-4216-B34E-F27F053B2EC4}") #base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt/ui/engine/database/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}", root_dir + "/editors/sdkjs-plugins/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}") if (0 != platform.find("mac")): base.copy_sdkjs_plugin( git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins", root_dir + "/editors/sdkjs-plugins", "sendto", True) base.copy_file(base_dir + "/js/" + branding + "/desktop/index.html", root_dir + "/index.html") base.copy_dir(git_dir + "/desktop-apps/common/loginpage/providers", root_dir + "/providers") isUseJSC = False if (0 == platform.find("mac")): file_size_doctrenderer = os.path.getsize( root_dir + "/converter/libdoctrenderer.dylib") print("file_size_doctrenderer: " + str(file_size_doctrenderer)) if (file_size_doctrenderer < 5 * 1024 * 1024): isUseJSC = True if isUseJSC: base.delete_file(root_dir + "/converter/icudtl.dat") if (0 == platform.find("win")): base.copy_lib( git_dir + "/desktop-apps/win-linux/3dparty/WinSparkle/" + platform, root_dir, "WinSparkle") base.delete_file(root_dir + "/cef_sandbox.lib") base.delete_file(root_dir + "/libcef.lib") # 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") 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) 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") 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 + ("/DesktopEditors" if base.is_windows() else "/desktopeditors")) if (base.is_dir(root_dir)): base.delete_dir(root_dir) base.create_dir(root_dir) qt_dir = base.qt_setup(native_platform) # check platform on xp isWindowsXP = False if (-1 == native_platform.find("_xp")) else True platform = native_platform[0:-3] if isWindowsXP else native_platform apps_postfix = "build" + base.qt_dst_postfix() if ("" != config.option("branding")): apps_postfix += ("/" + config.option("branding")) apps_postfix += "/" apps_postfix += platform if isWindowsXP: apps_postfix += "/xp" 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.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", "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") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "PdfReader") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "DjVuFile") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "XpsFile") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "HtmlFile") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "HtmlRenderer") if ("ios" == platform): base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "x2t") else: base.copy_exe(core_build_dir + "/bin/" + platform_postfix, root_dir + "/converter", "x2t") # icu if (0 == platform.find("win")): base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/icudt58.dll", root_dir + "/converter/icudt58.dll") base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/icuuc58.dll", root_dir + "/converter/icuuc58.dll") if (0 == platform.find("linux")): base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.so.58", root_dir + "/converter/libicudata.so.58") base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.so.58", root_dir + "/converter/libicuuc.so.58") if (0 == platform.find("mac")): base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.58.dylib", root_dir + "/converter/libicudata.58.dylib") base.copy_file( core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.58.dylib", root_dir + "/converter/libicuuc.58.dylib") # doctrenderer if isWindowsXP: base.copy_lib(core_build_dir + "/lib/" + platform_postfix + "/xp", root_dir + "/converter", "doctrenderer") base.copy_files( core_dir + "/Common/3dParty/v8/v8_xp/" + platform + "/release/icudt*.dll", root_dir + "/converter/") else: base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir + "/converter", "doctrenderer") if (0 == platform.find("win")): base.copy_files( core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/release/icudt*.dat", root_dir + "/converter/") else: base.copy_file( core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/icudtl.dat", root_dir + "/converter/icudtl.dat") base.generate_doctrenderer_config( root_dir + "/converter/DoctRenderer.config", "../editors/", "desktop") base.copy_dir(git_dir + "/desktop-apps/common/converter/empty", root_dir + "/converter/empty") if (False == isWindowsXP) and (0 != platform.find("mac")) and ( 0 != platform.find("ios")): base.copy_exe(core_build_dir + "/lib/" + platform_postfix, root_dir, "HtmlFileInternal") # dictionaries base.create_dir(root_dir + "/dictionaries") base.copy_dir_content(git_dir + "/dictionaries", root_dir + "/dictionaries", "", ".git") base.copy_dir(git_dir + "/desktop-apps/common/package/fonts", root_dir + "/fonts") base.copy_file( git_dir + "/desktop-apps/common/package/license/3dparty/3DPARTYLICENSE", root_dir + "/3DPARTYLICENSE") # cef if not isWindowsXP: base.copy_files( core_dir + "/Common/3dParty/cef/" + platform + "/build/*", root_dir) else: base.copy_files( core_dir + "/Common/3dParty/cef/" + native_platform + "/build/*", root_dir) isUseQt = True if (0 == platform.find("mac")) or (0 == platform.find("ios")): isUseQt = False # libraries base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "hunspell") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, root_dir, "ooxmlsignature") base.copy_lib( core_build_dir + "/lib/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "ascdocumentscore") if (0 != platform.find("mac")): base.copy_lib( core_build_dir + "/lib/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "qtascdocumentscore") if (0 == platform.find("mac")): base.copy_dir( core_build_dir + "/bin/" + platform_postfix + "/editors_helper.app", root_dir + "/editors_helper.app") else: base.copy_exe( core_build_dir + "/bin/" + platform_postfix + ("/xp" if isWindowsXP else ""), root_dir, "editors_helper") if isUseQt: base.qt_copy_lib("Qt5Core", root_dir) base.qt_copy_lib("Qt5Gui", root_dir) base.qt_copy_lib("Qt5PrintSupport", root_dir) base.qt_copy_lib("Qt5Svg", root_dir) base.qt_copy_lib("Qt5Widgets", root_dir) base.qt_copy_lib("Qt5Multimedia", root_dir) base.qt_copy_lib("Qt5MultimediaWidgets", root_dir) base.qt_copy_lib("Qt5Network", root_dir) base.qt_copy_lib("Qt5OpenGL", root_dir) base.qt_copy_plugin("bearer", root_dir) base.qt_copy_plugin("iconengines", root_dir) base.qt_copy_plugin("imageformats", root_dir) base.qt_copy_plugin("platforms", root_dir) base.qt_copy_plugin("platforminputcontexts", root_dir) base.qt_copy_plugin("printsupport", root_dir) base.qt_copy_plugin("mediaservice", root_dir) base.qt_copy_plugin("playlistformats", root_dir) base.qt_copy_plugin("platformthemes", root_dir) base.qt_copy_plugin("xcbglintegrations", root_dir) base.qt_copy_plugin("styles", root_dir) if (0 == platform.find("linux")): base.qt_copy_lib("Qt5DBus", root_dir) base.qt_copy_lib("Qt5X11Extras", root_dir) base.qt_copy_lib("Qt5XcbQpa", root_dir) base.qt_copy_icu(root_dir) base.copy_files( base.get_env("QT_DEPLOY") + "/../lib/libqgsttools_p.so*", root_dir) if (0 == platform.find("win")): base.copy_file( git_dir + "/desktop-apps/win-linux/extras/projicons/" + apps_postfix + "/projicons.exe", root_dir + "/DesktopEditors.exe") base.copy_file( git_dir + "/desktop-apps/win-linux/" + apps_postfix + "/DesktopEditors.exe", root_dir + "/editors.exe") base.copy_file( git_dir + "/desktop-apps/win-linux/res/icons/desktopeditors.ico", root_dir + "/app.ico") elif (0 == platform.find("linux")): base.copy_file( git_dir + "/desktop-apps/win-linux/" + apps_postfix + "/DesktopEditors", root_dir + "/DesktopEditors") base.create_dir(root_dir + "/editors") base.copy_dir(base_dir + "/js/" + branding + "/desktop/sdkjs", root_dir + "/editors/sdkjs") base.copy_dir(base_dir + "/js/" + branding + "/desktop/web-apps", root_dir + "/editors/web-apps") base.copy_dir( git_dir + "/desktop-sdk/ChromiumBasedEditors/resources/local", root_dir + "/editors/sdkjs/common/Images/local") base.create_dir(root_dir + "/editors/sdkjs-plugins") base.copy_file(git_dir + "/sdkjs-plugins/LICENSE.txt", root_dir + "/editors/sdkjs-plugins/LICENSE.txt") base.copy_file(git_dir + "/sdkjs-plugins/README.md", root_dir + "/editors/sdkjs-plugins/README.md") base.copy_file(git_dir + "/sdkjs-plugins/plugins.css", root_dir + "/editors/sdkjs-plugins/plugins.css") base.copy_file(git_dir + "/sdkjs-plugins/pluginBase.js", root_dir + "/editors/sdkjs-plugins/pluginBase.js") base.copy_dir( git_dir + "/sdkjs-plugins/youtube", root_dir + "/editors/sdkjs-plugins/{38E022EA-AD92-45FC-B22B-49DF39746DB4}") base.copy_dir( git_dir + "/sdkjs-plugins/ocr", root_dir + "/editors/sdkjs-plugins/{440EBF13-9B19-4BD8-8621-05200E58140B}") base.copy_dir( git_dir + "/sdkjs-plugins/translate", root_dir + "/editors/sdkjs-plugins/{7327FC95-16DA-41D9-9AF2-0E7F449F687D}") base.copy_dir( git_dir + "/sdkjs-plugins/synonim", root_dir + "/editors/sdkjs-plugins/{BE5CBF95-C0AD-4842-B157-AC40FEDD9840}") base.copy_dir( git_dir + "/sdkjs-plugins/code", root_dir + "/editors/sdkjs-plugins/{BE5CBF95-C0AD-4842-B157-AC40FEDD9841}") base.copy_dir( git_dir + "/sdkjs-plugins/photoeditor", root_dir + "/editors/sdkjs-plugins/{07FD8DFA-DFE0-4089-AL24-0730933CC80A}") base.copy_dir( git_dir + "/sdkjs-plugins/macros", root_dir + "/editors/sdkjs-plugins/{E6978D28-0441-4BD7-8346-82FAD68BCA3B}") base.copy_dir( git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{8D67F3C5-7736-4BAE-A0F2-8C7127DC4BB8}", root_dir + "/editors/sdkjs-plugins/{8D67F3C5-7736-4BAE-A0F2-8C7127DC4BB8}") #base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt/ui/common/{14A8FC87-8E26-4216-B34E-F27F053B2EC4}", root_dir + "/editors/sdkjs-plugins/{14A8FC87-8E26-4216-B34E-F27F053B2EC4}") #base.copy_dir(git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/encrypt/ui/engine/database/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}", root_dir + "/editors/sdkjs-plugins/{9AB4BBA8-A7E5-48D5-B683-ECE76A020BB1}") if (0 != platform.find("mac")): base.copy_dir( git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{060E6A7D-2766-44E8-A0EE-9A8CB9DB00D1}", root_dir + "/editors/sdkjs-plugins/{060E6A7D-2766-44E8-A0EE-9A8CB9DB00D1}" ) base.copy_dir( git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{B509123E-6335-40BD-B965-91EB799346E3}", root_dir + "/editors/sdkjs-plugins/{B509123E-6335-40BD-B965-91EB799346E3}" ) base.copy_dir( git_dir + "/desktop-sdk/ChromiumBasedEditors/plugins/{F7E59EB4-317E-4E0B-AB2C-58E038A59EE2}", root_dir + "/editors/sdkjs-plugins/{F7E59EB4-317E-4E0B-AB2C-58E038A59EE2}" ) base.copy_file(base_dir + "/js/" + branding + "/desktop/index.html", root_dir + "/index.html") base.copy_file( git_dir + "/desktop-apps/common/loginpage/addon/externalcloud.json", root_dir + "/editors/externalcloud.json") if (0 == platform.find("win")): base.copy_lib( git_dir + "/desktop-apps/win-linux/3dparty/WinSparkle/" + platform, root_dir, "WinSparkle") base.delete_file(root_dir + "/cef_sandbox.lib") base.delete_file(root_dir + "/libcef.lib") # 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") 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) 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") base.delete_file(root_dir + "/editors/sdkjs/slide/sdk-all.cache") return
def make(): base_dir = base.get_script_dir() + "/../out" git_dir = base.get_script_dir() + "/../.." core_dir = git_dir + "/core" core_build_dir = core_dir + "/build" branding = config.branding() if ("" != config.option("branding")): core_build_dir += ("/" + config.option("branding")) platforms = config.option("platform").split() for native_platform in platforms: if not native_platform in config.platforms: continue archive_dir = base_dir + ("/" + native_platform + "/" + branding + "/core") if (base.is_dir(archive_dir)): base.delete_dir(archive_dir) base.create_dir(archive_dir) platform = native_platform 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_dir(base_dir + "/js/" + branding + "/builder/sdkjs", archive_dir + "/sdkjs") base.create_dir(archive_dir + "/sdkjs/vendor") base.copy_dir( base_dir + "/js/" + branding + "/builder/web-apps/vendor/jquery", archive_dir + "/sdkjs/vendor/jquery") base.copy_dir( base_dir + "/js/" + branding + "/builder/web-apps/vendor/xregexp", archive_dir + "/sdkjs/vendor/xregexp") if ("windows" == base.host_platform()): base.copy_files( core_dir + "/Common/3dParty/icu/" + platform + "/build/*.dll", archive_dir + "/") base.copy_files( core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/release/icudt*.dat", archive_dir + "/") else: base.copy_files( core_dir + "/Common/3dParty/icu/" + platform + "/build/*", archive_dir + "/") 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") if base.is_file(archive_dir + "/core.7z"): base.delete_file(archive_dir + "/core.7z") base.archive_folder(archive_dir, archive_dir + "/core.7z") return
def make(): if ("1" == base.get_env("OO_NO_BUILD_JS")): return base_dir = base.get_script_dir() + "/.." out_dir = base_dir + "/out/js/" branding = config.option("branding-name") if ("" == branding): branding = "onlyoffice" out_dir += branding base.create_dir(out_dir) # builder build_interface(base_dir + "/../web-apps/build") build_sdk_builder(base_dir + "/../sdkjs/build") base.create_dir(out_dir + "/builder") base.copy_dir(base_dir + "/../web-apps/deploy/web-apps", out_dir + "/builder/web-apps") base.copy_dir(base_dir + "/../sdkjs/deploy/sdkjs", out_dir + "/builder/sdkjs") # desktop if config.check_option("module", "desktop"): build_sdk_desktop(base_dir + "/../sdkjs/build") base.create_dir(out_dir + "/desktop") base.copy_dir(base_dir + "/../sdkjs/deploy/sdkjs", out_dir + "/desktop/sdkjs") base.copy_dir(base_dir + "/../web-apps/deploy/web-apps", out_dir + "/desktop/web-apps") if not base.is_file(out_dir + "/desktop/sdkjs/common/AllFonts.js"): base.copy_file( base_dir + "/../sdkjs/common/HtmlFileInternal/AllFonts.js", out_dir + "/desktop/sdkjs/common/AllFonts.js") base.delete_dir(out_dir + "/desktop/web-apps/apps/documenteditor/embed") base.delete_dir(out_dir + "/desktop/web-apps/apps/documenteditor/mobile") base.delete_dir(out_dir + "/desktop/web-apps/apps/presentationeditor/embed") base.delete_dir(out_dir + "/desktop/web-apps/apps/presentationeditor/mobile") base.delete_dir(out_dir + "/desktop/web-apps/apps/spreadsheeteditor/embed") base.delete_dir(out_dir + "/desktop/web-apps/apps/spreadsheeteditor/mobile") base.copy_file( base_dir + "/../web-apps/apps/api/documents/index.html.desktop", out_dir + "/desktop/web-apps/apps/api/documents/index.html") 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
def make(): git_dir = base.get_script_dir() + "/../.." old_cur = os.getcwd() work_dir = git_dir + "/server/FileConverter/bin" if not base.is_dir(work_dir): base.create_dir(work_dir) os.chdir(work_dir) arch = "x64" arch2 = "_64" if ("windows" == base.host_platform()) and not base.host_platform_is64(): arch = "x86" arch2 = "_32" url = get_core_url(arch, config.option("branch")) data_url = base.get_file_last_modified_url(url) if (data_url == "" and config.option("branch") != "develop"): url = get_core_url(arch, "develop") data_url = base.get_file_last_modified_url(url) old_data_url = base.readFile("./core.7z.data") if (data_url != "" and old_data_url != data_url): print("-----------------------------------------------------------") print("Downloading core last version... --------------------------") print("-----------------------------------------------------------") if (base.is_file("./core.7z")): base.delete_file("./core.7z") if (base.is_dir("./core")): base.delete_dir("./core") base.download(url, "./core.7z") print("-----------------------------------------------------------") print("Extracting core last version... ---------------------------") print("-----------------------------------------------------------") base.extract("./core.7z", "./") base.writeFile("./core.7z.data", data_url) platform = "" if ("windows" == base.host_platform()): platform = "win" + arch2 else: platform = base.host_platform() + arch2 base.copy_files("./core/*", "./") else: print("-----------------------------------------------------------") print("Core is up to date. ---------------------------------------") print("-----------------------------------------------------------") 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 ("mac" == base.host_platform()): base.mac_correct_rpath_x2t("./") print("-----------------------------------------------------------") print("All fonts generation... -----------------------------------") print("-----------------------------------------------------------") base.cmd_exe("./allfontsgen", [ "--input=../../../core-fonts", "--allfonts-web=../../../sdkjs/common/AllFonts.js", "--allfonts=./AllFonts.js", "--images=../../../sdkjs/common/Images", "--selection=./font_selection.bin", "--use-system=true", "--output-web=../../../fonts" ]) print("All presentation themes generation... ---------------------") print("-----------------------------------------------------------") base.cmd_exe("./allthemesgen", [ "--converter-dir=\"" + git_dir + "/server/FileConverter/bin\"", "--src=\"" + git_dir + "/sdkjs/slide/themes\"", "--output=\"" + git_dir + "/sdkjs/common/Images\"" ]) #print("- allthemesgen (ios) --------------------------------------") #base.cmd_exe("./allthemesgen", ["--converter-dir=\"" + git_dir + "/server/FileConverter/bin\"", "--src=\"" + git_dir + "/sdkjs/slide/themes\"", "--output=\"" + git_dir + "/sdkjs/common/Images\"", "--postfix=ios", "--params=280,224"]) # android #print("- allthemesgen (android) ----------------------------------") #base.cmd_exe("./allthemesgen", ["--converter-dir=\"" + git_dir + "/server/FileConverter/bin\"", "--src=\"" + git_dir + "/sdkjs/slide/themes\"", "--output=\"" + git_dir + "/sdkjs/common/Images\"", "--postfix=android", "--params=280,224"]) # add directories to open directories addon_base_path = "../../../" server_config = {} static_content = {} sql = {} server_addons = [] if (config.option("server-addons") != ""): server_addons = config.option("server-addons").rsplit(", ") if ("server-lockstorage" in server_addons): server_config["editorDataStorage"] = "editorDataRedis" sdkjs_addons = [] if (config.option("sdkjs-addons") != ""): sdkjs_addons = config.option("sdkjs-addons").rsplit(", ") for addon in sdkjs_addons: static_content["/" + addon] = {"path": addon_base_path + addon} web_apps_addons = [] if (config.option("web-apps-addons") != ""): web_apps_addons = config.option("web-apps-addons").rsplit(", ") for addon in web_apps_addons: static_content["/" + addon] = {"path": addon_base_path + addon} if (config.option("external-folder") != ""): external_folder = config.option("external-folder") static_content["/sdkjs"] = { "path": addon_base_path + external_folder + "/sdkjs" } static_content["/web-apps"] = { "path": addon_base_path + external_folder + "/web-apps" } if (config.option("sql-type") != ""): sql["type"] = config.option("sql-type") if (config.option("db-port") != ""): sql["dbPort"] = config.option("db-port") if (config.option("db-user") != ""): sql["dbUser"] = config.option("db-user") if (config.option("db-pass") != ""): sql["dbPass"] = config.option("db-pass") server_config["static_content"] = static_content json_file = git_dir + "/server/Common/config/local-development-" + base.host_platform( ) + ".json" base.writeFile( json_file, json.dumps( { "services": { "CoAuthoring": { "server": server_config, "sql": sql } } }, indent=2)) os.chdir(old_cur) return
def make(): base_dir = base.get_script_dir() + "/../out" git_dir = base.get_script_dir() + "/../.." core_dir = git_dir + "/core" plugins_dir = git_dir + "/sdkjs-plugins" branding = config.branding() platforms = config.option("platform").split() for native_platform in platforms: if not native_platform in config.platforms: continue if (-1 != native_platform.find("_xp")): print("Server module not supported on Windows XP") continue if (-1 != native_platform.find("ios")): print("Server module not supported on iOS") continue if (-1 != native_platform.find("android")): print("Server module not supported on Android") continue root_dir = base_dir + ("/" + native_platform + "/" + branding + "/documentserver") root_dir_snap = root_dir + '-snap' if (base.is_dir(root_dir)): base.delete_dir(root_dir) base.create_dir(root_dir) build_server_dir = root_dir + '/server' server_dir = base.get_script_dir() + "/../../server" bin_server_dir = server_dir + "/build/server" base.create_dir(build_server_dir + '/DocService') base.copy_dir(bin_server_dir + '/Common/config', build_server_dir + '/Common/config') base.create_dir(build_server_dir + '/DocService') base.copy_exe(bin_server_dir + "/DocService", build_server_dir + '/DocService', "docservice") base.create_dir(build_server_dir + '/FileConverter') base.copy_exe(bin_server_dir + "/FileConverter", build_server_dir + '/FileConverter', "converter") base.create_dir(build_server_dir + '/Metrics') base.copy_exe(bin_server_dir + "/Metrics", build_server_dir + '/Metrics', "metrics") base.copy_dir(bin_server_dir + '/Metrics/config', build_server_dir + '/Metrics/config') base.create_dir(build_server_dir + '/Metrics/node_modules/modern-syslog/build/Release') base.copy_file(bin_server_dir + "/Metrics/node_modules/modern-syslog/build/Release/core.node", build_server_dir + "/Metrics/node_modules/modern-syslog/build/Release/core.node") base.create_dir(build_server_dir + '/SpellChecker') base.copy_exe(bin_server_dir + "/SpellChecker", build_server_dir + '/SpellChecker', "spellchecker") base.create_dir(build_server_dir + '/SpellChecker/node_modules/nodehun/build/Release') base.copy_file(bin_server_dir + "/SpellChecker/node_modules/nodehun/build/Release/nodehun.node", build_server_dir + '/SpellChecker/node_modules/nodehun/build/Release/nodehun.node') 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() converter_dir = root_dir + "/server/FileConverter/bin" 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, "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") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "PdfReader") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "DjVuFile") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "XpsFile") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "HtmlFile2") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "HtmlRenderer") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "doctrenderer") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "Fb2File") base.copy_lib(core_build_dir + "/lib/" + platform_postfix, converter_dir, "EpubFile") base.copy_exe(core_build_dir + "/bin/" + platform_postfix, converter_dir, "x2t") base.generate_doctrenderer_config(converter_dir + "/DoctRenderer.config", "../../../", "server") # icu if (0 == platform.find("win")): base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/icudt58.dll", converter_dir + "/icudt58.dll") base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/icuuc58.dll", converter_dir + "/icuuc58.dll") if (0 == platform.find("linux")): base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.so.58", converter_dir + "/libicudata.so.58") base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.so.58", converter_dir + "/libicuuc.so.58") if (0 == platform.find("mac")): base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicudata.58.dylib", converter_dir + "/libicudata.58.dylib") base.copy_file(core_dir + "/Common/3dParty/icu/" + platform + "/build/libicuuc.58.dylib", converter_dir + "/libicuuc.58.dylib") if (0 == platform.find("win")): base.copy_files(core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/release/icudt*.dat", converter_dir + "/") else: base.copy_file(core_dir + "/Common/3dParty/v8/v8/out.gn/" + platform + "/icudtl.dat", converter_dir + "/icudtl.dat") # builder base.copy_exe(core_build_dir + "/bin/" + platform_postfix, converter_dir, "docbuilder") base.copy_dir(git_dir + "/DocumentBuilder/empty", converter_dir + "/empty") # js js_dir = root_dir base.copy_dir(base_dir + "/js/" + branding + "/builder/sdkjs", js_dir + "/sdkjs") base.copy_dir(base_dir + "/js/" + branding + "/builder/web-apps", js_dir + "/web-apps") # plugins base.create_dir(js_dir + "/sdkjs-plugins") base.copy_sdkjs_plugins(js_dir + "/sdkjs-plugins", False, True) base.copy_sdkjs_plugins_server(js_dir + "/sdkjs-plugins", False, True) base.create_dir(js_dir + "/sdkjs-plugins/v1") base.download("https://onlyoffice.github.io/sdkjs-plugins/v1/plugins.js", js_dir + "/sdkjs-plugins/v1/plugins.js") base.download("https://onlyoffice.github.io/sdkjs-plugins/v1/plugins-ui.js", js_dir + "/sdkjs-plugins/v1/plugins-ui.js") base.download("https://onlyoffice.github.io/sdkjs-plugins/v1/plugins.css", js_dir + "/sdkjs-plugins/v1/plugins.css") base.support_old_versions_plugins(js_dir + "/sdkjs-plugins") # tools tools_dir = root_dir + "/server/tools" base.create_dir(tools_dir) base.copy_exe(core_build_dir + "/bin/" + platform_postfix, tools_dir, "allfontsgen") base.copy_exe(core_build_dir + "/bin/" + platform_postfix, tools_dir, "allthemesgen") branding_dir = server_dir + "/branding" if("" != config.option("branding") and "onlyoffice" != config.option("branding")): branding_dir = git_dir + '/' + config.option("branding") + '/server' #dictionaries spellchecker_dictionaries = build_server_dir + '/SpellChecker/dictionaries' spellchecker_dictionaries_files = server_dir + '/../dictionaries/*_*' base.create_dir(spellchecker_dictionaries) base.copy_files(spellchecker_dictionaries_files, spellchecker_dictionaries) if (0 == platform.find("win")): exec_ext = '.exe' else: exec_ext = '' #schema schema_files = server_dir + '/schema' schema = build_server_dir + '/schema' base.create_dir(schema) base.copy_dir(schema_files, schema) #core-fonts core_fonts_files = server_dir + '/../core-fonts' core_fonts = build_server_dir + '/../core-fonts' base.create_dir(core_fonts) base.copy_dir_content(core_fonts_files, core_fonts, "", ".git") #license license_file1 = server_dir + '/LICENSE.txt' license_file2 = server_dir + '/3rd-Party.txt' license_dir = server_dir + '/license' license = build_server_dir + '/license' base.copy_file(license_file1, build_server_dir) base.copy_file(license_file2, build_server_dir) base.copy_dir(license_dir, license) #branding welcome_files = branding_dir + '/welcome' welcome = build_server_dir + '/welcome' base.create_dir(welcome) base.copy_dir(welcome_files, welcome) info_files = branding_dir + '/info' info = build_server_dir + '/info' base.create_dir(info) base.copy_dir(info_files, info) # example build_example_dir = root_dir + '-example' bin_example_dir = base.get_script_dir() + "/../../document-server-integration/web/documentserver-example/nodejs" base.create_dir(build_example_dir) base.copy_exe(bin_example_dir, build_example_dir, "example") base.copy_dir(bin_example_dir + "/config", build_example_dir + "/config") # snap if (0 == platform.find("linux")): 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') base.copy_dir(bin_server_dir + '/DocService/sources', root_dir_snap + '/server/DocService/sources') base.copy_dir(bin_server_dir + '/DocService/public', root_dir_snap + '/server/DocService/public') base.delete_file(root_dir_snap + '/server/DocService/docservice') base.copy_dir(bin_server_dir + '/FileConverter/node_modules', root_dir_snap + '/server/FileConverter/node_modules') base.copy_dir(bin_server_dir + '/FileConverter/sources', root_dir_snap + '/server/FileConverter/sources') base.delete_file(root_dir_snap + '/server/FileConverter/converter') base.copy_dir(bin_server_dir + '/SpellChecker/node_modules', root_dir_snap + '/server/SpellChecker/node_modules') base.copy_dir(bin_server_dir + '/SpellChecker/sources', root_dir_snap + '/server/SpellChecker/sources') base.delete_file(root_dir_snap + '/server/SpellChecker/spellchecker') 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') return
def make(): git_dir = base.get_script_dir() + "/../.." old_cur = os.getcwd() work_dir = git_dir + "/server/FileConverter/bin" if not base.is_dir(work_dir): base.create_dir(work_dir) os.chdir(work_dir) arch = "x64" arch2 = "_64" if ("windows" == base.host_platform()) and not base.host_platform_is64(): arch = "x86" arch2 = "_32" url = "http://repo-doc-onlyoffice-com.s3.amazonaws.com/" + base.host_platform( ) + "/core/" + config.option("branch") + "/latest/" + arch + "/core.7z" data_url = base.get_file_last_modified_url(url) old_data_url = base.readFile("./core.7z.data") if (old_data_url != data_url): print("-----------------------------------------------------------") print("Downloading core last version... --------------------------") print("-----------------------------------------------------------") if (base.is_file("./core.7z")): base.delete_file("./core.7z") if (base.is_dir("./core")): base.delete_dir("./core") if (base.is_dir("./HtmlFileInternal")): base.delete_dir("./HtmlFileInternal") base.download(url, "./core.7z") print("-----------------------------------------------------------") print("Extracting core last version... ---------------------------") print("-----------------------------------------------------------") base.extract("./core.7z", "./") base.writeFile("./core.7z.data", data_url) platform = "" if ("windows" == base.host_platform()): platform = "win" + arch2 else: platform = base.host_platform() + arch2 base.copy_files("./core/*", "./") 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 ("mac" == base.host_platform()): base.mac_correct_rpath_x2t("./") print("-----------------------------------------------------------") print("All fonts generation... -----------------------------------") print("-----------------------------------------------------------") base.cmd_exe("./allfontsgen", [ "--input=../../../core-fonts", "--allfonts-web=../../../sdkjs/common/AllFonts.js", "--allfonts=./AllFonts.js", "--images=../../../sdkjs/common/Images", "--selection=./font_selection.bin", "--use-system=true", "--output-web=../../../fonts" ]) print("All presentation themes generation... ---------------------") print("-----------------------------------------------------------") base.cmd_exe("./allthemesgen", [ "--converter-dir=\"" + git_dir + "/server/FileConverter/bin\"", "--src=\"" + git_dir + "/sdkjs/slide/themes\"", "--output=\"" + git_dir + "/sdkjs/common/Images\"" ]) # add directories to open directories data_local_devel = "{\n" data_local_devel += "\"services\": {\n" data_local_devel += "\"CoAuthoring\": {\n" data_local_devel += "\"server\": {\n" data_local_devel += "\"static_content\": {\n" is_exist_addons = False for addon in config.sdkjs_addons: data_local_devel += ("\"/" + config.sdkjs_addons[addon] + "\" : { \"path\": \"../../../" + config.sdkjs_addons[addon] + "\" },\n") is_exist_addons = True for addon in config.web_apps_addons: data_local_devel += ("\"/" + config.web_apps_addons[addon] + "\" : { \"path\": \"../../../" + config.web_apps_addons[addon] + "\" },\n") is_exist_addons = True if is_exist_addons: data_local_devel = data_local_devel[:-2] data_local_devel += "\n" data_local_devel += "}\n" data_local_devel += "}\n" data_local_devel += "}\n" data_local_devel += "}\n" data_local_devel += "}\n" base.writeFile( git_dir + "/server/Common/config/local-development-" + base.host_platform() + ".json", data_local_devel) os.chdir(old_cur) return
windows_bat.append("call emcc " + arguments) else: windows_bat.append("#!/bin/bash") windows_bat.append("source ./emsdk/emsdk_env.sh") windows_bat.append("emcc " + arguments) base.run_as_bat(windows_bat) # finalize base.replaceInFile("./spell.js", "__ATPOSTRUN__=[];", "__ATPOSTRUN__=[function(){self.onEngineInit();}];") base.replaceInFile("./spell.js", "function getBinaryPromise(){", "function getBinaryPromise2(){") spell_js_content = base.readFile("./spell.js") engine_base_js_content = base.readFile("./wasm/js/spell.js") engine_base_js_polyfill = base.readFile("./wasm/js/polyfill.js") engine_js_content = base.readFile( "./../../license/header.license" ) + "\n" + engine_base_js_polyfill + "\n\n" + engine_base_js_content.replace( "//module", spell_js_content) # write new version base.writeFile("./deploy/spell/spell_ie.js", engine_js_content) base.copy_file("spell.js.mem", "./deploy/spell/spell.js.mem") base.copy_file("./wasm/js/code.js", "./deploy/spell.js") base.copy_file("./wasm/js/index.html", "./deploy/index.html") base.delete_file("spell.js") base.delete_file("spell.js.mem")
def make(build_js = True): old_cur_dir = os.getcwd() #fetch libhunspell print("[fetch & build]: hunspell") base_dir = base.get_script_dir() + "/../../core/Common/3dParty/hunspell" os.chdir(base_dir) if not base.is_dir("hunspell"): last_stable_commit = "8a2fdfe5a6bb1cbafc04b0c8486abcefd17ad903" repo_path = "https://github.com/hunspell/hunspell.git" base.cmd("git", ["clone", repo_path]) os.chdir("hunspell") base.cmd("git", ["checkout", last_stable_commit]) base.replaceInFile("./src/hunspell/filemgr.hxx", "FileMgr& operator=(const FileMgr&);", "FileMgr& operator=(const FileMgr&); \n" +" #ifdef HUNSPELL_WASM_MODULE \n char* memory;size_t index;size_t size; \n #endif") #custon filemgr support watch filemgr_wrapper_new.cxx os.chdir("../") if not build_js: os.chdir(old_cur_dir) return base.configure_common_apps() # remove previous version if base.is_dir("./deploy"): base.delete_dir("./deploy") base.create_dir("./deploy") base.create_dir("./deploy/spell") # fetch emsdk command_prefix = "" if ("windows" == base.host_platform()) else "./" if not base.is_dir("emsdk"): base.cmd("git", ["clone", "https://github.com/emscripten-core/emsdk.git"]) os.chdir("emsdk") base.cmd(command_prefix + "emsdk", ["install", "latest"]) base.cmd(command_prefix + "emsdk", ["activate", "latest"]) os.chdir("../") # compile compiler_flags = ["-o spell.js", "-O3", "-fno-exceptions", "-fno-rtti", "-s WASM=1", "-s ALLOW_MEMORY_GROWTH=1", "-s FILESYSTEM=0", "-s ENVIRONMENT='web,worker'"] exported_functions = ["_malloc", "_free", "_Spellchecker_Malloc", "_Spellchecker_Free", "_Spellchecker_Create", "_Spellchecker_Destroy", "_Spellchecker_AddDictionary", "_Spellchecker_RemoveDicrionary", "_Spellchecker_Load", "_Spellchecker_Spell", "_Spellchecker_Suggest", "_Spellchecker_RemoveEngine", "_Spellchecker_TotalAllocatedMemory"] version_hunspell = 17 libhunspell_src_path = "./hunspell/src/hunspell" input_sources = ["affentry.cxx", "affixmgr.cxx", "csutil.cxx", "dictmgr.cxx", "hashmgr.cxx", "hunspell.cxx", "hunzip.cxx", "phonet.cxx", "replist.cxx", "suggestmgr.cxx"] sources = [] for item in input_sources: if base.is_file(libhunspell_src_path + "/" + item): sources.append(libhunspell_src_path + "/" + item) if (13 == version_hunspell): sources.append("./wasm/src/filemgr_wrapper.cxx") else: sources.append("./wasm/src/filemgr_wrapper_new.cxx") sources.append("./wasm/src/base.cpp") compiler_flags.append("-I" + libhunspell_src_path) compiler_flags.append("-DWIN32 -DNDEBUG -DHUNSPELL_STATIC -DBUILDING_LIBHUNSPELL -DHUNSPELL_WASM_MODULE") # arguments arguments = "" for item in compiler_flags: arguments += (item + " ") arguments += "-s EXPORTED_FUNCTIONS=\"[" for item in exported_functions: arguments += ("'" + item + "',") arguments = arguments[:-1] arguments += "]\" " for item in sources: arguments += (item + " ") # command windows_bat = [] if (base.host_platform() == "windows"): windows_bat.append("call emsdk/emsdk_env.bat") windows_bat.append("call emcc " + arguments) else: windows_bat.append("#!/bin/bash") windows_bat.append("source ./emsdk/emsdk_env.sh") windows_bat.append("emcc " + arguments) base.run_as_bat(windows_bat) # finalize base.replaceInFile("./spell.js", "__ATPOSTRUN__=[];", "__ATPOSTRUN__=[function(){self.onEngineInit();}];") base.replaceInFile("./spell.js", "function getBinaryPromise(){", "function getBinaryPromise2(){") spell_js_content = base.readFile("./spell.js") engine_base_js_content = base.readFile("./wasm/js/spell.js") engine_js_content = engine_base_js_content.replace("//module", spell_js_content) # write new version base.writeFile("./deploy/spell/spell.js", engine_js_content) base.copy_file("spell.wasm", "./deploy/spell/spell.wasm") # ie asm version arguments = arguments.replace("WASM=1", "WASM=0") # command windows_bat = [] if (base.host_platform() == "windows"): windows_bat.append("call emsdk/emsdk_env.bat") windows_bat.append("call emcc " + arguments) else: windows_bat.append("#!/bin/bash") windows_bat.append("source ./emsdk/emsdk_env.sh") windows_bat.append("emcc " + arguments) base.run_as_bat(windows_bat) # finalize base.replaceInFile("./spell.js", "__ATPOSTRUN__=[];", "__ATPOSTRUN__=[function(){self.onEngineInit();}];") base.replaceInFile("./spell.js", "function getBinaryPromise(){", "function getBinaryPromise2(){") spell_js_content = base.readFile("./spell.js") engine_base_js_content = base.readFile("./wasm/js/spell.js") engine_base_js_polyfill = base.readFile("./wasm/js/polyfill.js") engine_js_content = engine_base_js_polyfill + "\n\n" + engine_base_js_content.replace("//module", spell_js_content) # write new version base.writeFile("./deploy/spell/spell_ie.js", engine_js_content) base.copy_file("spell.js.mem", "./deploy/spell/spell.js.mem") base.copy_file("./wasm/js/code.js", "./deploy/spell.js") base.copy_file("./wasm/js/index.html", "./deploy/index.html") base.delete_file("spell.js") base.delete_file("spell.js.mem") os.chdir(old_cur_dir)
def make(): print("[fetch & build]: v8") base_dir = base.get_script_dir() + "/../../core/Common/3dParty/v8" old_cur = os.getcwd() os.chdir(base_dir) if ("windows" == base.host_platform()): base.set_env("DEPOT_TOOLS_WIN_TOOLCHAIN", "0") base.set_env("GYP_MSVS_VERSION", "2015") if not base.is_dir("depot_tools"): base.cmd("git", ["clone", "https://chromium.googlesource.com/chromium/tools/depot_tools.git"]) else: os.chdir(base_dir + "/depot_tools") base.cmd("git", ["reset", "--hard"]) os.chdir(base_dir) os.environ["PATH"] = base_dir + "/depot_tools" + os.pathsep + os.environ["PATH"] if not base.is_dir("v8/out.gn"): base.delete_file("./.gclient") base.delete_file("./.gclient_entries") base.delete_dir("./.cipd") base.cmd("gclient") # -------------------------------------------------------------------------- # fetch if not base.is_dir("v8"): base.cmd("./depot_tools/fetch", ["v8"], True) os.chdir(base_dir + "/v8") base.cmd("git", ["checkout", "-b", "6.0", "branch-heads/6.0"], True) os.chdir(base_dir) # -------------------------------------------------------------------------- # correct if not base.is_dir("v8/out.gn"): base.cmd("gclient", ["sync"], True) if ("linux" == base.host_platform()): if base.is_dir("v8/third_party/binutils/Linux_x64/Release"): base.delete_dir("v8/third_party/binutils/Linux_x64/Release") if base.is_dir("v8/third_party/binutils/Linux_ia32/Release"): base.delete_dir("v8/third_party/binutils/Linux_ia32/Release") base.cmd("gclient", ["sync", "--no-history"]) if base.is_dir("v8/third_party/binutils/Linux_x64/Release/bin"): for file in os.listdir("v8/third_party/binutils/Linux_x64/Release/bin"): name = file.split("/")[-1] if ("ld.gold" != name): base.cmd("mv", ["v8/third_party/binutils/Linux_x64/Release/bin/" + name, "v8/third_party/binutils/Linux_x64/Release/bin/old_" + name]) base.cmd("ln", ["-s", "/usr/bin/" + name, "v8/third_party/binutils/Linux_x64/Release/bin/" + name]) if base.is_dir("v8/third_party/binutils/Linux_ia32/Release/bin"): for file in os.listdir("v8/third_party/binutils/Linux_ia32/Release/bin"): name = file.split("/")[-1] if ("ld.gold" != name): base.cmd("mv", ["v8/third_party/binutils/Linux_ia32/Release/bin/" + name, "v8/third_party/binutils/Linux_ia32/Release/bin/old_" + name]) base.cmd("ln", ["-s", "/usr/bin/" + name, "v8/third_party/binutils/Linux_ia32/Release/bin/" + name]) if ("windows" == base.host_platform()): base.replaceInFile("v8/build/config/win/BUILD.gn", ":static_crt", ":dynamic_crt") if ("mac" == base.host_platform()): base.replaceInFile("v8/build/config/mac/mac_sdk.gni", "if (mac_sdk_version != mac_sdk_min_build_override", "if (false && mac_sdk_version != mac_sdk_min_build_override") # -------------------------------------------------------------------------- # build os.chdir("v8") base_args64 = "target_cpu=\\\"x64\\\" v8_target_cpu=\\\"x64\\\" v8_static_library=true is_component_build=false v8_use_snapshot=false" base_args32 = "target_cpu=\\\"x86\\\" v8_target_cpu=\\\"x86\\\" v8_static_library=true is_component_build=false v8_use_snapshot=false" if config.check_option("platform", "linux_64"): base.cmd2("gn", ["gen", "out.gn/linux_64", "--args=\"is_debug=false " + base_args64 + " is_clang=false use_sysroot=false\""]) base.cmd("ninja", ["-C", "out.gn/linux_64"]) if config.check_option("platform", "linux_32"): base.cmd2("gn", ["gen", "out.gn/linux_32", "--args=\"is_debug=false " + base_args32 + " is_clang=false use_sysroot=false\""]) base.cmd("ninja", ["-C", "out.gn/linux_32"]) if config.check_option("platform", "mac_64"): base.cmd2("gn", ["gen", "out.gn/mac_64", "--args=\"is_debug=false " + base_args64 + "\""]) base.cmd("ninja", ["-C", "out.gn/mac_64"]) if config.check_option("platform", "win_64"): if (-1 != config.option("config").lower().find("debug")): base.cmd2("gn", ["gen", "out.gn/win_64/debug", "--args=\"is_debug=true " + base_args64 + " is_clang=false\""]) base.cmd("ninja", ["-C", "out.gn/win_64/debug"]) base.cmd2("gn", ["gen", "out.gn/win_64/release", "--args=\"is_debug=false " + base_args64 + " is_clang=false\""]) base.cmd("ninja", ["-C", "out.gn/win_64/release"]) if config.check_option("platform", "win_32"): if (-1 != config.option("config").lower().find("debug")): base.cmd2("gn", ["gen", "out.gn/win_32/debug", "--args=\"is_debug=true " + base_args32 + " is_clang=false\""]) base.cmd("ninja", ["-C", "out.gn/win_32/debug"]) base.cmd2("gn", ["gen", "out.gn/win_32/release", "--args=\"is_debug=false " + base_args32 + " is_clang=false\""]) base.cmd("ninja", ["-C", "out.gn/win_32/release"]) os.chdir(old_cur) if config.check_option("platform", "win_64_xp") or config.check_option("platform", "win_32_xp"): make_xp() return
compilation_level = "SIMPLE_OPTIMIZATIONS" base.cmd("java", ["-jar", "../../build/node_modules/google-closure-compiler-java/compiler.jar", "--compilation_level", compilation_level, "--js_output_file", "plugins.js", "--js", "../device_scale.js", "--js", "plugin_base.js", "--js", "plugin_base_api.js"]) code_content = base.readFile("plugins.js") dst_content = base.readFile("../plugins.js") startCode = dst_content.find("/*<code>*/") endCode = dst_content.find("/*</code>*/") code_content = code_content.replace("\r", "") code_content = code_content.replace("\n", "") code_content = code_content.replace("\\", "\\\\") code_content = code_content.replace("\"", "\\\"") content = "" content += dst_content[0:startCode] content += "/*<code>*/\"" content += code_content content += "\"" content += dst_content[endCode:] base.delete_file("plugins.js") base.delete_file("../plugins.js") base.writeFile("../plugins.js", content)
def make(): print("[fetch & build]: cef") base_dir = base.get_script_dir() + "/../../core/Common/3dParty/cef" 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"] url = "http://d2ettrnqo7v976.cloudfront.net/cef/3770/" for platform in platforms: if not config.check_option("platform", platform): continue url += (platform + "/cef_binary.7z") if not base.is_dir(platform): base.create_dir(platform) os.chdir(platform) data_url = base.get_file_last_modified_url(url) old_data_url = base.readFile("./cef_binary.7z.data") if (data_url != old_data_url): if base.is_file("./cef_binary.7z"): base.delete_file("./cef_binary.7z") if base.is_dir("build"): base.delete_dir("build") if base.is_dir("build"): continue # download if not base.is_file("./cef_binary.7z"): base.download(url, "./cef_binary.7z") # extract base.extract("./cef_binary.7z", "./") base.delete_file("./cef_binary.7z.data") base.writeFile("./cef_binary.7z.data", data_url) base.create_dir("./build") # deploy if ("mac_64" != platform): 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): base.cmd("mv", ["Chromium Embedded Framework.framework", "build/Chromium Embedded Framework.framework"]) os.chdir(base_dir) os.chdir(old_cur) return
def make(): is_no_brandind_build = base.is_file("config") platforms = config.option("platform").split() for platform in platforms: if not platform in config.platforms: continue print("------------------------------------------") print("BUILD_PLATFORM: " + platform) print("------------------------------------------") # makefile suffix file_suff = platform if (config.check_option("config", "debug")): file_suff += "_debug_" file_suff += config.option("branding") # setup qt qt_dir = base.qt_setup(platform) base.set_env("OS_DEPLOY", platform) # qmake CONFIG+=... config_param = base.qt_config(platform) # qmake ADDON qmake_addon = [] if ("" != config.option("qmake_addon")): qmake_addon.append(config.option("qmake_addon")) # non windows platform if not base.is_windows(): if ("1" == config.option("clean")): base.cmd(base.app_make(), [ "clean", "all", "-f", "makefiles/build.makefile_" + file_suff ], True) base.cmd(base.app_make(), [ "distclean", "-f", "makefiles/build.makefile_" + file_suff ], True) if base.is_file("makefiles/build.makefile_" + file_suff): base.delete_file("makefiles/build.makefile_" + file_suff) base.cmd(qt_dir + "/bin/qmake", ["-nocache", "build.pro", "CONFIG+=" + config_param] + qmake_addon) base.cmd(base.app_make(), ["-f", "makefiles/build.makefile_" + file_suff]) else: old_env = os.environ.copy() qmake_bat = [] qmake_bat.append( "call \"" + config.option("vs-path") + "/vcvarsall.bat\" " + ("x86" if base.platform_is_32(platform) else "x64")) if ("1" == config.option("clean")): qmake_bat.append( "call nmake clean all -f makefiles/build.makefile_" + file_suff) qmake_bat.append( "call nmake distclean -f makefiles/build.makefile_" + file_suff) qmake_addon_string = "" if ("" != config.option("qmake_addon")): qmake_addon_string = " \"" + config.option( "qmake_addon") + "\"" qmake_bat.append("if exist ./makefiles/build.makefile_" + file_suff + " del /F ./makefiles/build.makefile_" + file_suff) qmake_bat.append("call \"" + qt_dir + "/bin/qmake\" -nocache build.pro \"CONFIG+=" + config_param + "\"" + qmake_addon_string) qmake_bat.append("call nmake -f makefiles/build.makefile_" + file_suff) base.run_as_bat(qmake_bat) os.environ = old_env.copy() base.delete_file(".qmake.stash") if config.check_option( "module", "builder") and base.is_windows() and is_no_brandind_build: base.bash("../core/DesktopEditor/doctrenderer/docbuilder.com/build") return
def make_pro_file(makefiles_dir, pro_file): platforms = config.option("platform").split() for platform in platforms: if not platform in config.platforms: continue print("------------------------------------------") print("BUILD_PLATFORM: " + platform) print("------------------------------------------") old_env = os.environ.copy() # if you need change output libraries path - set the env variable # base.set_env("DESTDIR_BUILD_OVERRIDE", os.getcwd() + "/out/android/" + config.branding() + "/mobile") isAndroid = False if (-1 == platform.find("android")) else True if isAndroid: toolchain_platform = "linux-x86_64" if ("mac" == base.host_platform()): toolchain_platform = "darwin-x86_64" base.set_env("ANDROID_NDK_HOST", toolchain_platform) old_path = base.get_env("PATH") new_path = base.qt_setup(platform) + "/bin:" new_path += (base.get_env("ANDROID_NDK_ROOT") + "/toolchains/llvm/prebuilt/" + toolchain_platform + "/bin:") new_path += old_path base.set_env("PATH", new_path) if ("android_arm64_v8a" == platform): base.set_env("ANDROID_NDK_PLATFORM", "android-21") else: base.set_env("ANDROID_NDK_PLATFORM", "android-16") if (-1 != platform.find("ios")): base.hack_xcode_ios() # makefile suffix file_suff = platform if (config.check_option("config", "debug")): file_suff += "_debug_" file_suff += config.option("branding") # setup qt qt_dir = base.qt_setup(platform) base.set_env("OS_DEPLOY", platform) # qmake CONFIG+=... config_param = base.qt_config(platform) # qmake ADDON qmake_addon = [] if ("" != config.option("qmake_addon")): qmake_addon.append(config.option("qmake_addon")) if not base.is_file(qt_dir + "/bin/qmake") and not base.is_file( qt_dir + "/bin/qmake.exe"): print("THIS PLATFORM IS NOT SUPPORTED") continue # non windows platform if not base.is_windows(): if ("1" == config.option("clean")): base.cmd(base.app_make(), [ "clean", "-f", makefiles_dir + "/build.makefile_" + file_suff ], True) base.cmd(base.app_make(), [ "distclean", "-f", makefiles_dir + "/build.makefile_" + file_suff ], True) if base.is_file(makefiles_dir + "/build.makefile_" + file_suff): base.delete_file(makefiles_dir + "/build.makefile_" + file_suff) base.cmd(qt_dir + "/bin/qmake", ["-nocache", pro_file, "CONFIG+=" + config_param] + qmake_addon) base.cmd(base.app_make(), ["-f", makefiles_dir + "/build.makefile_" + file_suff]) else: qmake_bat = [] qmake_bat.append( "call \"" + config.option("vs-path") + "/vcvarsall.bat\" " + ("x86" if base.platform_is_32(platform) else "x64")) if ("1" == config.option("clean")): qmake_bat.append("call nmake clean -f " + makefiles_dir + "/build.makefile_" + file_suff) qmake_bat.append("call nmake distclean -f " + makefiles_dir + "/build.makefile_" + file_suff) qmake_addon_string = "" if ("" != config.option("qmake_addon")): qmake_addon_string = " \"" + config.option( "qmake_addon") + "\"" qmake_bat.append("if exist ./" + makefiles_dir + "/build.makefile_" + file_suff + " del /F ./" + makefiles_dir + "/build.makefile_" + file_suff) qmake_bat.append("call \"" + qt_dir + "/bin/qmake\" -nocache " + pro_file + " \"CONFIG+=" + config_param + "\"" + qmake_addon_string) qmake_bat.append("call nmake -f " + makefiles_dir + "/build.makefile_" + file_suff) base.run_as_bat(qmake_bat) os.environ = old_env.copy() base.delete_file(".qmake.stash")
import glob # patch for qmake... # remove after full undestanding... base_directory = os.getcwd() gzip_directory = base_directory + "/freetype-2.10.4/src/gzip" base.create_dir(gzip_directory + "/src") for file in glob.glob(gzip_directory + "/*"): file_name = os.path.basename(file) if not base.is_file(file): continue if (file_name.find("ft") != 0): base.copy_file(file, gzip_directory + "/src/" + file_name) base.delete_file(file) base.replaceInFile(gzip_directory + "/ftgzip.c", "<zlib.h>", "\"zlib.h\"") base.replaceInFile(gzip_directory + "/ftgzip.c", "#include \"zutil.c\"", "//#include \"zutil.c\"") base.replaceInFile(gzip_directory + "/ftgzip.c", "#include \"inftrees.c\"", "//#include \"inftrees.c\"") base.replaceInFile(gzip_directory + "/ftgzip.c", "#include \"infutil.c\"", "//#include \"infutil.c\"") base.replaceInFile(gzip_directory + "/ftgzip.c", "#include \"infcodes.c\"", "//#include \"infcodes.c\"") base.replaceInFile(gzip_directory + "/ftgzip.c", "#include \"infblock.c\"", "//#include \"infblock.c\"") base.replaceInFile(gzip_directory + "/ftgzip.c", "#include \"inflate.c\"", "//#include \"inflate.c\"") base.replaceInFile(gzip_directory + "/ftgzip.c", "#include \"adler32.c\"",