Mentions légales du service

Skip to content
Snippets Groups Projects
project.py 2.39 KiB
import os
import sys
# import ipdb

from sipbuild import Option, Project




class FBXSDKPyProject(Project):
    """ A project that adds an additional configuration options to specify
    the locations of the fib header file and library.
    """

    def get_options(self):
        """ Return the sequence of configurable options. """

        # Get the standard options.
        options = super().get_options()

        # Add our new options.
        win_libs_option = Option('win_libraries',
                help="a list of libraries needed on the windows platform for Python >=3.7", option_type=list, metavar="LIST")
        options.append(win_libs_option)

        win_py36_libs_option = Option('win_py36_libraries',
                help="a list of libraries needed on the windows platform for Python <=3.6", option_type=list, metavar="LIST")
        options.append(win_py36_libs_option)

        linux_libs_option = Option('linux_libraries',
                help="a list of libraries needed on the linuxdows platform", option_type=list, metavar="LIST")
        options.append(linux_libs_option)

        linux_static_libs_option = Option('linux_static_libraries',
                help="a list of libraries needed on the linuxdows platform", option_type=list, metavar="LIST")
        options.append(linux_static_libs_option)

        return options

    def update(self, tool):
        """ Update the project configuration. """

        # Get the fib bindings object.
        fbx_bindings = self.bindings['fbx_module']

        libraries = []
        if sys.platform == "win32":
            if sys.version_info.major == 3 and sys.version_info.minor < 7:
                libraries = self.win_libraries
            else:
                libraries = self.win_py36_libraries
        elif sys.platform == "linux":
            libraries = self.linux_libraries
        else:
            raise Exception("Your platform "+sys.platform+" is not supported")

        fbx_bindings.libraries.extend(libraries)

    def setup(self, pyproject, tool, tool_description):
        self.verbose = True
        if sys.platform == "win32":
            super().run_command(["call create_sdist.bat"],fatal=True)
        elif sys.platform == "linux":
            super().run_command(["./create_sdist.sh"],fatal=True)
        else:
            raise Exception("Your platform "+sys.platform+" is not supported")
        super().setup(pyproject, tool, tool_description)