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)
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