← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Adapt CMake 3.0 compatibility code for C++14

 

On 2019-07-17 13:53, Simon Richter wrote:
Hi,

On Wed, Jul 17, 2019 at 01:24:26PM -0400, Seth Hillbrand wrote:

Any reason to be using the gnu++14 extensions?  I thought we were
trying to stay with the vanilla c++14.

I went for consistency. This code is pretty much unused anyway, since it only handles the very old CMake versions that don't know the properties -- that's why there is a version check in front that causes a fatal error if someone bumps the minimum CMake version without removing the compatibility
code.

We currently have the respective compiler extensions enabled (both GNU and
Visual Studio), because we don't have

    set( CMAKE_CXX_EXTENSIONS OFF )

The problem is that doing that breaks msys2 builds with wx 3.0, because gcc
provides a POSIX-compliant strlen implementation as an extension that
becomes unavailable in standards-compliant mode. A wx header decides to
redirect missing functions to replacements in the DLL, but building the DLL
with extensions enabled means that the function is missing -- so builds
with -std=c++14 fail to link with a missing symbol.

I dimly remember that this is fixed in wx 3.1 (just provide the CRT
functions unconditionally), but I can't find the bug report anymore.

   Simon


Got it.  Thanks Simon!  Patch is pushed.

Best-
Seth


References