diff options
author | Sandro S. Andrade <sandroandrade@kde.org> | 2012-09-23 22:19:59 +0000 |
---|---|---|
committer | Sandro S. Andrade <sandroandrade@kde.org> | 2012-09-24 00:21:11 +0200 |
commit | 9f9c1be55d04058fc7ba98c648b4848ce427e0ef (patch) | |
tree | e4056d757145185ab26c718e746a56f639111171 /scripts/xmi2qt.pl | |
parent | cc63e6477080440834cb651b26288ecf4d5b0bcc (diff) |
Add parameter for specifying output directory for xmi2qt.pl
Change-Id: Idc8ae3f3519ebae151cbd7a3879c1eef09bb2665
Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'scripts/xmi2qt.pl')
-rwxr-xr-x | scripts/xmi2qt.pl | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/scripts/xmi2qt.pl b/scripts/xmi2qt.pl index 499c63cd..bd77dd1c 100755 --- a/scripts/xmi2qt.pl +++ b/scripts/xmi2qt.pl @@ -7,55 +7,61 @@ use Data::Dumper; use File::Slurp; use File::Path qw(make_path); use Template; +use Getopt::Std; + +my %options=(); +getopt("oi",\%options); my $xml = new XML::Simple(keyattr => [], forcearray => ['namespace', 'class', 'enumeration', 'attribute', 'associationend', 'operation', 'accessor', 'parameter']); my $tt = Template->new(INTERPOLATE => 1, INCLUDE_PATH => 'templates/'); -my $xmi = $xml->XMLin($ARGV[0]); +my $xmi = $xml->XMLin($options{i}); write_file 'dump.log', Dumper($xmi); my $namespaces = $xmi->{'namespace'}; foreach my $namespace (@$namespaces) { -make_path($namespace->{path}); +make_path($options{o}."/".$namespace->{path}); my $classes = $namespace->{'class'}; my $enumerations = $namespace->{'enumeration'}; +binmode STDOUT, ':utf8'; + foreach my $class (@$classes) { - open STDOUT, '>', "./".$namespace->{path}."/".lc($class->{name}).".h"; + open STDOUT, '>', $options{o}."/".$namespace->{path}."/".lc($class->{name}).".h"; if ($tt->process('class.h', { namespace => $namespace->{path}, class => $class }) ne 1) { print $tt->error(); } - open STDOUT, '>', "./".$namespace->{path}."/".lc($class->{name}).".cpp"; + open STDOUT, '>', $options{o}."/".$namespace->{path}."/".lc($class->{name}).".cpp"; if ($tt->process('class.cpp', { namespace => $namespace->{path}, class => $class }) ne 1) { print $tt->error(); } } -open STDOUT, '>', "./".$namespace->{path}."/qenumerations.h"; +open STDOUT, '>', $options{o}."/".$namespace->{path}."/qenumerations.h"; if ($tt->process('qenumerations.h', { namespace => $namespace->{path}, enumerations => $enumerations }) ne 1) { print $tt->error(); } -open STDOUT, '>', "./".$namespace->{path}."/qenumerations.cpp"; +open STDOUT, '>', $options{o}."/".$namespace->{path}."/qenumerations.cpp"; if ($tt->process('qenumerations.cpp', { namespace => $namespace->{path}, enumerations => $enumerations }) ne 1) { print $tt->error(); } my $priName = lc($namespace->{path} =~ s/\//-/gr); -open STDOUT, '>', "./".$namespace->{path}."/".$priName.".pri"; +open STDOUT, '>', $options{o}."/".$namespace->{path}."/".$priName.".pri"; if ($tt->process('namespace.pri', { namespace => $namespace, }) ne 1) { print $tt->error(); } } -open STDOUT, '>', "./uml.pro"; +open STDOUT, '>', $options{o}."/uml.pro"; if ($tt->process('project.pro', { namespaces => $namespaces, }) ne 1) { print $tt->error(); } |