e1ba711992
The static CRT, libcpmt.lib, is not shipped with Visual Studio Express for Windows (unlike VS Express for Windows Desktop or Professional versions), causing configure and qmake to fail linking if this is the only VS installed. By removing -MT (which is on by default) and adding $(CFLAGS_CRT) to the compiler line, -MD can be added to the compiler flags via the environment, providing a workaround for the issue. Change-Id: I5613346d60a3a1889c121f04d53b09fbb147fc02 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
226 lines
6.0 KiB
Makefile
226 lines
6.0 KiB
Makefile
!IF "$(QMAKESPEC)" == "win32-msvc" || "$(QMAKESPEC)" == "win32-msvc.net" || "$(QMAKESPEC)" == "win32-msvc2002" || "$(QMAKESPEC)" == "win32-msvc2003" || "$(QMAKESPEC)" == "win32-msvc2005" || "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013" || "$(QMAKESPEC)" == "win32-icc"
|
|
|
|
!if "$(SOURCE_PATH)" == ""
|
|
SOURCE_PATH = ..
|
|
!endif
|
|
!if "$(BUILD_PATH)" == ""
|
|
BUILD_PATH = ..
|
|
!endif
|
|
|
|
QMKSRC = $(SOURCE_PATH)\qmake
|
|
|
|
#
|
|
# specific stuff for NMake and ICC
|
|
#
|
|
!if "$(QMAKESPEC)" == "win32-icc"
|
|
CXX = icl
|
|
LINKER = link
|
|
CFLAGS = /Zc:forScope
|
|
!else
|
|
CXX = cl
|
|
LINKER = link
|
|
!endif
|
|
|
|
#
|
|
# specific stuff for VS2005
|
|
#
|
|
!if "$(QMAKESPEC)" == "win32-msvc2005"
|
|
CFLAGS_EXTRA = /Zc:wchar_t-
|
|
!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013"
|
|
CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS $(CFLAGS_CRT)
|
|
!endif
|
|
|
|
CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \
|
|
-W3 -nologo -O1 \
|
|
$(CFLAGS_EXTRA) \
|
|
-I$(QMKSRC) -I$(QMKSRC)\library -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac -I$(QMKSRC)\generators\integrity \
|
|
-I$(INC_PATH) -I$(INC_PATH)\QtCore -I$(INC_PATH)\QtCore\$(QT_VERSION) -I$(INC_PATH)\QtCore\$(QT_VERSION)\QtCore \
|
|
-I$(BUILD_PATH)\src\corelib\global -DHAVE_QCONFIG_CPP \
|
|
-I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
|
|
-I$(SOURCE_PATH)\tools\shared \
|
|
-DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \
|
|
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS \
|
|
-DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
|
|
-DUNICODE -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 -DQT_JSON_READONLY -DQT_NO_STANDARDPATHS
|
|
CFLAGS = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS) $(EXTRA_CPPFLAGS)
|
|
|
|
CXXFLAGS_BARE = $(CFLAGS_BARE)
|
|
CXXFLAGS = $(CFLAGS)
|
|
|
|
LFLAGS =
|
|
LIBS = ole32.lib advapi32.lib shell32.lib
|
|
LINKQMAKE = $(LINKER) $(LFLAGS) -OUT:qmake.exe $(OBJS) $(QTOBJS) $(LIBS)
|
|
ADDCLEAN = qmake.pdb qmake.ilk
|
|
|
|
!ELSE
|
|
!ERROR Unsupported compiler for this Makefile
|
|
!ENDIF
|
|
|
|
#qmake code
|
|
OBJS = project.obj main.obj ioutils.obj proitems.obj qmakevfs.obj \
|
|
qmakeglobals.obj qmakeparser.obj qmakeevaluator.obj qmakebuiltins.obj \
|
|
makefile.obj unixmake.obj unixmake2.obj mingw_make.obj \
|
|
option.obj winmakefile.obj projectgenerator.obj property.obj meta.obj \
|
|
makefiledeps.obj metamakefile.obj xmloutput.obj \
|
|
msvc_nmake.obj msvc_vcproj.obj msvc_vcxproj.obj \
|
|
msvc_objectmodel.obj msbuild_objectmodel.obj registry.obj \
|
|
gbuild.obj cesdkhandler.obj
|
|
|
|
#qt code
|
|
QTOBJS= \
|
|
qbitarray.obj \
|
|
qbuffer.obj \
|
|
qcryptographichash.obj \
|
|
qfilesystementry.obj \
|
|
qfilesystemengine.obj \
|
|
qfilesystemengine_win.obj \
|
|
qfilesystemiterator_win.obj \
|
|
qfsfileengine.obj \
|
|
qfsfileengine_iterator.obj \
|
|
qarraydata.obj \
|
|
qbytearray.obj \
|
|
qvsnprintf.obj \
|
|
qbytearraymatcher.obj \
|
|
qdatetime.obj \
|
|
qdir.obj \
|
|
qdiriterator.obj \
|
|
qfiledevice.obj \
|
|
qfile.obj \
|
|
qtemporaryfile.obj \
|
|
qabstractfileengine.obj \
|
|
qfsfileengine_win.obj \
|
|
qsystemlibrary.obj \
|
|
qfileinfo.obj \
|
|
qglobal.obj \
|
|
qhash.obj \
|
|
qiodevice.obj \
|
|
qdebug.obj \
|
|
qlist.obj \
|
|
qlinkedlist.obj \
|
|
qlocale.obj \
|
|
qlocale_tools.obj \
|
|
qlocale_win.obj \
|
|
qmalloc.obj \
|
|
qmap.obj \
|
|
qregexp.obj \
|
|
qtextcodec.obj \
|
|
qutfcodec.obj \
|
|
qstring.obj \
|
|
qstring_compat.obj \
|
|
qstringlist.obj \
|
|
qstringbuilder.obj \
|
|
qsystemerror.obj \
|
|
qtextstream.obj \
|
|
qdatastream.obj \
|
|
quuid.obj \
|
|
qvector.obj \
|
|
qsettings.obj \
|
|
qlibraryinfo.obj \
|
|
qvariant.obj \
|
|
qsettings_win.obj \
|
|
qmetatype.obj \
|
|
qxmlstream.obj \
|
|
qxmlutils.obj \
|
|
qnumeric.obj \
|
|
qlogging.obj \
|
|
qjson.obj \
|
|
qjsondocument.obj \
|
|
qjsonparser.obj \
|
|
qjsonarray.obj \
|
|
qjsonobject.obj \
|
|
qjsonvalue.obj
|
|
|
|
first all: qmake.exe
|
|
|
|
qmake.exe: $(OBJS) $(QTOBJS)
|
|
$(LINKQMAKE) qmake_pch.obj
|
|
-copy qmake.exe $(BUILD_PATH)\bin\qmake.exe
|
|
|
|
clean::
|
|
-del $(QTOBJS)
|
|
-del $(OBJS)
|
|
-del qmake_pch.obj
|
|
-del qmake_pch.pch
|
|
-del qmake.pdb
|
|
-del qmake.ilk
|
|
-del qmake.tds
|
|
|
|
distclean:: clean
|
|
-del qmake
|
|
|
|
.c.obj:
|
|
$(CXX) $(CFLAGS) $<
|
|
|
|
.cpp.obj:
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
.cc.obj:
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
.cxx.obj:
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
$(OBJS): qmake_pch.obj
|
|
|
|
$(QTOBJS): qmake_pch.obj
|
|
|
|
qlibraryinfo.obj: $(BUILD_PATH)\src\corelib\global\qconfig.cpp
|
|
|
|
qmake_pch.obj:
|
|
$(CXX) $(CXXFLAGS_BARE) -c -Yc -Fpqmake_pch.pch -TP $(QMKSRC)\qmake_pch.h
|
|
|
|
{$(SOURCE_PATH)\qmake\library}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\qmake\generators\mac}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\qmake\generators\integrity}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\qmake\generators\unix}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\qmake\generators\win32}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\qmake\generators}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\qmake}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\3rdparty\md5}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\codecs}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\global}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\io}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\kernel}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\plugin}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\xml}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\json}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(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
|