From 9c9f609313b6a0ddf8e226b291324c97b504d07f Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 13 Dec 2013 16:43:43 -0800 Subject: Fix configure & qmake compilation with a future MSVC version When MSVC supports ref-qualified members, we need to ensure that qstring_compat.cpp can see the non-qualified definitions in qstring.h, which means no precompiled header. Alternatively, for a bootstrapped build we could not compile qstring_compat.cpp or #ifndef the functions. Change-Id: I8ece34503060f0b4b0f8f2df2fb9b0fb1311e269 Reviewed-by: Oswald Buddenhagen --- qmake/Makefile.win32 | 4 ++++ src/corelib/tools/qstring_compat.cpp | 3 +-- tools/configure/Makefile.mingw | 4 ++++ tools/configure/Makefile.win32 | 4 ++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index fd1ddc0b0d..b1936f3cec 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -219,3 +219,7 @@ qmake_pch.obj: {$(SOURCE_PATH)\tools\shared\windows}.cpp{}.obj:: $(CXX) $(CXXFLAGS) $< + +# Make sure qstring_compat.obj isn't compiled with PCH enabled +qstring_compat.obj: $(SOURCE_PATH)\src\corelib\tools\qstring_compat.cpp + $(CXX) -c $(CXXFLAGS_BARE) $(SOURCE_PATH)\src\corelib\tools\qstring_compat.cpp diff --git a/src/corelib/tools/qstring_compat.cpp b/src/corelib/tools/qstring_compat.cpp index 34c37a9cb8..6613dfde8e 100644 --- a/src/corelib/tools/qstring_compat.cpp +++ b/src/corelib/tools/qstring_compat.cpp @@ -39,9 +39,8 @@ ** ****************************************************************************/ -#if defined(QSTRING_H) && !defined(QT_BOOTSTRAPPED) +#if defined(QSTRING_H) # error "This file cannot be compiled with pre-compiled headers" -// (unless it's configure.exe, which is bootstrapped) #endif #define QT_COMPILING_QSTRING_COMPAT_CPP diff --git a/tools/configure/Makefile.mingw b/tools/configure/Makefile.mingw index 11bfbe562a..db8db54888 100644 --- a/tools/configure/Makefile.mingw +++ b/tools/configure/Makefile.mingw @@ -118,6 +118,10 @@ configureapp.o: $(CONFSRC)/configureapp.h $(CONFSRC)/environment.h $(CONFSRC)/to environment.o: $(CONFSRC)/environment.h tools.o: $(CONFSRC)/tools.h +# Make sure qstring_compat.obj isn't compiled with PCH enabled +qstring_compat.o: $(CORESRC)/tools/qstring_compat.cpp + $(CXX) -c $(CXXFLAGS_BARE) -o $@ $< + clean: -rm -f *.o -rm -rf *.gch diff --git a/tools/configure/Makefile.win32 b/tools/configure/Makefile.win32 index 2ec99d30b0..98a2181e39 100644 --- a/tools/configure/Makefile.win32 +++ b/tools/configure/Makefile.win32 @@ -163,3 +163,7 @@ quuid.obj: $(CORESRC)\plugin\quuid.cpp $(PCH) $(CXX) -c $(CXXFLAGS) $< {$(CORESRC)\xml}.cpp{}.obj:: $(CXX) -c $(CXXFLAGS) $< + +# Make sure qstring_compat.obj isn't compiled with PCH enabled +qstring_compat.obj: $(CORESRC)\tools\qstring_compat.cpp + $(CXX) -c $(CXXFLAGS_BARE) $(CORESRC)\tools\qstring_compat.cpp -- cgit v1.2.3