diff --git a/config/buildSettings.mk b/config/buildSettings.mk index 7492b5fb012101d466d1564762ca6b2c8064e74c..a958de299a892946a94b6a63a52cad1d3041c35f 100644 --- a/config/buildSettings.mk +++ b/config/buildSettings.mk @@ -65,7 +65,7 @@ ARCHLIBS = # armadillo structures may have different byte-alignment # to equivalent g++-compiled structures (see # include/armadillo_bits/compiler_setup.hpp) -ARCHNVCCFLAGS = -DARMA_ALLOW_FAKE_GCC +ARCHNVCCFLAGS = -DARMA_ALLOW_FAKE_GCC -std=c++14 # Linker flags for CUDA projects. ARCHNVCCLDFLAGS = diff --git a/config/vars.mk b/config/vars.mk index 7b75794b4f37a5a1b80c5dcb19d3106039518d99..dd4358974a964c3ad267dcc4f4ead73acc7dc532 100644 --- a/config/vars.mk +++ b/config/vars.mk @@ -119,11 +119,16 @@ CXXFLAGS += ${CPPFLAGS} ${ARCHCXXFLAGS} ${USRCXXFLAGS} ${INCFLAGS} LDFLAGS += ${ARCHLDFLAGS} ${USRLDFLAGS} \ -L. -L${DEVLIBDIR} -L${LIBDIR} \ ${LIBS} ${ARCHLIBS} -NVCCFLAGS += --compiler-options "${CPPFLAGS}" \ - ${ARCHNVCCFLAGS} \ - --compiler-options "${ARCHCXXFLAGS}" \ - ${USRNVCCFLAGS} \ - --compiler-options "${USRCXXFLAGS}" \ +# Remove any -std=c++ options, as we are already setting +# -std in ARCHNVCCFLAGS (seee buildSettings.mk), and +# passing another one via --compiler-options will confuse +# nvcc. We assume that project Makefile has not added +# -std to USRCXXFLAGGS/USRCPPFLAGS. +NVCCFLAGS += --compiler-options "${CPPFLAGS}" \ + ${ARCHNVCCFLAGS} \ + --compiler-options "$(patsubst -std=c++%,,${ARCHCXXFLAGS})" \ + ${USRNVCCFLAGS} \ + --compiler-options "${USRCXXFLAGS}" \ ${INCFLAGS} NVCCLDFLAGS += ${ARCHNVCCLDFLAGS} \ --compiler-options "${ARCHLDFLAGS}" \