Message: previous - next
Month: June 2012

tqt-replace, Q_SLOTS et al, and non-cmake projects

From: Nix <nix@...>
Date: Mon, 11 Jun 2012 21:50:32 +0100
So my attempted build of kdeaccessibility is failing. The failure is
because of Q_SLOTS: nothing is replacing it with <slots> before
processing by uic, so uic is never putting the slot into the .h file and
compilation is failing.

While tqt-replace fixes this up for projects using CMake, the
corresponding call in am_edit was commented out in July 2010, in this

commit 4f9a36e2fcee4ecd7adbc3e53c8e6837712c2a35
Author: tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>
Date:   Mon Jul 26 02:04:25 2010 +0000

    First attempt at getting TQT integrated...

But even with that commented-out tqt-replace call uncommented, it still
doesn't work. If we look at
kaccessibility/kmouth/wordcompletion/Makefile, we see:

all: docs-am  all-am
all-am: Makefile $(LIBRARIES)
 noinst_LIBRARIES = libwordcompletion.a
libwordcompletion.a: $(libwordcompletion_a_OBJECTS) $(libwordcompletion_a_DEPENDENCIES) $(EXTRA_libwordcompletion_a_DEPENDENCIES)
libwordcompletion_a_OBJECTS = $(libwordcompletion_a_nofinal_OBJECTS)
libwordcompletion_a_OBJECTS = $(libwordcompletion_a_nofinal_OBJECTS)
#libwordcompletion_a_OBJECTS = $(libwordcompletion_a_final_OBJECTS)
libwordcompletion_a_final_OBJECTS = libwordcompletion_a.all_cpp.o

and it is the libwordcompletion_a.all_cpp.o rule that has the
tqt-replace call in it.

Thus, this is only going to work if that line is uncommented *and*
--enable-final is passed in. But the Wiki doesn't mention
--enable-final, only --enable-closure!

Unfortunately that *also* doesn't work, and it becomes obvious why Tim
commented that line out -- it's applying to the .cpp files only, but to
be effective tqt-replace must run over the .ui files, before uic gets to

I don't see how this could possibly ever work. Have people actually
managed to compile the non-cmake parts of Trinity in the last little

If so, what configure flags did you use, and could you send me a copy of
kaccessibility/kmouth/wordcompletion/ and
kaccessibility/kmouth/wordcompletion/wordcompletionui.{everything but .o
and .lo} after a build? 'cos I am sore confused.

Ditching this whole nightmare and going to cmake is ever such a good
idea! :)

NULL && (void)