Meta
view release on metacpan or search on metacpan
Meta/Baseline/Lang/Java.pm view on Meta::CPAN
package Meta::Baseline::Lang::Java;
use strict qw(vars refs subs);
use Meta::Utils::File::Path qw();
use Meta::Baseline::Aegis qw();
use Meta::Baseline::Utils qw();
use Meta::Utils::File::Mkdir qw();
use Meta::Utils::File::Move qw();
use Meta::Baseline::Lang qw();
use Meta::Utils::Output qw();
use Meta::Utils::Env qw();
our($VERSION,@ISA);
$VERSION="0.40";
@ISA=qw(Meta::Baseline::Lang);
#sub get_jars();
#sub env();
#sub c2deps($);
#sub c2clas($);
#sub c2html($);
#sub c2chec($);
#sub class2file($);
#sub my_file($$);
#sub TEST($);
#__DATA__
sub get_jars() {
my($jar0)=Meta::Baseline::Aegis::which("java/jars/classes12.jar");
my($jar1)=Meta::Baseline::Aegis::which("java/jars/jaxp.jar");
my($jar2)=Meta::Baseline::Aegis::which("java/jars/parser.jar");
my($jar3)=Meta::Baseline::Aegis::which("java/jars/servlet.jar");
return(join(':',$jar0,$jar1,$jar2,$jar3));
}
sub env() {
my(%hash);
my($class)="";
my($sear)=Meta::Baseline::Aegis::search_path_list();
for(my($i)=0;$i<=$#$sear;$i++) {
my($curr)=$sear->[$i];
$class=Meta::Utils::File::Path::add_path($class,
$curr."/java/lib",":");
$class=Meta::Utils::File::Path::add_path($class,
$curr."/java/import/lib",":");
}
$hash{"CLASSPATH"}=$class;
return(\%hash);
}
sub c2deps($) {
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);
print FILE "cascade ".$srcx."=\n";
my($obje)=Meta::Utils::Parse::Text->new();
$obje->init_file($srcx);
while(!$obje->get_over()) {
my($line)=$obje->get_line();
if($line=~/^import meta\..*;$/) {
# Meta::Utils::Output::print("line is [".$line."]\n");
my($class)=($line=~/^import (.*);$/);
my($file)=class2file($class);
print FILE $file."\n";
}
$obje->next();
}
$obje->fini();
print FILE ";\n";
close(FILE) || throw Meta::Error::Simple("unable to close file [".$targ."]");
return(1);
}
sub c2clas($) {
my($buil)=@_;
my($srcx)=$buil->get_srcx();
my($modu)=$buil->get_modu();
my($targ)=$buil->get_targ();
my($path)=$buil->get_path();
my($jarx)=get_jars();
my(@lptc)=split(":",$path);
my(@lpts)=split(":",$path);
for(my($i)=0;$i<=$#lptc;$i++) {
$lptc[$i].="/clas/java/lib";
$lpts[$i].="/java/lib";
# Meta::Utils::File::Mkdir::mkdir_check($lptc[$i]);
}
my($pthc)=join(":",$jarx,@lptc);
my($pths)=join(":",$jarx,@lpts);
my($prog)="/local/tools/j2sdk1.4.1_01/bin/javac";
my(@args);
push(@args,"-O");
# Add this if you want errors about deprecated features.
# push(@args,"-deprecation");
push(@args,"-nowarn");
push(@args,"-classpath");
push(@args,$pthc);
push(@args,"-sourcepath");
push(@args,$pths);
push(@args,"-d");
push(@args,"clas/java/lib");
push(@args,$srcx);
if(0) {
for(my($i)=0;$i<=$#args;$i++) {
Meta::Utils::Output::print("arg [".$i."] is [".$args[$i]."]\n");
}
}
my($scod)=Meta::Utils::System::system_nodie($prog,\@args);
# if($scod) {
# my($name,$path,$suff)=File::Basename::fileparse($srcx,"\.java");
# my($crea)=$path.$name.".class";
# Meta::Utils::File::Move::mv($crea,$targ);
# }
return($scod);
# open(FILE,"> ".$targ) || throw Meta::Error::Simple("unable to open file [".$targ."]");
( run in 0.600 second using v1.01-cache-2.11-cpan-39bf76dae61 )