| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
AS_TR_SH maps both `:` and `=` to `_` so -std:c++17 was colliding
with -std=c++17. Suffix the cache variable name for the former
with _MSVC to avoid this.
|
|
|
|
|
| |
MSVC defaults to C++14 and needs -std:c++NN to enable support for
newer versions so add that to the list of options to try.
|
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC always sets __cplusplus to 199711L in older versions; newer versions
do the same unless /Zc:__cplusplus is specified as well as a /std:c++<NN>
switch:
https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
This fixes a regression compared to the old separate
AX_CXX_COMPILE_STDCXX_11, etc macros which didn't check the value of
__cplusplus so worked OK with MSVC.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Commit bbb60ca79952c20ee0b187208533d98206b156d1 removed this check because
it can't support the user requesting noext. But if the user didn't specify
ext or noext, using the default mode should be fine. So this patch restores
the check if the second argument is empty.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Wnon-virtual-dtor`
Earlier autoconf tests in the [Kyua project](https://github.com/jmmv/kyua)
enable `-Werror -Wnon-virtual-dtor`, which fails because of the fact that
the `Base` and `Derived` classes have non-virtual destructors with
virtual methods. Thus, add a set of virtual destructors for both `Base` and
`Derived` to quell the error and have `clang++` be properly detected as a
C++-11 capable compiler.
Bump serial and add name to copyright for the change.
Tested with:
- clang++ 7.0.1
- g++ 8.2.0
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
|
|
|
|
|
|
|
|
| |
There is a released version of clang that supports C++17, so drop all
the ifdefs that made clang to skip some checks.
Also, a __cplusplus macro is specified to expand to 201703L, so fix
the check accordingly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem with the check is that it can't detect whether the version
is with extensions or not. So it can't take the "noext" or "ext"
option into account.
This may be a problem when an extended version of C++ has a feature
that conflicts with another feature from the C++ standard and we have
no way to tell the macro to add a "-std" flag anyway.
An example:
using namespace std::complex_literals;
std::complex<double> c = 1.0;
c += 1.0i;
std::cout << "abs" << c << " = " << abs(c) << '\n';
Here, the "1.0i" constant is either a GCC extension if compiled with
-std=gnu++14 or a standard C++ operator if compiled with
-std=c++14. If a GCC extension is used, the snippet fails to
compile. Unfortunately, recent GCC versions default to gnu++14, so
this code fails to compile by default.
Dropping the check forces the macro to evaluate compiler flags with
taking the "ext"/"noext" option into account.
Issue spotted by Frédéric Mangano-Tarumi.
|
|
|
|
| |
Now that C++17 has been standardized this warning can be removed.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Rewrap text.
Rewrap.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make C++ std-selection macros modify $(CXX), not $(CXXFLAGS).
Using $(CXXFLAGS) prevents users from being able to
rebuild with different CXXFLAGS (e.g.: to try out
different optimisations or to change debug levels)
unless they re-run ./configure with their CFLAGS.
This is more like what the mainline Autoconf macros do
(e.g.: AC_PROG_CC_C99, AC_PROG_CC_STD, etc. modify $(CC),
not $(CCFLAGS)), presmuably for much the same reasons:
if you need to specify a standard to the compiler,
it doesn't really make sense to separate that from
$(CC)/$(CXX) since $(CC)/$(CXX) aren't usable without it.
|
|
|
|
|
| |
AX_CXX_COMPILE_STDCXX doesn't set HAVE_CXX when [mandatory] is given as
an argument. This bug has existed since commit ccd1d4f54b07b46b.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* m4/ax_cxx_compile_stdcxx.m4: New macro file added.
(AX_CXX_COMPILE_STDCXX): New macro added. The code is based on
the former (serial version number 13) `AX_CXX_COMPILE_STDCXX_11`
macro, generalized to check for arbitrary versions of the standard
selected via an additional argument.
(_AX_CXX_COMPILE_STDCXX_testbody_11): New internal macro added.
Defined in terms of `_AX_CXX_COMPILE_STDCXX_testbody_new_in_11`.
(_AX_CXX_COMPILE_STDCXX_testbody_14): New internal macro added.
Defined in terms of `_AX_CXX_COMPILE_STDCXX_testbody_new_in_11`
and `_AX_CXX_COMPILE_STDCXX_testbody_new_in_14`.
(_AX_CXX_COMPILE_STDCXX_testbody_new_in_11): New internal macro
added. Test code to check for features added in C++14. It is
based on the code previously found in the
`_AX_CXX_COMPILE_STDCXX_11_testbody` macro, defined in
`m4/ax_cxx_compile_stdcxx_11.m4` but heavily refactored and
extended with additional checks.
(_AX_CXX_COMPILE_STDCXX_testbody_new_in_14): New internal macro
added. Test code to check for features added in C++14.
* m4/ax_cxx_compile_stdcxx_11.m4:
(AX_CXX_COMPILE_STDCXX_11): Make this macro an alias for the new
`AX_CXX_COMPILE_STDCXX` macro with the version set to C++11.
(_AX_CXX_COMPILE_STDCXX_11_testbody): Internal macro deleted.
* m4/ax_cxx_compile_stdcxx_14.m4: New macro file added.
(AX_CXX_COMPILE_STDCXX_14): New macro added. This macro is an
alias for the new `AX_CXX_COMPILE_STDCXX` macro with the version
set to C++14.
* m4/ax_cxx_compile_stdcxx_0x.m4 (AX_CXX_COMPILE_STDCXX_0X): Mark
macro as obsolete. The macro `AX_CXX_COMPILE_STDCXX_11` should be
used instead. I couldn't test this macro on my system because it
uses a lot of obsolete macros my Autoconf complains about and
errors out.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
The build process requires python, the python StringTemplate module,
and preferably SCons. A make-based build exists, but it is really slow
and awkward, compared to the SConstruct file.
|