[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/8] Qt: cleanup, introduction of AM_MOCFLGS, libtool libraries s
From: |
Gergely Risko |
Subject: |
[PATCH 2/8] Qt: cleanup, introduction of AM_MOCFLGS, libtool libraries support. |
Date: |
Tue, 7 Jul 2009 14:27:53 +0300 |
Cleanup: merged output rule creation into handle_source_transform, so
this branch only modifies this, and this way we can get rid of
lang_header_finish.
---
automake.in | 73 ++++++++++++++--------------------------------------------
1 files changed, 18 insertions(+), 55 deletions(-)
diff --git a/automake.in b/automake.in
index 415d883..abfb539 100755
--- a/automake.in
+++ b/automake.in
@@ -809,7 +809,7 @@ register_language ('name' => 'header',
# No output.
'output_extensions' => sub { return () },
# Nothing to do.
- '_finish' => \&lang_header_finish);
+ '_finish' => sub { });
# Vala
register_language ('name' => 'vala',
@@ -2269,6 +2269,8 @@ sub handle_source_transform ($$$$%)
my $var = set_seen $one_file . '_QTSOURCES';
if ($var)
{
+ # check that all of the qtsources are defined as sources
+
my @mocobjects = ();
foreach my $file ($var->value_as_list_recursive)
{
@@ -2276,16 +2278,29 @@ sub handle_source_transform ($$$$%)
# (e.g. the extension list from the language 'header')
if ($file =~ s/\.h$//)
{
- # add %.h files as %.o to target_QTOBJECTS
- push @mocobjects, 'moc_' . $file . '.$(OBJEXT)' ;
+ # add %.h files as moc_%.o to target_QTOBJECTS
+ push @mocobjects, 'moc_' . $file .
+ ( $transform{'LIBTOOL'} ? '.lo' : '.$(OBJEXT)' );
# also add moc resulting source file to mostlyclean
$compile_clean_files{"moc_$file.cpp"} = MOSTLY_CLEAN;
+ # and create a make rule for the actual moccing
+ # moc_foo.cpp: foo.h
+ # $(MOC) -o $@ $<
+ $output_rules .= "moc_$file.cpp: \$(srcdir)/$file.h\n".
+ "\t\$(MOC) \$(AM_MOCFLAGS) -o \$\@ \$<\n";
}
else
{
+ my $origname = $file;
$file =~ s/\.[^.]+$//;
# also add moc resulting source file to mostlyclean
$compile_clean_files{"$file.moc"} = MOSTLY_CLEAN;
+ # make rule for the moccing
+ # foo.moc: foo.cpp
+ # $(MOC) -o $@ $<
+ $file =~ s/\.[^.]+$//;
+ $output_rules .= "$file.moc: \$(srcdir)/$origname\n".
+ "\t\$(MOC) \$(AM_MOCFLAGS) -o \$\@ \$<\n";
}
}
# if there were .h files, then add target_QTOBJECTS to
@@ -5962,58 +5977,6 @@ sub lang_c_finish
}
}
-sub lang_header_finish_target ($$)
-{
- my ($self, $name) = @_;
-
- my $derived = canonicalize ($name);
-
- # handle target_QTSOURCES variable: create rules for each source
- # in the form of
- # moc_foo.cpp: foo.h
- # $(MOC) -o $@ $<
- # for headers and
- # foo.moc: foo.cpp
- # $(MOC) -o $@ $<
- # for non-header files.
- my $var = var ($derived . '_QTSOURCES');
- if ($var)
- {
- # FIXME: subdir-objects handling
- foreach my $file ($var->value_as_list_recursive)
- {
- # FIXME: instead of .h use something more general
- # (e.g. the extension list from the language 'header')
- if ($file =~ s/\.h$//)
- {
- $output_rules .= "moc_$file.cpp: \$(srcdir)/$file.h\n".
- "\t\$(MOC) -o \$\@ \$<\n";
- }
- else
- {
- my $origname = $file;
- $file =~ s/\.[^.]+$//;
- $output_rules .= "$file.moc: \$(srcdir)/$origname\n".
- "\t\$(MOC) -o \$\@ \$<\n";
- }
- }
- }
-}
-
-sub lang_header_finish
-{
- my ($self) = @_;
- foreach my $prog (keys %known_programs)
- {
- lang_header_finish_target ($self, $prog);
- }
-
- while (my ($name) = each %known_libraries)
- {
- lang_header_finish_target ($self, $name);
- }
-}
-
sub lang_vala_finish_target ($$)
{
my ($self, $name) = @_;
--
1.6.3.3
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH 2/8] Qt: cleanup, introduction of AM_MOCFLGS, libtool libraries support.,
Gergely Risko <=