Am Wed, 30 Dec 2020 21:08:42 +0100 schrieb Thibaut Cuvelier <tcuvel...@lyx.org>:
> On Wed, 30 Dec 2020 at 16:06, Kornel Benko <kor...@lyx.org> wrote: > > > Am Wed, 30 Dec 2020 15:17:36 +0100 > > schrieb Thibaut Cuvelier <tcuvel...@lyx.org>: > > > > > On Wed, 30 Dec 2020 at 09:01, Yuriy Skalko <yuriy.ska...@gmail.com> > > wrote: > > > > > > > > Here is a newer version of the patch that does not use _HAS_CXX17, > > as it > > > > > should not really be relied upon ( > > > > > > > > > > > https://stackoverflow.com/questions/52379233/is-has-cxx17-marco-usable-in-custom-project-headers-to-enable-c17-language > > > > ). > > > > > > > > I think the right way will be using only standard-compliant > > > > "__cplusplus" in sources and adding the option "/Zc:__cplusplus" for > > > > MSVC compiler in the build scripts so it handle __cplusplus in > > > > standard-compliant way: > > > > > > > > > > > > > > https://docs.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-160 > > > > > > > > > > It seems that it's not that easy to pass this flag through CMake, and the > > > devs are not really willing to do something about it: > > > https://gitlab.kitware.com/cmake/cmake/-/issues/18837 > > > > We can do it. For instance add the flag in > > ./development/cmake/config.h.cmake > > #cmakedefine LYX_EXTRA_CXXFLAGS 1 > > #if defined(LYX_EXTRA_CXXFLAGS) > > #define ${LYX_EXTRA_CXXFLAGS} > > #endif > > Now you could use > > $ cmake ... -DLYX_EXTRA_CXXFLAGS=__cplusplus > > and the resulting config.h will contain > > #define LYX_EXTRA_CXXFLAGS 1 > > #if defined(LYX_EXTRA_CXXFLAGS) > > #define __cplusplus > > #endif > > > > Would it be possible to have a flag set by default for MSVC? It's not just > because it would look nice, it's for basically being able to build LyX, > it's a lot like adding libraries to link for MinGW or Cygwin > (src/CMakeLists.txt). > > Also, it won't work if it's in the config.h file that's included > everywhere: This is not the case. This config file is created at configure time and is exactly usefull _only_ to this build. > it's a flag that must be passed when calling the compiler (and > I guess no sane compiler will let you redefine the macro __cplusplus > defined in the standard). Kornel
pgp0Iy5tMrR_n.pgp
Description: Digitale Signatur von OpenPGP
-- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel