Пример #1
0
def buildSdkHeaders(buildDir):
    coralIncludesDir = os.path.join(buildDir, "coral", "includes", "coral")
    coralUiIncludesDir = os.path.join(buildDir, "coralUi", "includes", "coralUi")
    
    os.makedirs(coralIncludesDir)
    os.makedirs(coralUiIncludesDir)
    
    coralHeaders = sconsUtils.findFiles(os.path.join("coral", "src"), pattern = "*.h")
    
    for header in coralHeaders:
        file = open(header)
        fileContent = file.read()
        file.close()
        
        if "CORAL_EXPORT" in fileContent:
            shutil.copy(header, coralIncludesDir)
    
    coralUiHeaders = sconsUtils.findFiles(os.path.join("coralUi", "src"), pattern = "*.h")
    
    for header in coralUiHeaders:
        file = open(header)
        fileContent = file.read()
        file.close()
        
        if "CORALUI_EXPORT" in fileContent:
            shutil.copy(header, coralUiIncludesDir)
    
    shutil.copytree(sconsUtils.getEnvVar("CORAL_IMATH_INCLUDES_PATH"), os.path.join(buildDir, "Imath", "includes"))
    shutil.copytree(sconsUtils.getEnvVar("CORAL_BOOST_INCLUDES_PATH"), os.path.join(buildDir, "boost", "includes", "boost"))
Пример #2
0
def buildSdkHeaders(buildDir):
    coralIncludesDir = os.path.join(buildDir, "coral", "includes", "coral")
    coralUiIncludesDir = os.path.join(buildDir, "coralUi", "includes",
                                      "coralUi")

    os.makedirs(coralIncludesDir)
    os.makedirs(coralUiIncludesDir)

    coralHeaders = sconsUtils.findFiles(os.path.join("coral", "src"),
                                        pattern="*.h")

    for header in coralHeaders:
        file = open(header)
        fileContent = file.read()
        file.close()

        if "CORAL_EXPORT" in fileContent:
            shutil.copy(header, coralIncludesDir)

    coralUiHeaders = sconsUtils.findFiles(os.path.join("coralUi", "src"),
                                          pattern="*.h")

    for header in coralUiHeaders:
        file = open(header)
        fileContent = file.read()
        file.close()

        if "CORALUI_EXPORT" in fileContent:
            shutil.copy(header, coralUiIncludesDir)

    shutil.copytree(sconsUtils.getEnvVar("CORAL_IMATH_INCLUDES_PATH"),
                    os.path.join(buildDir, "Imath", "includes"))
    shutil.copytree(sconsUtils.getEnvVar("CORAL_BOOST_INCLUDES_PATH"),
                    os.path.join(buildDir, "boost", "includes", "boost"))
Пример #3
0
def postBuildAction(target, source, env):
    coralLib = str(source[0])
    coralUiLib = str(source[1])
    imathLib = str(source[2])
    mayaPlugin = str(source[3])
    coralMaya = str(source[4])
    
    buildDir = os.path.join("build", "coralMayaBuild")
    
    shutil.rmtree(buildDir, ignore_errors = True)
    shutil.copytree(os.path.join("coralMaya", "py"), os.path.join(buildDir, "coralMaya"))
    shutil.copytree(os.path.join("coral", "py", "coral"), os.path.join(buildDir, "coral"))
    shutil.copy(coralLib, os.path.join(buildDir, "coral"))
    shutil.copy(coralMaya, os.path.join(buildDir, "coralMaya"))
    shutil.copy(mayaPlugin, os.path.join(buildDir, "coralMaya"))
    shutil.copy(imathLib, buildDir)
    
    shutil.copytree(os.path.join("coralUi", "py", "coralUi"), os.path.join(buildDir, "coral", "coralUi"))
    shutil.copy(coralUiLib, os.path.join(buildDir, "coral", "coralUi"))
    
    if sys.platform == "darwin":
        # fix lib link path on Mac Os X
        sconsUtils.autoFixDynamicLinks(os.path.join(buildDir, "coralMaya", "coralMayaPlugin.bundle"))
        sconsUtils.autoFixDynamicLinks(os.path.join(buildDir, "coral", "_coral.so"))
        sconsUtils.autoFixDynamicLinks(os.path.join(buildDir, "coral", "coralUi", "_coralUi.so"))
        sconsUtils.autoFixDynamicLinks(os.path.join(buildDir, "coralMaya", "_coralMaya.so"))
        
    pycFiles = sconsUtils.findFiles(os.path.join(buildDir), pattern = "*.pyc")
    for pycFile in pycFiles:
        os.remove(pycFile)
Пример #4
0
def buildMainTree(coralLib, coralUiLib, imathLib, buildDir):
    if sys.platform == "darwin":
        # fix lib link path on Mac Os X
        sconsUtils.autoFixDynamicLinks(coralLib)
        sconsUtils.autoFixDynamicLinks(coralUiLib)
        sconsUtils.autoFixDynamicLinks(imathLib)
    
    shutil.copytree(os.path.join("coral", "py"), buildDir)
    shutil.copy(coralLib, os.path.join(buildDir, "coral"))
    
    shutil.copy(imathLib, buildDir)
    
    shutil.copytree(os.path.join("coralUi", "py", "coralUi"), os.path.join(buildDir, "coral", "coralUi"))
    shutil.copy(coralUiLib, os.path.join(buildDir, "coral", "coralUi"))
        
    pycFiles = sconsUtils.findFiles(os.path.join(buildDir), pattern = "*.pyc")
    for pycFile in pycFiles:
        os.remove(pycFile)
    
    compileall.compile_dir(buildDir, quiet = True)
    
    if buildSdk:
       buildSdkTree(coralLib, coralUiLib, sdkInstallDir)
Пример #5
0
def postBuildAction(target, source, env):
    coralLib = str(source[0])
    coralUiLib = str(source[1])
    imathLib = str(source[2])
    mayaPlugin = str(source[3])
    coralMaya = str(source[4])

    buildDir = os.path.join("build", "coralMayaBuild")

    shutil.rmtree(buildDir, ignore_errors=True)
    shutil.copytree(os.path.join("coralMaya", "py"),
                    os.path.join(buildDir, "coralMaya"))
    shutil.copytree(os.path.join("coral", "py", "coral"),
                    os.path.join(buildDir, "coral"))
    shutil.copy(coralLib, os.path.join(buildDir, "coral"))
    shutil.copy(coralMaya, os.path.join(buildDir, "coralMaya"))
    shutil.copy(mayaPlugin, os.path.join(buildDir, "coralMaya"))
    shutil.copy(imathLib, buildDir)

    shutil.copytree(os.path.join("coralUi", "py", "coralUi"),
                    os.path.join(buildDir, "coral", "coralUi"))
    shutil.copy(coralUiLib, os.path.join(buildDir, "coral", "coralUi"))

    if sys.platform == "darwin":
        # fix lib link path on Mac Os X
        sconsUtils.autoFixDynamicLinks(
            os.path.join(buildDir, "coralMaya", "coralMayaPlugin.bundle"))
        sconsUtils.autoFixDynamicLinks(
            os.path.join(buildDir, "coral", "_coral.so"))
        sconsUtils.autoFixDynamicLinks(
            os.path.join(buildDir, "coral", "coralUi", "_coralUi.so"))
        sconsUtils.autoFixDynamicLinks(
            os.path.join(buildDir, "coralMaya", "_coralMaya.so"))

    pycFiles = sconsUtils.findFiles(os.path.join(buildDir), pattern="*.pyc")
    for pycFile in pycFiles:
        os.remove(pycFile)
Пример #6
0
def buildMainTree(coralLib, coralUiLib, imathLib, buildDir):
    if sys.platform == "darwin":
        # fix lib link path on Mac Os X
        sconsUtils.autoFixDynamicLinks(coralLib)
        sconsUtils.autoFixDynamicLinks(coralUiLib)
        sconsUtils.autoFixDynamicLinks(imathLib)

    shutil.copytree(os.path.join("coral", "py"), buildDir)
    shutil.copy(coralLib, os.path.join(buildDir, "coral"))

    shutil.copy(imathLib, buildDir)

    shutil.copytree(os.path.join("coralUi", "py", "coralUi"),
                    os.path.join(buildDir, "coral", "coralUi"))
    shutil.copy(coralUiLib, os.path.join(buildDir, "coral", "coralUi"))

    pycFiles = sconsUtils.findFiles(os.path.join(buildDir), pattern="*.pyc")
    for pycFile in pycFiles:
        os.remove(pycFile)

    compileall.compile_dir(buildDir, quiet=True)

    if buildSdk:
        buildSdkTree(coralLib, coralUiLib, sdkInstallDir)
Пример #7
0
def buildOsXApp(coralLib, coralUiLib, imathLib):
    print "* building app bundle"
    
    # clean
    buildDir = os.path.join("build", "coralStandaloneApp")
    shutil.rmtree(buildDir, ignore_errors = True)
    
    # make dirs
    os.mkdir(buildDir)
    
    appBundle = os.path.join(buildDir, "CoralStandalone.app")
    os.mkdir(appBundle)
    
    contentsDir = os.path.join(appBundle, "Contents")
    os.mkdir(contentsDir)
    
    resourcesDir = os.path.join(contentsDir, "Resources")
    os.mkdir(resourcesDir)
    
    global sdkInstallDir
    sdkInstallDir = os.path.join(contentsDir, "sdk")

    buildMainTree(coralLib, coralUiLib, imathLib, os.path.join(contentsDir, "coral"))
    
    # copy stuff over
    shutil.copy(os.path.join("resources", "macAppBundle", "Info.plist"), contentsDir)
    shutil.copy(os.path.join("resources", "macAppBundle", "PkgInfo"), contentsDir)
    
    macOsDir = os.path.join(contentsDir, "MacOS")
    os.mkdir(macOsDir)
        
    shutil.copy(os.path.join("resources", "macAppBundle", "CoralStandalone"), macOsDir)
    
    for envName in os.environ.keys():
        if envName.startswith("CORAL_Qt"):
            qtLib = os.environ[envName]
            shutil.copy(qtLib, macOsDir)
    
    shutil.copy("/usr/local/lib/libboost_filesystem.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libboost_regex.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libboost_system.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libboost_thread.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libHalf.6.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libIex.6.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libImath.6.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libIlmThread.6.dylib", macOsDir)
    shutil.copy("/usr/X11/lib/libpng15.15.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libtiff.5.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libjpeg.8.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libIlmImf.6.dylib", macOsDir)

    glewLib = os.path.join(sconsUtils.getEnvVar("CORAL_GLEW_LIBS_PATH"), "lib" + sconsUtils.getEnvVar("CORAL_GLEW_LIB") + ".dylib")
    shutil.copy(glewLib, macOsDir)

    openImageIoLib = os.path.join(sconsUtils.getEnvVar("CORAL_OIIO_LIBS_PATH"), "lib" + sconsUtils.getEnvVar("CORAL_OIIO_LIB") + ".dylib")
    shutil.copy(openImageIoLib, macOsDir)

    tbbLib = os.path.join(sconsUtils.getEnvVar("CORAL_TBB_LIBS_PATH"), "lib" + sconsUtils.getEnvVar("CORAL_TBB_LIB") + ".dylib")
    shutil.copy(tbbLib, macOsDir)
    
    boostPythonLib = os.path.join(sconsUtils.getEnvVar("CORAL_BOOST_LIBS_PATH"), "lib" + sconsUtils.getEnvVar("CORAL_BOOST_PYTHON_LIB") + ".dylib")
    shutil.copy(boostPythonLib, macOsDir)
    
    qtUiPath = os.path.split(sconsUtils.getEnvVar("CORAL_QtGui_LIB"))[0]
    qtnib = os.path.join(qtUiPath, "Resources", "qt_menu.nib")
    shutil.copytree(qtnib, os.path.join(resourcesDir, "qt_menu.nib"))
    
    os.system("chmod +x " + os.path.join(macOsDir, "coralStandalone"))
    
    shutil.copy(os.path.join("resources", "macAppBundle", "coral.icns"), resourcesDir)
    
    pythonVersion = os.path.split(sconsUtils.getEnvVar("CORAL_PYTHON_PATH"))[-1]
    pythonFrameworkDir = os.path.join(contentsDir, "Frameworks", "Python.framework", "Versions", pythonVersion)
    shutil.copytree(sconsUtils.getEnvVar("CORAL_PYTHON_PATH"), pythonFrameworkDir)
    
    shutil.copy(os.path.join(contentsDir, "Frameworks", "Python.framework", "Versions", pythonVersion, "Resources/Python.app/Contents/MacOS/Python-64"), os.path.join(macOsDir, "python"))
    
    # fix dylib links
    libs = sconsUtils.findFiles(macOsDir, pattern = "*.dylib")
    libs.extend(sconsUtils.findFiles(macOsDir, pattern = "Qt*"))
    libs.extend(sconsUtils.findFiles(os.path.join(pythonFrameworkDir, "lib", "python" + pythonVersion, "site-packages", "PyQt4"), pattern = "*.so"))
    
    for lib in libs:
        sconsUtils.autoFixDynamicLinks(lib)
Пример #8
0
def buildOsXApp(coralLib, coralUiLib, imathLib):
    print "* building app bundle"

    # clean
    buildDir = os.path.join("build", "coralStandaloneApp")
    shutil.rmtree(buildDir, ignore_errors=True)

    # make dirs
    os.mkdir(buildDir)

    appBundle = os.path.join(buildDir, "CoralStandalone.app")
    os.mkdir(appBundle)

    contentsDir = os.path.join(appBundle, "Contents")
    os.mkdir(contentsDir)

    resourcesDir = os.path.join(contentsDir, "Resources")
    os.mkdir(resourcesDir)

    global sdkInstallDir
    sdkInstallDir = os.path.join(contentsDir, "sdk")

    buildMainTree(coralLib, coralUiLib, imathLib,
                  os.path.join(contentsDir, "coral"))

    # copy stuff over
    shutil.copy(os.path.join("resources", "macAppBundle", "Info.plist"),
                contentsDir)
    shutil.copy(os.path.join("resources", "macAppBundle", "PkgInfo"),
                contentsDir)

    macOsDir = os.path.join(contentsDir, "MacOS")
    os.mkdir(macOsDir)

    shutil.copy(os.path.join("resources", "macAppBundle", "CoralStandalone"),
                macOsDir)

    for envName in os.environ.keys():
        if envName.startswith("CORAL_Qt"):
            qtLib = os.environ[envName]
            shutil.copy(qtLib, macOsDir)

    shutil.copy("/usr/local/lib/libboost_filesystem.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libboost_regex.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libboost_system.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libboost_thread.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libHalf.6.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libIex.6.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libImath.6.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libIlmThread.6.dylib", macOsDir)
    shutil.copy("/usr/X11/lib/libpng15.15.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libtiff.5.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libjpeg.8.dylib", macOsDir)
    shutil.copy("/usr/local/lib/libIlmImf.6.dylib", macOsDir)

    glewLib = os.path.join(
        sconsUtils.getEnvVar("CORAL_GLEW_LIBS_PATH"),
        "lib" + sconsUtils.getEnvVar("CORAL_GLEW_LIB") + ".dylib")
    shutil.copy(glewLib, macOsDir)

    openImageIoLib = os.path.join(
        sconsUtils.getEnvVar("CORAL_OIIO_LIBS_PATH"),
        "lib" + sconsUtils.getEnvVar("CORAL_OIIO_LIB") + ".dylib")
    shutil.copy(openImageIoLib, macOsDir)

    tbbLib = os.path.join(
        sconsUtils.getEnvVar("CORAL_TBB_LIBS_PATH"),
        "lib" + sconsUtils.getEnvVar("CORAL_TBB_LIB") + ".dylib")
    shutil.copy(tbbLib, macOsDir)

    boostPythonLib = os.path.join(
        sconsUtils.getEnvVar("CORAL_BOOST_LIBS_PATH"),
        "lib" + sconsUtils.getEnvVar("CORAL_BOOST_PYTHON_LIB") + ".dylib")
    shutil.copy(boostPythonLib, macOsDir)

    qtUiPath = os.path.split(sconsUtils.getEnvVar("CORAL_QtGui_LIB"))[0]
    qtnib = os.path.join(qtUiPath, "Resources", "qt_menu.nib")
    shutil.copytree(qtnib, os.path.join(resourcesDir, "qt_menu.nib"))

    os.system("chmod +x " + os.path.join(macOsDir, "coralStandalone"))

    shutil.copy(os.path.join("resources", "macAppBundle", "coral.icns"),
                resourcesDir)

    pythonVersion = os.path.split(
        sconsUtils.getEnvVar("CORAL_PYTHON_PATH"))[-1]
    pythonFrameworkDir = os.path.join(contentsDir, "Frameworks",
                                      "Python.framework", "Versions",
                                      pythonVersion)
    shutil.copytree(sconsUtils.getEnvVar("CORAL_PYTHON_PATH"),
                    pythonFrameworkDir)

    shutil.copy(
        os.path.join(contentsDir, "Frameworks", "Python.framework", "Versions",
                     pythonVersion,
                     "Resources/Python.app/Contents/MacOS/Python-64"),
        os.path.join(macOsDir, "python"))

    # fix dylib links
    libs = sconsUtils.findFiles(macOsDir, pattern="*.dylib")
    libs.extend(sconsUtils.findFiles(macOsDir, pattern="Qt*"))
    libs.extend(
        sconsUtils.findFiles(os.path.join(pythonFrameworkDir, "lib",
                                          "python" + pythonVersion,
                                          "site-packages", "PyQt4"),
                             pattern="*.so"))

    for lib in libs:
        sconsUtils.autoFixDynamicLinks(lib)