示例#1
0
def make_xp():
    if not is_xp_platform():
        return

    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")

    base.common_check_version("v8", "1", clean)

    if not base.is_dir("win_64") and not base.is_dir("win_32"):
        clean()

    if not base.is_dir("depot_tools"):
        base.cmd("git",
                 ["clone", "https://github.com/xulucity/depot_tools.git"])
        if ("windows" == base.host_platform()):
            # hack for 32 bit system!!!
            if base.is_file("depot_tools/cipd.ps1"):
                base.replaceInFile("depot_tools/cipd.ps1", "windows-386",
                                   "windows-amd64")

    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.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
示例#2
0
def make():
    print("make v8 v8")
    if not is_main_platform():
        make_xp()
        return

    if ("ios" == config.option("platform")):
        return

    print("[fetch & build]: v8")

    base_dir = base.get_script_dir() + "/../../core/Common/3dParty/v8"
    print("v8 base_dir" + base_dir)
    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")

    base.common_check_version("v8", "1", clean)

    if not base.is_dir("v8/out.gn"):
        clean()

    if not base.is_dir("depot_tools"):
        base.cmd("git",
                 ["clone", "https://github.com/xulucity/depot_tools.git"])
        if ("windows" == base.host_platform()):
            # hack for 32 bit system!!!
            if base.is_file("depot_tools/cipd.ps1"):
                base.replaceInFile("depot_tools/cipd.ps1", "windows-386",
                                   "windows-amd64")

    os.environ[
        "PATH"] = base_dir + "/depot_tools" + os.pathsep + os.environ["PATH"]

    if not base.is_dir("v8/out.gn"):
        base.cmd("gclient")

    # --------------------------------------------------------------------------
    # fetch
    if not base.is_dir("v8"):
        base.cmd("./depot_tools/fetch", ["v8"], True)
        os.mkdir(base_dir + "/v8")
        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"):

        # windows hack (delete later) ----------------------
        if ("windows" == base.host_platform()):
            base.delete_dir_with_access_error("v8/buildtools/win")
            base.cmd("gclient", ["sync", "--force"], True)
        else:
            base.cmd("gclient", ["sync"], True)

        # normal version !!!
        #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=" + is_use_clang() +
            " use_sysroot=false treat_warnings_as_errors=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=" + is_use_clang() +
            " use_sysroot=false treat_warnings_as_errors=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)

    make_xp()

    return
示例#3
0
def make():
  print("[fetch & build]: icu")

  base_dir = base.get_script_dir() + "/../../core/Common/3dParty/icu"
  old_cur = os.getcwd()
  os.chdir(base_dir)

  icu_major = "58"
  icu_minor = "2"

  if not base.is_dir("icu"):
    base.cmd("svn", ["export", "https://github.com/unicode-org/icu/tags/release-" + icu_major + "-" + icu_minor + "/icu4c", "./icu"])

  if ("windows" == base.host_platform()):
    need_platforms = []
    if (-1 != config.option("platform").find("win_64")):
      need_platforms.append("win_64")
    if (-1 != config.option("platform").find("win_32")):
      need_platforms.append("win_32")
    for platform in need_platforms:
      if not config.check_option("platform", platform) and not config.check_option("platform", platform + "_xp"):
        continue
      if not base.is_dir(platform + "/build"):
        base.create_dir(platform)
        base.vcvarsall_start("x64" if ("win_64" == platform) else "x86")
        base.cmd("MSBuild.exe", ["icu/source/allinone/allinone.sln", "/p:Configuration=Release", "/p:PlatformToolset=v140", "/p:Platform=" + ("X64" if ("win_64" == platform) else "Win32")])
        base.vcvarsall_end()
        bin_dir = "icu/bin64/" if ("win_64" == platform) else "icu/bin/"
        lib_dir = "icu/lib64/" if ("win_64" == platform) else "icu/lib/"
        base.create_dir(platform + "/build")
        base.copy_file(bin_dir + "icudt" + icu_major + ".dll", platform + "/build/")
        base.copy_file(bin_dir + "icuuc" + icu_major + ".dll", platform + "/build/")
        base.copy_file(lib_dir + "icudt.lib", platform + "/build/")
        base.copy_file(lib_dir + "icuuc.lib", platform + "/build/")

  platform = ""
  if ("linux" == base.host_platform()):
    platform = "linux_64"
    if not base.is_dir(platform + "/build"):
      base.replaceInFile("./icu/source/i18n/digitlst.cpp", "xlocale", "locale")      

  if ("mac" == base.host_platform()):
    platform = "mac_64"
    if not base.is_dir(platform + "/build"):
      base.replaceInFile("./icu/source/tools/pkgdata/pkgdata.cpp", "cmd, \"%s %s -o %s%s %s %s%s %s %s\",", "cmd, \"%s %s -o %s%s %s %s %s %s %s\",")

  if (-1 != config.option("platform").find("ios")):
    if not base.is_dir("build"):
      base.bash("./icu_ios")
  elif ("" != platform) and not base.is_dir(platform + "/build"):
    base.create_dir(platform)
    os.chdir("icu/source")
    base.cmd("./runConfigureICU", ["Linux" if "linux" == base.host_platform() else "MacOSX"])
    old_dest_dir = base.get_env("DESTDIR")
    base.set_env("DESTDIR", base_dir + "/" + platform)
    base.cmd("make", ["install"])
    if ("" == old_dest_dir):
      os.environ.pop("DESTDIR")
    else:
      base.set_env("DEST_DIR", old_dest_dir)
    os.chdir("../..")
    base.create_dir(platform + "/build")
    if ("linux_64" == platform):
      base.copy_file("icu/source/lib/libicudata.so." + icu_major + "." + icu_minor, platform + "/build/libicudata.so." + icu_major)
      base.copy_file("icu/source/lib/libicuuc.so." + icu_major + "." + icu_minor, platform + "/build/libicuuc.so." + icu_major)
    elif ("mac_64" == platform):
      base.copy_file("icu/source/lib/libicudata." + icu_major + "." + icu_minor + ".dylib", platform + "/build/libicudata." + icu_major + ".dylib")
      base.copy_file("icu/source/lib/libicuuc." + icu_major + "." + icu_minor + ".dylib", platform + "/build/libicuuc." + icu_major + ".dylib")
      
  os.chdir(old_cur)
  return
示例#4
0
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 check_npmPath():
    path = base.get_env('PATH')
    npmPath = os.environ['AppData'] + '\\npm'
    if (path.find(npmPath) == -1):
        base.set_env('PATH', npmPath + os.pathsep + path)
示例#6
0
  elif ("mac" == platform):
    start_mac_services()

  base.print_info('Build modules')
  base.cmd_in_dir('../build_tools', 'python', ['configure.py', '--branch', 'develop', '--module', 'develop', '--update', '1', '--update-light', '1', '--clean', '0', '--sdkjs-addon', 'comparison', '--sdkjs-addon', 'content-controls', '--web-apps-addon', 'mobile', '--sdkjs-addon', 'sheet-views'])
  base.cmd_in_dir('../build_tools', 'python', ['make.py'])
  
  run_integration_example()
  
  base.create_dir('App_Data')

  install_module('DocService')
  install_module('Common')
  install_module('FileConverter')
  install_module('SpellChecker')

  base.set_env('NODE_ENV', 'development-' + platform)
  base.set_env('NODE_CONFIG_DIR', '../../Common/config')

  if ("mac" == platform):
    base.set_env('DYLD_LIBRARY_PATH', '../../FileConverter/bin/')
  elif ("linux" == platform):
    base.set_env('LD_LIBRARY_PATH', '../../FileConverter/bin/')

  run_module('DocService/sources', ['server.js'])
  run_module('DocService/sources', ['gc.js'])
  run_module('FileConverter/sources', ['convertermaster.js'])
  run_module('SpellChecker/sources', ['server.js'])
except SystemExit:
  input("Ignoring SystemExit. Press Enter to continue...")
示例#7
0
def make():
    if ("1" == base.get_env("OO_NO_BUILD_JS")):
        return

    base.set_env('NODE_ENV', 'production')

    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", False)
        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/"

        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 + "/mobile/sdkjs/banners_word.js")

        base.join_scripts([
            vendor_dir_src + "xregexp/xregexp-all-min.js",
            vendor_dir_src + "underscore/underscore-min.js",
            base_dir + "/../sdkjs/common/externs/jszip-utils.js",
            base_dir + "/../sdkjs/common/Native/native.js",
            base_dir + "/../sdkjs/cell/native/common.js",
            base_dir + "/../sdkjs/common/Native/jquery_native.js"
        ], out_dir + "/mobile/sdkjs/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 + "/mobile/sdkjs/banners_slide.js")

        base.create_dir(out_dir + "/mobile/sdkjs/word")
        base.join_scripts([
            out_dir + "/mobile/sdkjs/banners_word.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_cell.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_slide.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_word.js")
        base.delete_file(out_dir + "/mobile/sdkjs/banners_cell.js")
        base.delete_file(out_dir + "/mobile/sdkjs/banners_slide.js")
    return
def check_pythonPath():
    path = base.get_env('PATH')
    if (path.find(sys.exec_prefix) == -1):
        base.set_env('PATH', sys.exec_prefix + os.pathsep + path)
示例#9
0
def check_gitPath():
  path = base.get_env('PATH')
  gitExecPath = base.find_file(os.path.join(os.environ['PROGRAMW6432'], 'Git\\cmd'), 'git.exe') or base.find_file(os.path.join(os.environ['ProgramFiles(x86)'], 'Git\\cmd'), 'git.exe')
  gitDir = base.get_script_dir(gitExecPath)
  if (path.find(gitDir) == -1):
    base.set_env('PATH', gitDir + os.pathsep + path)
示例#10
0
sys.path.append('scripts/core_common/modules')
import config
import base
import build
import build_js
import build_server
import deploy
import make_common
import config_server as develop_config_server
import dependence

# parse configuration
config.parse()

base_dir = base.get_script_dir(__file__)
base.set_env("BUILD_PLATFORM", config.option("platform"))

# branding
if ("1" != base.get_env("OO_RUNNING_BRANDING")) and (
        "" != config.option("branding")):
    branding_dir = base_dir + "/../" + config.option("branding")

    if ("1" == config.option("update")):
        is_exist = True
        if not base.is_dir(branding_dir):
            is_exist = False
            base.cmd(
                "git",
                ["clone", config.option("branding-url"), branding_dir])

        base.cmd_in_dir(branding_dir, "git", ["fetch"], True)
示例#11
0
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
示例#12
0
def make():
    if not is_main_platform():
        make_xp()
        return

    base_dir = base.get_script_dir() + "/../../core/Common/3dParty/v8"
    if ("ios" == config.option("platform")):
        return

    if (-1 != config.option("platform").find("android")):
        base.cmd_in_dir(base_dir + "/android", "python", ["./make.py"])
        if (-1 == config.option("platform").find("linux")) and (
                -1 == config.option("platform").find("mac")) and (
                    -1 == config.option("platform").find("win")):
            return

    if ("mac" == base.host_platform()) and (
            -1 == config.option("config").find("use_v8")):
        return

    print("[fetch & build]: v8")
    old_env = dict(os.environ)

    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")

    base.common_check_version("v8", "1", clean)

    if not base.is_dir("v8/out.gn"):
        clean()

    if not base.is_dir("depot_tools"):
        base.cmd("git", [
            "clone",
            "https://chromium.googlesource.com/chromium/tools/depot_tools.git"
        ])
        if ("windows" == base.host_platform()):
            # hack for 32 bit system!!!
            if base.is_file("depot_tools/cipd.ps1"):
                base.replaceInFile("depot_tools/cipd.ps1", "windows-386",
                                   "windows-amd64")

    os.environ[
        "PATH"] = base_dir + "/depot_tools" + os.pathsep + os.environ["PATH"]

    if not base.is_dir("v8/out.gn"):
        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"):

        # windows hack (delete later) ----------------------
        if ("windows" == base.host_platform()):
            base.delete_dir_with_access_error("v8/buildtools/win")
            base.cmd("git", ["config", "--system", "core.longpaths", "true"])
            base.cmd("gclient", ["sync", "--force"], True)
        else:
            base.cmd("gclient", ["sync"], True)

        # normal version !!!
        #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")
            base.replaceInFile("v8/build/mac/find_sdk.py",
                               "^MacOSX(10\\.\\d+)\\.sdk$",
                               "^MacOSX(1\\d\\.\\d+)\\.sdk$")

            if (11003 <= base.get_mac_sdk_version_number()):
                base.copy_dir(
                    "v8/third_party/llvm-build/Release+Asserts/include",
                    "v8/third_party/llvm-build/Release+Asserts/__include")
                base.delete_dir(
                    "v8/third_party/llvm-build/Release+Asserts/include")
                base.replaceInFile(
                    "v8/build/config/mac/BUILD.gn",
                    "\"-mmacosx-version-min=$mac_deployment_target\",",
                    "\"-mmacosx-version-min=$mac_deployment_target\",\n    \"-Wno-deprecated-declarations\","
                )

    # --------------------------------------------------------------------------
    # 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=" + is_use_clang() +
            " use_sysroot=false treat_warnings_as_errors=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=" + is_use_clang() +
            " use_sysroot=false treat_warnings_as_errors=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)
    os.environ.clear()
    os.environ.update(old_env)

    make_xp()
    return
示例#13
0
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 = dict(os.environ)

    # 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)
      base.set_env("ANDROID_NDK_PLATFORM", "android-21")

    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.clear()
    os.environ.update(old_env)

    base.delete_file(".qmake.stash")