Re: C++11 flags for jhbuild
- From: Ian Martin <martin_id vodafone co nz>
- To: Murray Cumming <murrayc murrayc com>
- Cc: gtkmm-list <gtkmm-list gnome org>
- Subject: Re: C++11 flags for jhbuild
- Date: Mon, 20 Jul 2015 12:21:25 +1200
On 20/07/15 01:45, Murray Cumming wrote:
On Sun, 2015-07-19 at 15:44 +0200, Murray Cumming wrote:
On Sun, 2015-07-19 at 23:09 +1200, Ian Martin wrote:
Hi,
I'm trying to build gtkmm with jhbuild. glibmm fails with a number of
warnings and errors starting with
warning: identifier 'decltype' is a keyword in C++11 [-Wc++0x-compat]
/opt/gnome/include/sigc++-2.0/sigc++/functors/functor_trait.h:91:3:
warning: identifier 'nullptr' is a keyword in C++11 [-Wc++0x-compat]
/opt/gnome/include/sigc++-2.0/sigc++/functors/functor_trait.h:91:36:
error: 'decltype' has not been declared
/opt/gnome/include/sigc++-2.0/sigc++/functors/functor_trait.h:96:44:
error: 'nullptr' was not declared in this scope
= sizeof(check(static_cast<T_functor*>(nullptr))) == sizeof(int)
I'm guessing this means I need to enable C++11 within jhbuild. Do I do
this in my .jhbuildrc or should this be a compiler flag added within the
glibmm configure.ac?
This seems to be a -Wc++0x-compat warning. Do you have that in your
jhbuild config file somehow?
Or maybe you just need to run autogen.sh again.
Excluding comments, my .jhbuildrc contains the following:
modulesets_dir = '/usr/share/jhbuild/modulesets'
modules = [ 'gtkmm', 'cairomm' ]
checkoutroot = '/data/checkout/gnome-source/'
prefix = '/opt/gnome'
and rerunning ./autogen.sh gives the same errors.
I've tried adding
autogenargs='-std=c++11'
to jhbuildrc, but that blocked glib building with "unknown compiler
flag -std=c++11 ".
I'm running Debian testing, and use C++11 in other projects without any
problem, so I assume my build chain is set up OK.
This seems to be a -Wc++0x-compat warning. Do you have that in your
jhbuild config file somehow?
The warnings confirm this: one is
/opt/gnome/include/sigc++-2.0/sigc++/signal.h:257:7: warning: 'auto'
changes meaning in C++11; please remove it [-Wc++0x-compat]
auto tmp_ = end();
I haven't added it myself.
Update: can build glibmm by adding
MM_AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
to configure.ac
I'm no autotools genius, but it looks to me like sigc++ is now dependent
on c++11, which is going to create dependencies for all downstream
projects. If I'm correct, do you want me to create the bug report and
patches?
Ian.
Ian
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]