On 3/23/19 12:13 PM, Pierre Labastie via blfs-dev wrote:

On 3/23/19 5:36 PM, Pierre Labastie via blfs-dev wrote:
When building plasma 5.15, everything goes well until "plasma-workspace". Then
I get the following:
---------------
[...]
Scanning dependencies of target appmenu
[  7%] Building CXX object appmenu/CMakeFiles/appmenu.dir/appmenu_autogen/mocs_c
ompilation.cpp.o
[  7%] Building CXX object appmenu/CMakeFiles/appmenu.dir/appmenu.cpp.o
In file included from /sources/plasma/plasma-workspace-5.15.0/appmenu/appmenu.cp
p:27:
/sources/plasma/plasma-workspace-5.15.0/build/config-X11.h:44:18: warning: "TRUE
" is not defined, evaluates to 0 [-Wundef]
  #define HAVE_X11 TRUE
                   ^~~~
/sources/plasma/plasma-workspace-5.15.0/appmenu/appmenu.cpp:47:5: note: in expan
sion of macro ‘HAVE_X11’
  #if HAVE_X11
      ^~~~~~~~
/sources/plasma/plasma-workspace-5.15.0/appmenu/appmenu.cpp: In member
function ‘void AppMenuModule::slotWindowRegistered(WId, const QString&, const
QDBusObjectPath&)’:
/sources/plasma/plasma-workspace-5.15.0/appmenu/appmenu.cpp:111:19: error:
‘QX11Info’ has not been declared
          auto *c = QX11Info::connection();
                    ^~~~~~~~
/sources/plasma/plasma-workspace-5.15.0/appmenu/appmenu.cpp:113:16: error:
‘xcb_atom_t’ does not name a type
          static xcb_atom_t s_serviceNameAtom = XCB_ATOM_NONE;
[...]
make[2]: *** [appmenu/CMakeFiles/appmenu.dir/build.make:98:
appmenu/CMakeFiles/appmenu.dir/appmenu.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1793: appmenu/CMakeFiles/appmenu.dir/all]
Error 2
make: *** [Makefile:130: all] Error 2
---------------

The reason for all the errors is in the first warning: TRUE is not defined, so
it evaluate to 0. Then the appmenu.cpp file has:
----------
#if HAVE_X11
#include <QX11Info>
#include <xcb/xcb.h>
#endif
[...]
#ifdef HAVE_X11
     if (KWindowSystem::isPlatformX11()) {
         auto *c = QX11Info::connection();
[...]
----------
The first #if HAVE_X11 evaluates to false, so the header file is not included.
Then the second #ifdef HAVE_X11 evaluates to true, since HAVE_X11 _is_
defined, so that "auto *c = QX11Info::connection();" is compiled, but of
course, QX11Info has not been defined.

There is a fix in 5.15.3.

Now, how is it that we have not seen that before? I've built plasma-5.15.0
already once, without error... The only difference I see is that I had
gcc-8.2.0. But I tried to reinstall gcc-8.2.0, and: same error!

I may well be out of my depth here.


OK, the other difference is cmake version... The above is
with 3.14. There is no error with 3.13.4: what is generated
is:

#define HAVE_X11 1

with 3.13.4

while it is

#define HAVE_X11 TRUE

with 3.14.

I'm surprised that the problem didn't show up in kf5 or the earlier plasma packages. I have not built plasma since tests for the 8.4 release and wasn't planning on rebuilding the next version until May.

The current version of plasma is 5.15.3. Can you check if the problem is fixed there?

  -- Bruce



--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to