예제 #1
0
def build(arch, build):
  path = None

  if "wind" in arch.lower():
    path = os.path.join(getRootPath(), "win", "NvFBC")

  if "linux" in arch.lower():
    path = os.path.join(getRootPath(), "linux", "NvFBC")

  if path == None:
    print "grid sdk is not supported on this platform"
    return

  toPath = devtools.getInstallPath(arch)
  devtools.copyWindowsFiles(path, os.path.abspath(os.path.join(toPath, "include", "NvFBC")), ".h")
  devtools.copyWindowsFiles(os.path.join(path, "..", "NvEncodeAPI"), os.path.abspath(os.path.join(toPath, "include", "NvEncodeAPI")), ".h")
  print "copied"
예제 #2
0
파일: angle.py 프로젝트: cheersalam/webrtc
def build(arch, build):
    angleDir = getExtactedFolderPath()
    toPath = devtools.getInstallPath(arch)

    target_arch = "32" if "32" in arch.lower() else "64"
    target_cpu = "x86" if target_arch == "32" else "x64"
    is_debug = "false" if "rel" in build.lower() else "true"

    if target_arch == "64":
        print "We can build x64, but findAngle.cmake don't support it, update it and remove this line"
        return

    if not os.path.exists(angleDir) or not os.listdir(angleDir):
        try:
            os.mkdir(getRootPath())
        except os.error:
            pass

        subprocess.check_call(
            "git clone https://chromium.googlesource.com/angle/angle",
            cwd=getRootPath(),
            shell=True)

    subprocess.check_call("git fetch", cwd=angleDir, shell=True)
    subprocess.check_call(
        "git reset --hard 59b1ed4a60fc9cf57c3914eb4851ec94c8df21a9",
        cwd=angleDir,
        shell=True)

    subprocess.check_call("python scripts/bootstrap.py",
                          cwd=angleDir,
                          shell=True)
    subprocess.check_call("gclient sync", cwd=angleDir, shell=True)

    if "lin" in arch:
        subprocess.check_call("./build/install-build-deps.sh",
                              cwd=angleDir,
                              shell=True)

    try:
        os.makedirs(os.path.dirname(getArgsPath(build, target_cpu)))
    except os.error:
        pass

    GN_CONFIG = ""
    if "wind" in arch:
        GN_CONFIG = GN_WINDOWS_CONFIG
    else:
        GN_CONFIG = GN_LINUX_MAC_OS_CONFIG

    with open(getArgsPath(build, target_cpu), "w") as argsFile:
        argsFile.write(GN_CONFIG.format(target_cpu, is_debug))

    build_path = build + "/" + target_cpu
    subprocess.check_call("gn gen out/" + build_path, cwd=angleDir, shell=True)
    subprocess.check_call("ninja -C out/" + build_path,
                          cwd=angleDir,
                          shell=True)

    distutils.dir_util.copy_tree(
        os.path.join(angleDir, "include"),
        os.path.abspath(os.path.join(toPath, "include", "angle")))
    distutils.dir_util.copy_tree(
        os.path.join(angleDir, "src", "common"),
        os.path.abspath(os.path.join(toPath, "include", "angle", "common")))
    distutils.dir_util.copy_tree(
        os.path.join(angleDir, "util"),
        os.path.abspath(os.path.join(toPath, "include", "angle", "util")))

    try:
        os.makedirs(os.path.join(toPath, "pdb", "angle", build))
    except os.error as error:
        pass

    try:
        os.makedirs(os.path.join(toPath, "lib", "angle", build))
    except os.error as error:
        pass

    try:
        os.makedirs(os.path.join(toPath, "bin", "angle", build))
    except os.error as error:
        pass

    dll_path = os.path.join(toPath, "bin", "angle", build)
    pdb_path = os.path.join(toPath, "pdb", "angle", build)
    lib_path = os.path.join(toPath, "lib", "angle", build)

    for libs in LIB_LIST:
        if "wind" in arch:
            shutil.copy(
                os.path.join(getOutPath(build, target_cpu), libs + ".dll"),
                dll_path)
            shutil.copy(
                os.path.join(getOutPath(build, target_cpu), libs + ".dll.pdb"),
                pdb_path)
            shutil.copy(
                os.path.join(getOutPath(build, target_cpu), libs + ".dll.lib"),
                os.path.join(toPath, "lib"))
        elif "lin" in arch:
            shutil.copy(
                os.path.join(getOutPath(build, target_cpu), libs + ".TOC"),
                pdb_path)
            shutil.copy(
                os.path.join(getOutPath(build, target_cpu), libs + ".so"),
                lib_path)
        elif "darwin" in arch:
            shutil.copy(
                os.path.join(getOutPath(build, target_cpu), libs + ".TOC"),
                pdb_path)
            shutil.copy(
                os.path.join(getOutPath(build, target_cpu), libs + ".dylib"),
                dll_path)

    if "wind" in arch:
        shutil.copy(
            os.path.join(getOutPath(build, target_cpu), WINDOWS_LIB + ".dll"),
            dll_path)
        shutil.copy(
            os.path.join(getOutPath(build, target_cpu),
                         WINDOWS_LIB + ".dll.pdb"), pdb_path)
        shutil.copy(
            os.path.join(getOutPath(build,
                                    target_cpu), WINDOWS_LIB + ".dll.lib"),
            os.path.join(toPath, "lib"))
    else:
        shutil.copy(
            os.path.join(getOutPath(build, target_cpu),
                         LINUX_MACOS_LIB + ".TOC"), pdb_path)
        shutil.copy(
            os.path.join(getOutPath(build, target_cpu),
                         LINUX_MACOS_LIB + ".so"), lib_path)
예제 #3
0
파일: build.py 프로젝트: cheersalam/webrtc
def prepareResources():
    print "Start prepare resources"

    prepareArgs()
    if len(archs) > 1:
        print "Invalid arch"
        exit(-1)

    arch = archs[0]

    installPath3rdparty = devtools.getInstallPath(arch)
    outdir = os.path.abspath(os.path.join(module_path(), g_outdirname))
    linuxsharedlib = os.path.join(outdir, "shared", "usr", "lib", "LiquidSky")
    winplayerlib = os.path.join(outdir, "player", "lib")
    winstreamer = os.path.join(outdir, "streamer")
    cfiles = [
        {
            'name': "avcodec",
            'ext': ".dll",
            'path': winstreamer
        },
        {
            'name': "avcodec",
            'ext': ".dll",
            'path': winplayerlib
        },
        {
            'name': "avformat",
            'ext': ".dll",
            'path': winstreamer
        },
        {
            'name': "avformat",
            'ext': ".dll",
            'path': winplayerlib
        },
        {
            'name': "avutil",
            'ext': ".dll",
            'path': winstreamer
        },
        {
            'name': "avutil",
            'ext': ".dll",
            'path': winplayerlib
        },
        {
            'name': "swscale",
            'ext': ".dll",
            'path': winstreamer
        },
        {
            'name': "swscale",
            'ext': ".dll",
            'path': winplayerlib
        },
        {
            'name': "u2ec",
            'ext': ".dll",
            'path': winstreamer
        },
        {
            'name': "CrashSender.",
            'ext': ".exe",
            'path': winstreamer
        },
        {
            'name': "crashrpt_lang",
            'ext': ".ini",
            'path': winstreamer
        },
        {
            'name': "app-sender",
            'ext': ".exe",
            'path': winstreamer
        },
        {
            'name': "process-monitor",
            'ext': ".exe",
            'path': winstreamer
        },
        {
            'name': "usb-service",
            'ext': ".exe",
            'path': winstreamer
        },
        {
            'name': "pdb",
            'ext': ".pdb",
            'path': os.path.join(outdir, "pdb")
        },
    ]
    devtools.findAndCopy(installPath3rdparty, cfiles)

    if arch == "windows-x86_32":
        cefReleaseDir = os.path.join(module_path(), "3rdparty", "cef",
                                     "windows32", "Release")
        cfiles = [
            {
                'name': "chrome_elf",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "d3dcompiler_43",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "d3dcompiler_47",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "libcef",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "widevinecdmadapter",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "bin",
                'ext': ".bin",
                'path': winplayerlib
            },
        ]
        devtools.findAndCopy(cefReleaseDir, cfiles)

        angleReleaseDir = os.path.join(installPath3rdparty, "bin", "angle",
                                       "Release")
        cfiles = [
            {
                'name': "angle_util",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "libEGL",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "libGLESv1_CM",
                'ext': ".dll",
                'path': winplayerlib
            },
            {
                'name': "libGLESv2",
                'ext': ".dll",
                'path': winplayerlib
            },
        ]
        devtools.findAndCopy(angleReleaseDir, cfiles)

        cefResourcesDir = os.path.join(module_path(), "3rdparty", "cef",
                                       "windows32", "Resources")
        cfiles = [
            {
                'name': "",
                'ext': "",
                'path': winplayerlib,
                'save_folders': True
            },
        ]
        devtools.findAndCopy(cefResourcesDir, cfiles)

        imagesDir = os.path.join(module_path(), "testdata", "images")
        cfiles = [
            {
                'name': "",
                'ext': "png",
                'path': os.path.join(winplayerlib, "images"),
                'save_folders': True
            },
        ]
        devtools.findAndCopy(imagesDir, cfiles)

        usbDriverDir = os.path.join(module_path(), "3rdparty", "u2ec")
        cfiles = [
            {
                'name': "usb_driver",
                'ext': "msi",
                'path': winplayerlib
            },
        ]
        devtools.findAndCopy(usbDriverDir, cfiles)


#+      copytree(os.path.join(module_path(), "testdata", "localhost"), os.path.join(outdir, "player", "localhost"))

    if "wind" in pfm:
        cfiles = [
            {
                'name': "pdb",
                'ext': ".pdb",
                'path': os.path.join(outdir, "pdb")
            },
        ]
        buildtype = "Release"
        buildPath = devtools.getTmpPath(devtools.rootDir, arch, buildtype)
        devtools.findAndCopy(buildPath, cfiles)
        devtools.findAndCopy(buildPath + "-8", cfiles)

    print "Resources were successfully copied"

    #  print "not include pack for now TODO: build bot option"
    if "wind" in pfm:
        outputResourceFile = os.path.join(winplayerlib, "localhost.pack")

    if "dar" in pfm:
        outputResourceFile = os.path.join(outdir, "LiquidSky.app", "Contents",
                                          "Resources", "localhost.pack")

    respack.packFolder(
        outputResourceFile,
        os.path.join(module_path(), "testdata", "localhost_devel",
                     "localhost"), "localhost")
    print "Pack file created"
예제 #4
0
def build(arch, build):
    if "wind" in arch:
        print "Extract ffmpeg"
        unzipcmd = [
            sevenz.cmd, "x", "-y", "-o" + getExtactedFolderPath(),
            findGridSdkZip(getRootPath())
        ]
        proc = subprocess.call(unzipcmd)

        ffmpegDir = getExtactedFolderPath()
        toPath = devtools.getInstallPath(arch)
        distutils.dir_util.copy_tree(
            os.path.join(ffmpegDir, "include"),
            os.path.abspath(os.path.join(toPath, "include")))
        devtools.copyWindowsFiles(os.path.join(ffmpegDir, "bin"),
                                  os.path.abspath(os.path.join(toPath, "bin")),
                                  ".dll")
        devtools.copyWindowsFiles(os.path.join(ffmpegDir, "bin"),
                                  os.path.abspath(os.path.join(toPath, "lib")),
                                  ".lib")
        devtools.copyWindowsFiles(
            os.path.join(ffmpegDir),
            os.path.abspath(os.path.join(toPath, "pdb", "ffmpeg")), ".pdb")
    elif "lin" in arch or "dar" in arch:
        workingDir = getWorkingFolderPath()
        if not os.path.isdir(workingDir):
            print "Extract ffmpeg"
            bz = findbz(getRootPath())
            unzipcmd = ["tar", "jxvf", bz, "-C", getRootPath()]
            proc = subprocess.call(unzipcmd)
            devtools.failIfReturnCodeNotZero(proc)
        shutil.copytree(workingDir, os.path.join(workingDir, "..", arch))
        workingDir = os.path.join(workingDir, "..", arch)

        print "configure"
        perlcmd = [
            "./configure", "--disable-bzlib", "--disable-iconv",
            "--disable-lzma", "--disable-sdl", "--disable-xlib",
            "--disable-zlib", "--disable-yasm", "--disable-avfilter",
            "--disable-avdevice", "--disable-swresample", "--disable-ffmpeg",
            "--disable-ffprobe", "--disable-ffserver", "--disable-ffplay",
            "--disable-static", "--enable-shared", "--disable-everything",
            "--enable-hwaccels", "--enable-decoder=h264",
            "--enable-decoder=h264_vdpau", "--enable-vaapi",
            "--enable-muxer=matroska", "--enable-demuxer=matroska",
            "--enable-demuxer=mpegts", "--enable-parser=h264",
            "--enable-protocol=file",
            "--prefix=" + devtools.getInstallPath(arch)
        ]

        extra = []

        if "darwin" in arch and "x86_32" in arch:
            extra = [
                "--sysroot=" + devtools.getMacosSDK(),
                "--extra-cflags=\"-arch\ i386\ -DDMACOSX_DEPLOYMENT_TARGET=" +
                devtools.getMacosSDKVersion() + "\ -mmacosx-version-min=" +
                devtools.getMacosSDKVersion() + "\"",
                "--extra-ldflags=\"-arch\ i386\ -isysroot\ " +
                devtools.getMacosSDK() + "\ -mmacosx-version-min=" +
                devtools.getMacosSDKVersion() + "\"", "--arch=x86_32",
                "--target-os=darwin", "--enable-cross-compile"
            ]

        if "darwin" in arch and "x86_64" in arch:
            extra = [
                "--sysroot=" + devtools.getMacosSDK(),
                "--extra-cflags=\"-arch\ x86_64\ -DDMACOSX_DEPLOYMENT_TARGET="
                + devtools.getMacosSDKVersion() + "\ -mmacosx-version-min=" +
                devtools.getMacosSDKVersion() + "\"",
                "--extra-ldflags=\"-arch\ x86_64\ -isysroot\ " +
                devtools.getMacosSDK() + "\ -mmacosx-version-min=" +
                devtools.getMacosSDKVersion() + "\"", "--arch=x86_64",
                "--target-os=darwin", "--enable-cross-compile"
            ]
        for e in extra:
            perlcmd.append(e)

        print perlcmd
        proc = subprocess.call(perlcmd, cwd=workingDir, env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        print "building " + name
        devenvcmd = ["make"]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        devenvcmd = ["make", "install"]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        if "darwin" in arch:
            folderPath = os.path.join(devtools.getInstallPath(arch), "lib")
            names = [
                "libavutil.dylib", "libavcodec.dylib", "libavformat.dylib",
                "libswscale.dylib"
            ]
            lnames = [
                "libavutil.55.dylib", "libavcodec.57.dylib",
                "libavformat.57.dylib", "libswscale.4.dylib"
            ]

            prefixNewId = "@rpath/"
            newRPath = "@loader_path/"
            newDep = "@loader_path/"

            for n in names:
                print "----------------------- preparing... " + n

                path = os.path.join(folderPath, n)
                devtools.changeIdMacOsDLyb(folderPath, path, prefixNewId + n)
                devtools.changeRpathMacOsDLyb(folderPath, path, newRPath)

                index = 0
                for lname in lnames:
                    newname = names[index]
                    index = index + 1
                    print "-------- find change: " + lname + " to " + newname
                    devtools.changeDepsMacOsDLyb(
                        folderPath, os.path.join(folderPath, lname),
                        os.path.join(newDep, newname), path)
예제 #5
0
def build(arch, build):
    workingDir = getWorkingFolderPath()
    if not os.path.isdir(workingDir):
        print "Extract openssl"
        gz = findZip(getRootPath())
        tar = gz[:-3]
        unzipcmd = [sevenz.cmd, "x", "-y", "-o" + getRootPath(), gz]
        proc = subprocess.call(unzipcmd)
        unzipcmd = [sevenz.cmd, "x", "-y", "-o" + getRootPath(), tar]
        proc = subprocess.call(unzipcmd)
        fixFileStruct(getRootPath(), workingDir)

    newwd = os.path.join(workingDir, "..", arch)

    devtools.rmtree(newwd)
    shutil.copytree(workingDir, newwd)
    workingDir = newwd

    if "wind" in arch:
        if "Debug" in build:
            print "no debug build for openssl"
            return
        print "perl"
        buildtype = "VC-WIN32"
        asmcommand = "do_nasm.bat"
        if "64" in arch:
            buildtype = "VC-WIN64A"
            asmcommand = "do_win64a.bat"

        perlcmd = [
            "perl.exe", "Configure", buildtype,
            "--prefix=" + devtools.getInstallPath(arch),
            "--openssldir=" + devtools.getInstallPath(arch),
            "enable-static-engine", "no-shared", "enable-hw"
        ]
        proc = subprocess.call(perlcmd, cwd=workingDir, env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        #    print "do nasm"
        #    domscmd = [os.path.abspath(os.path.join(workingDir, "ms", asmcommand))]
        #    proc = subprocess.call(domscmd, cwd=workingDir, env=os.environ.copy())
        #    devtools.failIfReturnCodeNotZero(proc)

        print "building " + name
        devenvcmd = [
            "nmake.exe", "-f",
            os.path.abspath(os.path.join(workingDir, "makefile"))
        ]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        devenvcmd = [
            "nmake.exe", "-f",
            os.path.abspath(os.path.join(workingDir, "makefile")),
            "install_sw", "install_ssldirs"
        ]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)
    elif "lin" in arch:
        print "perl"
        perlcmd = [os.path.abspath(os.path.join(workingDir, "config"))]

        perlcmd.append("--prefix=" + devtools.getInstallPath(arch))
        print perlcmd
        proc = subprocess.call(perlcmd, cwd=workingDir, env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        print "building " + name
        devenvcmd = ["make"]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        devenvcmd = ["make", "install"]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)
    elif "darwin" in arch:
        print "perl"
        perlcmd = [
            "perl",
            os.path.abspath(os.path.join(workingDir, "Configure"))
        ]

        if "x86_32" in arch:
            perlcmd.append("darwin-i386-cc")
            archname = "i386"
        if "x86_64" in arch:
            perlcmd.append("darwin64-x86_64-cc")
            archname = "x86_64"

        perlcmd.append("--prefix=" + devtools.getInstallPath(arch))
        print perlcmd
        proc = subprocess.call(perlcmd, cwd=workingDir, env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        sedcmd = [
            "sed", "-ie", 's!^CFLAG=!CFLAG=-isysroot ' +
            devtools.getMacosSDK() + ' -arch ' + archname +
            ' -mmacosx-version-min=' + devtools.getMacosSDKVersion() + ' !',
            os.path.abspath(os.path.join(workingDir, "Makefile"))
        ]
        print sedcmd
        proc = subprocess.call(sedcmd, cwd=workingDir, env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        print "building " + name
        devenvcmd = ["make"]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

        devenvcmd = ["make", "install"]
        proc = subprocess.call(devenvcmd,
                               cwd=workingDir,
                               env=os.environ.copy())
        devtools.failIfReturnCodeNotZero(proc)

    return True
예제 #6
0
def build(arch, build):
    archl = arch.lower()
    installPath = devtools.getInstallPath(arch)
    if "ios" in archl:
        buildscript = os.path.join(getRootPath(), "ios-build",
                                   "build-libstdc++.sh")
        print buildscript
        proc = subprocess.call(
            [os.path.abspath(buildscript),
             os.path.abspath(installPath)])
    else:
        if not os.path.isdir(getExtactedFolderPath()):
            print "Extract boost"
            try:
                findBoostZip(getRootPath())
            except:
                url = 'https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.7z'
                fname = os.path.join(getRootPath(), url.rsplit('/', 1)[1])

                devtools.downloadFile(url, fname)

            unzipcmd = [
                sevenz.cmd, "x", "-y", "-o" + getRootPath(),
                findBoostZip(getRootPath())
            ]
            proc = subprocess.call(unzipcmd)
            fixBoostFileStruct(getRootPath(), getRootPath())
        if "wind" in archl:
            bjam_name = "bjam.exe"
            if "2013" in devtools.g_msvsVersion:
                toolset_name = "--toolset=msvc-12.0"
            elif "2015" in devtools.g_msvsVersion:
                toolset_name = "--toolset=msvc-14.0"
            elif "2017" in devtools.g_msvsVersion:
                toolset_name = "--toolset=msvc-14.1"
            else:
                raise Exception("unknown msvs version")

            bootstrap_name = "bootstrap.bat"
        elif "lin" in archl or "dar" in archl:
            bjam_name = "bjam"
            toolset_name = ""
            bootstrap_name = "bootstrap.sh"

        if "dar" in archl:
            toolset_name = "--toolset=clang"
            sdk = devtools.getMacosSDKVersion()
            sdkPath = "/Developer/SDKs/MacOSX" + sdk + ".sdk"
            if os.path.isdir(sdkPath):
                print "mac os x " + sdk + " sdk exists"
            else:
                print "please place mac os x " + sdk + " sdk to /Deveveloper"

        bjam = os.path.join(getExtactedFolderPath(), bjam_name)
        if not os.path.isfile(bjam):
            proc = subprocess.call([
                os.path.abspath(
                    os.path.join(getExtactedFolderPath(), bootstrap_name))
            ],
                                   cwd=getExtactedFolderPath(),
                                   env=os.environ.copy())

        libdir = os.path.join(getExtactedFolderPath(), "stage", "lib")

        boostlibs = [
            "thread", "system", "atomic", "date_time", "filesystem", "chrono",
            "coroutine", "context"
        ]

        buildBoost = [os.path.abspath(bjam), "-q"]
        buildBoost.append(toolset_name)
        buildBoost.append("variant=" + build.lower())
        buildBoost.append("link=static")
        buildBoost.append("runtime-link=static")
        buildBoost.append("define=BOOST_NO_RTTI")
        buildBoost.append("define=BOOST_EXCEPTION_DISABLE")
        buildBoost.append("define=BOOST_REGEX_NO_LIB")

        if "x86" in archl:
            buildBoost.append("architecture=x86")
        elif "arm" in archl:
            buildBoost.append("architecture=arm")

        if "64" in archl:
            buildBoost.append("address-model=64")
        elif "32" in archl or "386" in archl:
            buildBoost.append("address-model=32")

        if "dar" in archl:
            sdk = devtools.getMacosSDKVersion()
            buildBoost.append("macosx-version=" + sdk)
            buildBoost.append("macosx-version-min=" + sdk)

        if "lin" in archl:
            buildBoost.append("cxxflags=-fPIC")

        if "dar" in archl:
            buildBoost.append("cflags=-mmacosx-version-min=" + sdk)
            #      buildBoost.append("mflags=-mmacosx-version-min=" + sdk)
            #      buildBoost.append("mmflags=-mmacosx-version-min=" + sdk)
            buildBoost.append(
                "cxxflags=-fvisibility=hidden -std=c++11 -stdlib=libc++ -mmacosx-version-min="
                + sdk)
            buildBoost.append(
                "linkflags=-stdlib=libc++ -mmacosx-version-min=" + sdk)

        buildBoost.append("-j" + str(multiprocessing.cpu_count()))
        for lib in boostlibs:
            buildBoost.append("--with-" + lib)
        buildBoost.append("--prefix=" + installPath)
        buildBoost.append(
            "--build-dir=" +
            os.path.abspath(os.path.join(devtools.rootDir, "3rdparty", "tmp")))
        buildBoost.append("install")
        print buildBoost
        proc = subprocess.call(buildBoost,
                               cwd=getExtactedFolderPath(),
                               env=os.environ.copy())
예제 #7
0
파일: webrtc.py 프로젝트: cheersalam/webrtc
def build(arch, build):
    archl = arch.lower()
    target_arch = "32" if "32" in archl else "64"
    target_cpu = "x86" if target_arch == "32" else "x64"
    installPath = devtools.getInstallPath(arch)
    #if not os.path.exists(getSrcPath()):
    # subprocess.check_call("fetch --nohooks webrtc", cwd=getRootPath(), shell=True)
    # subprocess.check_call("git checkout -b release refs/remotes/branch-heads/68", cwd=getSrcPath(), shell=True)

    subprocess.check_call("gclient sync", shell=True)
    subprocess.call("git apply --ignore-whitespace ../probeoverflowfix.patch",
                    cwd=getSrcPath(),
                    shell=True)
    subprocess.call(
        "git apply --ignore-whitespace ../disableframedropping.patch",
        cwd=getSrcPath(),
        shell=True)
    subprocess.call(
        "git apply --ignore-whitespace ../disableaudioprocessing.patch",
        cwd=getSrcPath(),
        shell=True)
    subprocess.call("git apply --ignore-whitespace ../exposejitter.patch",
                    cwd=getSrcPath(),
                    shell=True)
    subprocess.call("git apply --ignore-whitespace ../disablepacing.patch",
                    cwd=getSrcPath(),
                    shell=True)
    subprocess.call("git apply --ignore-whitespace ../fasterprobing.patch",
                    cwd=getSrcPath(),
                    shell=True)

    try:
        os.makedirs(os.path.dirname(getArgsPath(target_arch)))
    except os.error:
        pass

    try:
        os.makedirs(os.path.dirname(getArgsPath(target_arch + "d")))
    except os.error:
        pass

    with open(getArgsPath(target_arch), "w") as argsFile:
        argsFile.write(GN_CONFIG.format(target_cpu, "true"))

    with open(getArgsPath(target_arch + "d"), "w") as argsFile:
        argsFile.write(GN_CONFIG.format(target_cpu, "false"))

    subprocess.check_call("gn gen out/" + target_arch,
                          cwd=getSrcPath(),
                          shell=True)
    subprocess.check_call("ninja -C out/" + target_arch,
                          cwd=getSrcPath(),
                          shell=True)

    subprocess.check_call("gn gen out/" + target_arch + "d",
                          cwd=getSrcPath(),
                          shell=True)
    subprocess.check_call("ninja -C out/" + target_arch + "d",
                          cwd=getSrcPath(),
                          shell=True)

    regex = re.compile(r".*\.lib$")
    mergetree(os.path.join(getOutPath(target_arch), "obj"),
              os.path.join(installPath, "lib"), regex.match)

    regex = re.compile(r".*\.lib$")
    mergetree(os.path.join(getOutPath(target_arch) + "d", "obj"),
              os.path.join(installPath, "lib"), regex.match,
              lambda n: "d".join(os.path.splitext(n)))

    regex = re.compile(r".*\.h$")
    mergetree(getSrcPath(), os.path.join(installPath, "include"),
              lambda n: regex.match(n) and "third_party" not in n)