aa8393c94f
Add QCalendarBackend as a base class for calendar implementations and QCalendar as a facade via which to access it. QDate's implicit implementation of the Gregorian calendar becomes QGregorianCalendar and QDate methods now support choice of calendar. Convert QLocale's CLDR data for month names to a locale-data component of each supported calendar and relevant QLocale methods now support choice of calendar. Adapt Python scripts for locale data generation to extract month name data from CLDR (keeping on version v35.1) into the new calendar-locale files. The locale data for the Gregorian calendar is held in a Roman calendar base, for sharing with other calendars. Add tests for basic uses of the new API. [ChangeLog][QtCore][QCalendar] Added QCalendar to support diverse calendars, supported by implementing QCalendarBackend. [ChangeLog][QtCore][QDate] Allow choice of calendar in various operations, with Gregorian remaining the default. Done-with: Lars Knoll <lars.knoll@qt.io> Done-with: Edward Welbourne <edward.welbourne@qt.io> Fixes: QTBUG-17110 Fixes: QTBUG-950 Change-Id: I9d6278f394269a183aee8156e990cec4d5198ab8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
217 lines
6.0 KiB
Makefile
217 lines
6.0 KiB
Makefile
!if "$(SOURCE_PATH)" == ""
|
|
SOURCE_PATH = ..
|
|
!endif
|
|
!if "$(BUILD_PATH)" == ""
|
|
BUILD_PATH = ..
|
|
!endif
|
|
|
|
QMKSRC = $(SOURCE_PATH)\qmake
|
|
|
|
#
|
|
# per-compiler options
|
|
#
|
|
!if "$(QMAKESPEC)" == "win32-icc"
|
|
CXX = icl
|
|
LINKER = xilink
|
|
CFLAGS_EXTRA = /Zc:forScope /Qstd=c++11 /O3
|
|
!elseif "$(QMAKESPEC)" == "win32-clang-msvc"
|
|
CXX = clang-cl
|
|
LINKER = lld-link
|
|
CFLAGS_EXTRA = -fms-compatibility-version=19.00.23506 -Wno-microsoft-enum-value
|
|
!else
|
|
CXX = cl
|
|
LINKER = link
|
|
CFLAGS_EXTRA = /MP /wd4577 $(CFLAGS_CRT)
|
|
!endif # !win32-icc
|
|
|
|
CFLAGS_PCH = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch
|
|
PCH_OBJECT = qmake_pch.obj
|
|
|
|
CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \
|
|
-W2 -nologo -O2 \
|
|
$(CFLAGS_EXTRA) \
|
|
-I$(QMKSRC) -I$(QMKSRC)\library -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac \
|
|
-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 \
|
|
-I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \
|
|
-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS \
|
|
-DQT_VERSION_STR=\"$(QT_VERSION)\" -DQT_VERSION_MAJOR=$(QT_MAJOR_VERSION) -DQT_VERSION_MINOR=$(QT_MINOR_VERSION) -DQT_VERSION_PATCH=$(QT_PATCH_VERSION) \
|
|
-DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL \
|
|
-DQT_NO_FOREACH -DUNICODE -D_ENABLE_EXTENDED_ALIGNED_STORAGE
|
|
CFLAGS = $(CFLAGS_PCH) $(CFLAGS_BARE) $(CFLAGS)
|
|
|
|
CXXFLAGS_BARE = $(CFLAGS_BARE)
|
|
CXXFLAGS = $(CFLAGS)
|
|
|
|
LFLAGS =
|
|
LIBS = ole32.lib advapi32.lib shell32.lib netapi32.lib
|
|
ADDCLEAN = qmake.pdb qmake.ilk
|
|
|
|
#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
|
|
|
|
#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 \
|
|
qcalendar.obj \
|
|
qdatetime.obj \
|
|
qdir.obj \
|
|
qdiriterator.obj \
|
|
qfiledevice.obj \
|
|
qfile.obj \
|
|
qtemporaryfile.obj \
|
|
qabstractfileengine.obj \
|
|
qfsfileengine_win.obj \
|
|
qsystemlibrary.obj \
|
|
qfileinfo.obj \
|
|
qendian.obj \
|
|
qglobal.obj \
|
|
qgregoriancalendar.obj \
|
|
qhash.obj \
|
|
qiodevice.obj \
|
|
qringbuffer.obj \
|
|
qdebug.obj \
|
|
qlist.obj \
|
|
qlocale.obj \
|
|
qlocale_tools.obj \
|
|
qlocale_win.obj \
|
|
qversionnumber.obj \
|
|
qmalloc.obj \
|
|
qmap.obj \
|
|
qoperatingsystemversion.obj \
|
|
qoperatingsystemversion_win.obj \
|
|
qregexp.obj \
|
|
qromancalendar.obj \
|
|
qutfcodec.obj \
|
|
qstring.obj \
|
|
qstringlist.obj \
|
|
qstringbuilder.obj \
|
|
qsystemerror.obj \
|
|
qtextstream.obj \
|
|
qdatastream.obj \
|
|
quuid.obj \
|
|
qrandom.obj \
|
|
qsettings.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: $(BUILD_PATH)\bin\qmake.exe
|
|
binary: $(BUILD_PATH)\qmake\qmake.exe
|
|
|
|
$(BUILD_PATH)\bin\qmake.exe: $(OBJS) $(QTOBJS) qlibraryinfo.obj
|
|
$(LINKER) $(LFLAGS) /OUT:$(BUILD_PATH)\bin\qmake.exe $(OBJS) $(QTOBJS) qlibraryinfo.obj $(PCH_OBJECT) $(LIBS)
|
|
|
|
$(BUILD_PATH)\qmake\qmake.exe: $(OBJS) $(QTOBJS) qlibraryinfo_final.obj
|
|
$(LINKER) $(LFLAGS) /OUT:$(BUILD_PATH)\qmake\qmake.exe $(OBJS) $(QTOBJS) qlibraryinfo_final.obj $(PCH_OBJECT) $(LIBS)
|
|
|
|
clean::
|
|
-del $(QTOBJS) qlibraryinfo.obj qlibraryinfo_final.obj
|
|
-del $(OBJS)
|
|
-del qmake_pch.obj
|
|
-del qmake_pch.pch
|
|
-del qmake.pdb
|
|
-del qmake.ilk
|
|
-del qmake.tds
|
|
|
|
distclean:: clean
|
|
-del $(BUILD_PATH)\bin\qmake.exe
|
|
-del $(BUILD_PATH)\qmake\qmake.exe
|
|
-del Makefile
|
|
|
|
.cpp.obj:
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
$(OBJS): $(PCH_OBJECT)
|
|
|
|
$(QTOBJS): $(PCH_OBJECT)
|
|
|
|
qlibraryinfo.obj: $(PCH_OBJECT)
|
|
qlibraryinfo_final.obj: $(PCH_OBJECT)
|
|
|
|
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\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\serialization}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\text}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\time}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
{$(SOURCE_PATH)\src\corelib\tools}.cpp{}.obj::
|
|
$(CXX) $(CXXFLAGS) $<
|
|
|
|
# Make sure qlibraryinfo.obj isn't compiled with PCH enabled
|
|
qlibraryinfo.obj: $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp
|
|
$(CXX) $(CXXFLAGS_BARE) -DQT_BUILD_QMAKE_BOOTSTRAP $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp
|
|
|
|
qlibraryinfo_final.obj: $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp $(BUILD_PATH)\src\corelib\global\qconfig.cpp
|
|
$(CXX) $(CXXFLAGS) -Foqlibraryinfo_final.obj $(SOURCE_PATH)\src\corelib\global\qlibraryinfo.cpp
|