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 )