Meta

 view release on metacpan or  search on metacpan

Meta/Baseline/Lang/Xmlx.pm  view on Meta::CPAN

				$scod=0;
			}
		}
		if($scod) {
			Meta::Baseline::Utils::file_emblem($targ);
		}
		return($scod);
	}
	if($type eq "connections") {
		Meta::Baseline::Utils::file_emblem($targ);
		return(1);
	}
	if($type eq "dbdata") {
		my($scod)=Meta::Db::Ops::import($srcx);
		if($scod) {
			Meta::Baseline::Utils::file_emblem($targ);
		}
		return($scod);
	}
	throw Meta::Error::Simple("what kind of xml type is [".$type."]");
	return(0);
}

sub c2targ($) {
	my($buil)=@_;
	my($srcx)=$buil->get_srcx();
	my($modu)=$buil->get_modu();
	my($targ)=$buil->get_targ();
	my($path)=$buil->get_path();
	my($type)=Meta::Lang::Xml::Xml::get_type($srcx);
	if($type eq "links") {
		my($link)=Meta::Xml::Parsers::Links->new();
		$link->parsefile($srcx);
		my($olink)=$link->get_result();
		my($name)=$olink->getx(0)->get_name("name");
		my(@list);
		my($platforms)=$olink->getx(0)->get_platforms();
		for(my($i)=0;$i<$platforms->size();$i++) {
			my($curr)=$platforms->getx($i);
			my($arch)=Meta::Baseline::Arch->new();
			$arch->analyze($curr);
			my($dire)=$arch->get_dire();
			push(@list,"rule/".$dire."/".$name.".rule");
		}
		my($string)="base_xmlx_file_objx_link+=".join(" ",@list).";\n";
		Meta::Utils::File::File::save($targ,$string);
		return(1);
		#for(my($i)=0;$i<=$#list;$i++) {
		#	my($curr)=$list[$i];
		#	print FILE $curr.": ".$modu.";\n";
		#}
	}
	if($type eq "perlpkgs") {
		my($pkgs)=Meta::Lang::Perl::Perlpkgs->new_file($srcx);
		my($string);
		for(my($i)=0;$i<$pkgs->size();$i++) {
			my($curr)=$pkgs->getx($i);
			$string.="base_xmlx_file_objx_perl+=".$curr->get_pack_file_name().";\n";
			$string.=$curr->get_pack_file_name().": ".$modu."\n";
			$string.="\t[base_tool_depx]\n";
			$string.="\tset cascade\n";
			$string.="\thost-binding [base_host_scr]\n";
			$string.="{\n";
			$string.="function base_doit [base_tool] [base_protect [head [need]]] [base_protect [resolve [head [need]]]] [base_protect [targets]] [base_search_path] --type perl --lang xmlx;\n";
			$string.="}\n";
		}
		Meta::Utils::File::File::save($targ,$string);
		return(1);
	}
	throw Meta::Error::Simple("what kind of xml type is [".$type."]");
	return(0);
}

sub c2rule($) {
	my($buil)=@_;
	my($srcx)=$buil->get_srcx();
	my($modu)=$buil->get_modu();
	my($targ)=$buil->get_targ();
	my($path)=$buil->get_path();
	open(FILE,"> ".$targ) || throw Meta::Error::Simple("unable to open file [".$targ."]");
	Meta::Baseline::Utils::cook_emblem_print(*FILE);
	my($link)=Meta::Xml::Parsers::Links->new();
	$link->parsefile($srcx);
	my($olink)=$link->get_result();
	my($arch_o)=Meta::Baseline::Arch->new();
	my(@part)=split('\/',$targ);
	my($dire)=$part[1]."/".$part[2];
	$arch_o->from_dire($dire);

	for(my($j)=0;$j<$olink->size();$j++) {
		my($curr_link)=$olink->getx($j);
		my($name)=$curr_link->get_name();
		my($objs)=$curr_link->get_objects();
		my($libs)=$curr_link->get_libraries();
		my($elibs)=$curr_link->get_elibraries();

		my($type)=$arch_o->get_flagset_primary();
		if($type eq "dll") {
			$name="lib".$name.".so";
		}
		if($type eq "lib") {
			$name=$name.".a";
		}
		if($type eq "bin") {
			$name=$name.".bin";
		}
		$dire=$arch_o->get_dire();
		my($arch)=$arch_o->get_string();

		$arch_o->set_flagset_primary("obj");
		my($cdir)=$arch_o->get_dire();

		my(@list);
		for(my($i)=0;$i<$objs->size();$i++) {
			my($curr)=$objs->getx($i);
			push(@list,$cdir."/".$curr.".o");
		}
		my($acti)=join(" ",@list);

		$arch_o->set_flagset_primary("dll");
		$cdir=$arch_o->get_dire();



( run in 0.793 second using v1.01-cache-2.11-cpan-39bf76dae61 )