automake-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 3/8] Qt: documentation added, NEWS and ChangeLog updated.


From: Gergely Risko
Subject: [PATCH 3/8] Qt: documentation added, NEWS and ChangeLog updated.
Date: Tue, 7 Jul 2009 15:53:25 +0300

---
 ChangeLog         |    6 ++++
 NEWS              |    3 ++
 doc/automake.texi |   75 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7b8a2f6..c780be4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-07  Gergely Risko  <address@hidden>
+
+       * automake.in (handle_source_transform): added support for Qt, via
+       the new prog_QTSOURCES variable.
+       * NEWS: updated.
+
 2009-06-07  Ralf Wildenhues  <address@hidden>
 
        AM_PROG_GCJ: use AC_CHECK_TOOLS for gcj, for cross compilation.
diff --git a/NEWS b/NEWS
index 7e14ed8..15481d9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
 New in 1.11a:
 
+* Languages changes:
+  - There is initial support for Qt's Meta Object Compiler.
+
 Bugs fixed in 1.11a:
 
 * Bugs introduced by 1.11:
diff --git a/doc/automake.texi b/doc/automake.texi
index 6c6765f..a9495e7 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -225,6 +225,7 @@ Building Programs and Libraries
 * Fortran 9x Support::          Compiling Fortran 9x sources
 * Java Support::                Compiling Java sources
 * Vala Support::                Compiling Vala sources
+* Qt Support::                  Compiling Qt sources
 * Support for Other Languages::  Compiling other languages
 * ANSI::                        Automatic de-ANSI-fication (obsolete)
 * Dependencies::                Automatic dependency tracking
@@ -4541,6 +4542,7 @@ to build programs and libraries.
 * Fortran 9x Support::          Compiling Fortran 9x sources
 * Java Support::                Compiling Java sources
 * Vala Support::                Compiling Vala sources
+* Qt Support::                  Compiling Qt sources
 * Support for Other Languages::  Compiling other languages
 * ANSI::                        Automatic de-ANSI-fication (obsolete)
 * Dependencies::                Automatic dependency tracking
@@ -6141,6 +6143,11 @@ Any package including C++ code must define the output 
variable
 the @code{AC_PROG_CXX} macro (@pxref{Particular Programs, , Particular
 Program Checks, autoconf, The Autoconf Manual}).
 
+C++ support doesn't mean that programs using the Qt library (and notably
+Qt's signal/slot mechanism) will be compiled correctly (using Qt's Meta
+Object Compiler).  For that you have to have a look on the Qt support
+(@pxref{Qt Support}).
+
 A few additional variables are defined when a C++ source file is seen:
 
 @vtable @code
@@ -6659,6 +6666,74 @@ Note that currently, you cannot use per-target 
@code{*_VALAFLAGS}
 source file.
 
 
address@hidden Qt Support
address@hidden  node-name,  next,  previous,  up
address@hidden Qt Support
+
address@hidden Qt Support
address@hidden Support for Qt
+
+Automake includes initial support for the Qt library
+(@uref{http://www.qtsoftware.com/products/}).  This includes calling the
+Meta Object Compiler (MOC) and compiling/linking the resulting C++ files
+to the executable (or library).  Support for calling the other Qt tools
+(uic, rcc, lconvert) is not included (yet).
+
+The shipped AM_PROG_MOC macro should be used to look for the MOC tool on
+the build system.  For checking the existence of the Qt library and
+different parts of it, you can use pkg-config.
+
address@hidden AM_PROG_MOC
+Try to find Qt's Meta Object Compiler and if found the variable
address@hidden will be set.  The value of this variable will be used during
+the compilation to generate meta object code.
address@hidden defmac
+
+With Qt's Meta Object Compiler C++ source can be generated from headers
+and sources.  Generated source from a header file has to be compiled and
+than linked to the binary.  Header files which should be run through the
+Meta Object Compiler have to be listed in the
address@hidden@var{prog}_QTSOURCES} variable (and in @address@hidden
+too).  The generated C++ files will be named according to Qt customs
+(@file{moc_foo.cpp}).
+
+A working Makefile.am example:
address@hidden
+bin_PROGRAMS = cutegammon
+
+cutegammon_QTSOURCES = board.h checker.h clickablelabel.h             \
+        diceanimation.h dice.h doubledice.h lineedit.h mainwindow.h   \
+        point.h spot.h
+
+cutegammon_SOURCES = board.cpp checker.cpp clickablelabel.cpp   \
+        diceanimation.cpp dice.cpp doubledice.cpp lineedit.cpp  \
+        main.cpp mainwindow.cpp point.cpp spot.cpp              \
+        $(cutegammon_QTSOURCES)
+
+AM_CXXFLAGS = `pkg-config --cflags QtGui`
+AM_LDFLAGS = `pkg-config --libs QtGui`
address@hidden example
+
+In some interesting situations it may be needed to generate meta object
+code from C++ source files.  The usual way to handle this in the Qt
+world is to generate meta object code in a file (named @file{foo.moc}
+for @file{foo.cpp}) and include that at the end of the original source:
address@hidden
+#include <QObject>
+#include <QWidget>
+
+class InCodeClass : public QObject @{
+  Q_OBJECT
address@hidden
address@hidden;
+
+#include <incodeclass.moc>
address@hidden example
+
+C++ source files like this has to be added to @address@hidden too.
+The generated @file{foo.moc} won't be compiled and linked of course,
+since its code will be generated together with the @file{foo.cpp}.
+
 @node Support for Other Languages
 @comment  node-name,  next,  previous,  up
 @section Support for Other Languages
-- 
1.6.3.3





reply via email to

[Prev in Thread] Current Thread [Next in Thread]