1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#!/usr/bin/perl
#
# mk-src.pl -- Perl program to automatically generate interface code.
#
# This file is part of The New Aspell
# Copyright (C) 2001-2002 by Kevin Atkinson under the GNU LGPL
# license version 2.0 or 2.1. You should have received a copy of the
# LGPL license along with this library if you did not you can find it
# at http://www.gnu.org/.
######################################################################
#
# Prologue
#
use strict;
use warnings;
no warnings qw(uninitialized);
no locale;
use Data::Dumper;
use MkSrc::Info;
use MkSrc::Read;
use MkSrc::Util;
use MkSrc::Type;
use MkSrc::Create;
######################################################################
#
# Main
#
my $master_data = read;
# Pure C
use MkSrc::ProcCc;
create_cc_file (type => 'cc',
dir => 'interfaces/cc',
name => 'aspell',
header => true,
data => $master_data);
# C++ over C
# Currently incomplete and broken
#use MkSrc::ProcCxx;
#create_cc_file (type => 'cxx',
# cxx => true,
# namespace => 'aspell',
# dir => 'interfaces/cxx',
# name => 'aspell-cxx',
# header => true,
# data => $master_data);
# Native
use MkSrc::ProcNative;
foreach my $d (@{$master_data->{data}}) {
$info{group}{proc}{native}->($d);
}
# C for C++
use MkSrc::ProcImpl;
foreach my $d (@{$master_data->{data}}) {
$info{group}{proc}{impl}->($d);
}
# Impl
use MkSrc::ProcNativeImpl;
foreach my $d (@{$master_data->{data}}) {
$info{group}{proc}{native_impl}->($d);
}
|