On 03/19/2012 08:53 AM, Serghei Amelian wrote:
How can
we/what it the proper way to build library search paths into the
> tde build systems so that this information is automatically passed to make
> during the build? Can we do something in cmake to make sure the default
> $TDEDIR/lib and $TDEDIR/lib/trinity/lib are always passed as flags? This
> would take care of over half the spurious build failures I see.
The correct
way is to fix .pc file, not to mess cmake scripts :)
Serghei,
That is the problem here -- the .pc files ARE correct:
[23:44 nirvana:/mnt/nv1/home/chroot/david/opt/trinity/lib/pkgconfig] # cat
dbus-tqt.pc
prefix=/opt/trinity
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
Name: dbus-tqt-1
Description: D-BUS TQt bindings
Version: 0.7
Requires: dbus-1
Libs: -L${libdir} -ldbus-tqt-1 -ldbus-1 -lpthread -lrt
Cflags: -I${includedir} -I${includedir}/dbus-1.0
So according to the .pc file, the cmake setup should include the correct
string allowing make to find -ldbus-tqt-1. That Libs: string, as returned by the
.pc file should be:
-L${libdir} -....
Which is '-L${prefix}/lib -....' Or with the correct substitutions is:
-L/opt/trinity/lib -ldbus-tqt-1 -ldbus-1 -lpthread -lrt
^^^^^^^
However, the cmake setup does not include the correct -L${libdir}, instead it
provides:
'-L/opt/tqt3/lib':
^^^^
<snip>
CMakeFiles/tdeinit_kpowersave-shared.dir/suspenddialog.cpp.o
CMakeFiles/tdeinit_kpowersave-shared.dir/suspend_Dialog.cpp.o -L/opt/tqt3/lib
-ldbus-tqt-1 -ldbus-1 -lpthread -lrt /opt/trinity/lib/libkio.so.4.2.0 -lhal
-lXext -lXtst -lXss /opt/trinity/lib/libtdeui.so.4.2.0 -lfreetype -lfontconfig
/opt/trinity/lib/libtdesu.so.4.2.0 -lutil
<snip>
So somewhere in cmake it is pulling the wrong ${prefix}. I think this has to
be fixed in cmake because the .pc file IS correct. Where exactly is this done in
cmake? I think it is checking the wrong .pc file or something like that.
--
David C. Rankin, J.D.,P.E.