コード例 #1
0
    def test_build_dir(self):
        # Build in source is true by default
        expected_dir = os.path.join(initial_cwd, 'shelf', 'zlib', '1.2.8',
                                    'source')
        self.assertEqual(self.testBuilder.build_dir, expected_dir)

        # Test that with build in source set to false we use a different build dir
        buildDirBuilder = Builder('zlib', 'http://zlib.net/zlib-1.2.8.tar.gz',
                                  False)
        buildDirBuilder._version = '1.2.8'
        expected_dir = os.path.join(initial_cwd, 'shelf', 'zlib', '1.2.8',
                                    'build')
        self.assertEqual(buildDirBuilder.build_dir, expected_dir)
コード例 #2
0
def builder_from_yaml(yaml_rep, load_dependencies=True):

    url = yaml_rep['url']
    name = yaml_rep['name']
    version = yaml_rep['version']

    yamlBuilder = Builder(name, url)
    yamlBuilder._version = str(version)
    yamlBuilder.yaml_rep = yaml_rep

    #print yaml_rep

    var_list = {
        'prefix': yamlBuilder.install_dir,
        'version': yamlBuilder.version,
        'libdir': yamlBuilder.lib_dir,
        'includedir': yamlBuilder.include_dir,
        'installdir': yamlBuilder.install_dir,
        'name': yamlBuilder.name
    }

    # FIXME - ugly

    if 'dependencies' in yaml_rep:
        yamlBuilder.dependencies = yaml_rep['dependencies']
        if load_dependencies:
            handle_dependencies(yamlBuilder, yaml_rep)

    if 'use_build_dir' in yaml_rep:
        if yaml_rep['use_build_dir'] is True:
            yamlBuilder.build_in_source = False

    if 'build' in yaml_rep:

        def user_build(self):
            os.chdir(self.build_dir)
            for command in yaml_rep['build']:
                template_command = Template(command)
                try:
                    spaced_command = template_command.substitute(
                        var_list).split(" ")
                except KeyError, e:
                    print "Error parsing yaml file, parameter ${}".format(
                        e.args[0])
                    sys.exit(1)

                self.system(spaced_command)

        yamlBuilder.user_build = user_build