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.

Pierre

--
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