Ejemplo n.º 1
0
def shared_library(name, version=None):
    head, tail = os.path.split(name)
    ext = platform_info().shared_library_ext
    if version:
        if not platform_info().has_versioned_library:
            raise ValueError('no versioned libraries on this platform')
        if platform_name() == 'darwin':
            tail += '.' + version
        else:
            ext += '.' + version
    return Target(name, os.path.normpath(os.path.join(
        '.', head, _library_prefix + tail + ext
    )))
Ejemplo n.º 2
0
def import_library(name):
    if not platform_info().has_import_library:
        raise ValueError('no import libraries on this platform')
    if env.builder('c++').flavor == 'msvc':
        return static_library(name)
    else:
        return Target(name, shared_library(name).path + '.a')
Ejemplo n.º 3
0
    def __init__(self, srcdir, *args, **kwargs):
        install = kwargs.pop('install', False)
        self._args = args
        self._kwargs = kwargs

        self.stage_src = kwargs.pop('stage_src', False)
        self.backend = kwargs.pop('backend', None)
        unittest.TestCase.__init__(self, *args, **kwargs)
        if self.backend is None:
            return

        self.extra_args = []

        srcname = os.path.basename(srcdir)
        self.srcdir = os.path.join(test_data_dir, srcdir)
        if self.stage_src:
            self.orig_srcdir = self.srcdir
            self.srcdir = os.path.join(test_stage_dir, srcname)

        self.builddir = os.path.join(test_stage_dir, srcname + '-build')

        if install:
            self.installdir = os.path.join(test_stage_dir,
                                           srcname + '-install')
            self.extra_args = ['--prefix', self.installdir]

            install_dirs = platform_info().install_dirs
            path_vars = {InstallRoot.prefix: self.installdir}
            for i in InstallRoot:
                setattr(self, i.name, install_dirs[i].realize(path_vars))
        else:
            self.installdir = None
Ejemplo n.º 4
0
    def __init__(self, srcdir, *args, **kwargs):
        install = kwargs.pop('install', False)

        self._configure = kwargs.pop('configure', True)
        self._args = args
        self._kwargs = kwargs

        stage_src = kwargs.pop('stage_src', False)
        self.backend = kwargs.pop('backend', None)
        self.env = kwargs.pop('env', None)

        unittest.TestCase.__init__(self, *args, **kwargs)
        if self.backend is None:
            return

        self.extra_args = []

        srcname = os.path.basename(srcdir)
        self.srcdir = os.path.join(test_data_dir, srcdir)
        if stage_src:
            srcname = os.path.basename(srcdir)
            self.orig_srcdir = self.srcdir
            self.srcdir = os.path.join(test_stage_dir, srcname)
        else:
            self.orig_srcdir = None

        if install:
            self.installdir = os.path.join(test_stage_dir,
                                           srcname + '-install')
            self.extra_args = ['--prefix', self.installdir]

            install_dirs = platform_info().install_dirs.copy()
            install_dirs[InstallRoot.prefix] = Path(self.installdir,
                                                    Root.absolute)
            for i in InstallRoot:
                setattr(self, i.name, install_dirs[i].string(install_dirs))
        else:
            self.installdir = None
Ejemplo n.º 5
0
def executable(name):
    return Target(
        name,
        os.path.normpath(
            os.path.join('.', name + platform_info().executable_ext)))