CXXSTD is the C++ analogue to CSTD.
authorEnji Cooper <ngie@FreeBSD.org>
Fri, 29 Mar 2019 18:13:44 +0000 (18:13 +0000)
committerEnji Cooper <ngie@FreeBSD.org>
Fri, 29 Mar 2019 18:13:44 +0000 (18:13 +0000)
commit9a41926bfb664dd77659d1615ba55d75c2c530a8
tree22e8924bf0eae4d597df29297ed7d3533c32f5a9
parent5d00c5a6571cdf533228338fa7ca532c91af1d66
CXXSTD is the C++ analogue to CSTD.

CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`,
otherwise for older versions of g++.

This change standardizes the CXXSTD variable, originally added to
googletest.test.inc.mk as part of r345203.

As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`.

Notes:

This value is not sanity checked in bsd.sys.mk, however, given the two
most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is
likely to work with both toolchains. This method will be refined in the future
to support more variants of C++, as not all versions of clang++ and g++ (for
instance) support C++14, C++17, etc.

Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD.
Example:

Before this commit:
```
CXXFLAGS+= -std=c++14
```

After this commit:
```
CXXSTD= c++14
```

Reviewed by: asomers
Approved by: emaste (mentor)
MFC after: 1 month
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D19732
15 files changed:
lib/clang/llvm.build.mk
lib/libc++/Makefile
lib/libc++experimental/Makefile
lib/libc++fs/Makefile
lib/libc/tests/stdlib/Makefile
lib/libclang_rt/Makefile.inc
lib/libcxxrt/Makefile
lib/libgcc_eh/Makefile.inc
lib/libomp/Makefile
lib/ofed/libibnetdisc/Makefile
share/mk/bsd.progs.mk
share/mk/bsd.sys.mk
share/mk/googletest.test.inc.mk
usr.bin/dtc/Makefile
usr.sbin/pmc/Makefile