summaryrefslogtreecommitdiffstats
path: root/src/corelib/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/CMakeLists.txt')
-rw-r--r--src/corelib/CMakeLists.txt781
1 files changed, 781 insertions, 0 deletions
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt
new file mode 100644
index 0000000000..eaa2ab8654
--- /dev/null
+++ b/src/corelib/CMakeLists.txt
@@ -0,0 +1,781 @@
+
+find_package(Threads)
+find_package(WrapDoubleConversion REQUIRED)
+
+find_library(FWAppKit AppKit)
+find_library(FWApplicationServices ApplicationServices)
+find_library(FWCoreFoundation CoreFoundation)
+find_library(FWCoreServices CoreServices)
+find_library(FWDiskArbitration DiskArbitration)
+find_library(FWFoundation Foundation)
+find_library(FWIOKit IOKit)
+find_library(FWMobileCoreServices MobileCoreServices)
+find_library(FWSecurity Security)
+find_library(FWUIKit UIKit)
+find_library(FWWatchKit WatchKit)
+
+## Evaluation helper target:
+# FIXME: How does this work?
+add_library(Qt_Evaluation INTERFACE)
+target_sources(Qt_Evaluation INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/kernel/qtcore_eval.cpp")
+target_include_directories(Qt_Evaluation INTERFACE global)
+
+#####################################################################
+## Core Module:
+#####################################################################
+
+add_qt_module(Core
+ SOURCES
+ animation/qabstractanimation.cpp animation/qabstractanimation.h animation/qabstractanimation_p.h
+ animation/qanimationgroup.cpp animation/qanimationgroup.h animation/qanimationgroup_p.h
+ animation/qparallelanimationgroup.cpp animation/qparallelanimationgroup.h animation/qparallelanimationgroup_p.h
+ animation/qpauseanimation.cpp animation/qpauseanimation.h
+ animation/qpropertyanimation.cpp animation/qpropertyanimation.h animation/qpropertyanimation_p.h
+ animation/qsequentialanimationgroup.cpp animation/qsequentialanimationgroup.h animation/qsequentialanimationgroup_p.h
+ animation/qvariantanimation.cpp animation/qvariantanimation.h animation/qvariantanimation_p.h
+ codecs/qisciicodec.cpp codecs/qisciicodec_p.h
+ codecs/qlatincodec.cpp codecs/qlatincodec_p.h
+ codecs/qsimplecodec.cpp codecs/qsimplecodec_p.h
+ codecs/qtextcodec.cpp codecs/qtextcodec.h codecs/qtextcodec_p.h
+ codecs/qtsciicodec.cpp codecs/qtsciicodec_p.h
+ codecs/qutfcodec.cpp codecs/qutfcodec_p.h
+ global/archdetect.cpp
+ global/qcompilerdetection.h
+ global/qendian.cpp global/qendian.h global/qendian_p.h
+ global/qflags.h
+ global/qfloat16.cpp global/qfloat16.h global/qfloat16_p.h
+ global/qglobal.cpp global/qglobal.h
+ global/qglobalstatic.h
+ global/qhooks.cpp global/qhooks_p.h
+ global/qisenum.h
+ global/qlibraryinfo.cpp global/qlibraryinfo.h
+ global/qlogging.cpp global/qlogging.h
+ global/qmalloc.cpp
+ global/qnamespace.h
+ global/qnumeric.cpp global/qnumeric.h global/qnumeric_p.h
+ global/qoperatingsystemversion.cpp global/qoperatingsystemversion.h global/qoperatingsystemversion_p.h
+ global/qprocessordetection.h
+ global/qrandom.cpp global/qrandom.h global/qrandom_p.h
+ global/qsysinfo.h
+ global/qsystemdetection.h
+ global/qtypeinfo.h
+ global/qtypetraits.h
+ global/qversiontagging.cpp global/qversiontagging.h
+ io/qabstractfileengine.cpp io/qabstractfileengine_p.h
+ io/qbuffer.cpp io/qbuffer.h
+ io/qdataurl.cpp io/qdataurl_p.h
+ io/qdebug.cpp io/qdebug.h io/qdebug_p.h
+ io/qdir.cpp io/qdir.h io/qdir_p.h
+ io/qdiriterator.cpp io/qdiriterator.h
+ io/qfile.cpp io/qfile.h
+ io/qfiledevice.cpp io/qfiledevice.h io/qfiledevice_p.h
+ io/qfileinfo.cpp io/qfileinfo.h io/qfileinfo_p.h
+ io/qfileselector.cpp io/qfileselector.h io/qfileselector_p.h
+ io/qfilesystemengine.cpp io/qfilesystemengine_p.h
+ io/qfilesystementry.cpp io/qfilesystementry_p.h
+ io/qfilesystemiterator_p.h
+ io/qfilesystemmetadata_p.h
+ io/qfilesystemwatcher.cpp io/qfilesystemwatcher.h io/qfilesystemwatcher_p.h
+ io/qfilesystemwatcher_polling.cpp io/qfilesystemwatcher_polling_p.h
+ io/qfsfileengine.cpp io/qfsfileengine_p.h
+ io/qfsfileengine_iterator.cpp io/qfsfileengine_iterator_p.h
+ io/qiodevice.cpp io/qiodevice.h io/qiodevice_p.h
+ io/qipaddress.cpp io/qipaddress_p.h
+ io/qlockfile.cpp io/qlockfile.h io/qlockfile_p.h
+ io/qloggingcategory.cpp io/qloggingcategory.h
+ io/qloggingregistry.cpp io/qloggingregistry_p.h
+ io/qnoncontiguousbytedevice.cpp io/qnoncontiguousbytedevice_p.h
+ io/qresource.cpp io/qresource_p.h
+ io/qresource_iterator.cpp io/qresource_iterator_p.h
+ io/qsavefile.cpp io/qsavefile.h
+ io/qsettings.cpp io/qsettings.h io/qsettings_p.h
+ io/qstandardpaths.cpp io/qstandardpaths.h
+ io/qstorageinfo.cpp io/qstorageinfo.h io/qstorageinfo_p.h
+ io/qtemporarydir.cpp io/qtemporarydir.h
+ io/qtemporaryfile.cpp io/qtemporaryfile.h io/qtemporaryfile_p.h
+ io/qtldurl.cpp io/qtldurl_p.h
+ io/qurl.cpp io/qurl.h io/qurl_p.h
+ io/qurlidna.cpp
+ io/qurlquery.cpp io/qurlquery.h
+ io/qurlrecode.cpp
+ io/qurltlds_p.h
+ kernel/qabstracteventdispatcher.cpp kernel/qabstracteventdispatcher.h kernel/qabstracteventdispatcher_p.h
+ kernel/qabstractnativeeventfilter.cpp kernel/qabstractnativeeventfilter.h
+ kernel/qbasictimer.cpp kernel/qbasictimer.h
+ kernel/qcoreapplication.cpp kernel/qcoreapplication.h kernel/qcoreapplication_p.h
+ kernel/qcorecmdlineargs_p.h
+ kernel/qcoreevent.cpp kernel/qcoreevent.h
+ kernel/qcoreglobaldata.cpp kernel/qcoreglobaldata_p.h
+ kernel/qdeadlinetimer.cpp kernel/qdeadlinetimer.h kernel/qdeadlinetimer_p.h
+ kernel/qelapsedtimer.cpp kernel/qelapsedtimer.h
+ kernel/qeventloop.cpp kernel/qeventloop.h
+ kernel/qfunctions_p.h
+ kernel/qmath.cpp kernel/qmath.h
+ kernel/qmetaobject.cpp kernel/qmetaobject.h kernel/qmetaobject_p.h
+ kernel/qmetaobject_moc_p.h
+ kernel/qmetaobjectbuilder.cpp kernel/qmetaobjectbuilder_p.h
+ kernel/qmetatype.cpp kernel/qmetatype.h kernel/qmetatype_p.h
+ kernel/qmetatypeswitcher_p.h
+ kernel/qmimedata.cpp kernel/qmimedata.h
+ kernel/qobject.cpp kernel/qobject.h kernel/qobject_p.h
+ kernel/qobject_impl.h
+ kernel/qobjectcleanuphandler.cpp kernel/qobjectcleanuphandler.h
+ kernel/qobjectdefs.h
+ kernel/qobjectdefs_impl.h
+ kernel/qpointer.cpp kernel/qpointer.h
+ kernel/qsharedmemory.cpp kernel/qsharedmemory.h kernel/qsharedmemory_p.h
+ kernel/qsignalmapper.cpp kernel/qsignalmapper.h
+ kernel/qsocketnotifier.cpp kernel/qsocketnotifier.h
+ kernel/qsystemerror.cpp kernel/qsystemerror_p.h
+ kernel/qsystemsemaphore.cpp kernel/qsystemsemaphore.h kernel/qsystemsemaphore_p.h
+ kernel/qtestsupport_core.cpp kernel/qtestsupport_core.h
+ kernel/qtimer.cpp kernel/qtimer.h
+ kernel/qtranslator.cpp kernel/qtranslator.h kernel/qtranslator_p.h
+ kernel/qvariant.cpp kernel/qvariant.h kernel/qvariant_p.h
+ plugin/qfactoryinterface.cpp plugin/qfactoryinterface.h
+ plugin/qfactoryloader.cpp plugin/qfactoryloader_p.h
+ plugin/qplugin.h plugin/qplugin_p.h
+ plugin/qpluginloader.cpp plugin/qpluginloader.h
+ plugin/quuid.cpp plugin/quuid.h
+ serialization/qcborarray.h
+ serialization/qcborcommon.h
+ serialization/qcbordiagnostic.cpp
+ serialization/qcbormap.h
+ serialization/qcborstream.cpp serialization/qcborstream.h
+ serialization/qcborvalue.cpp serialization/qcborvalue.h serialization/qcborvalue_p.h
+ serialization/qdatastream.cpp serialization/qdatastream.h serialization/qdatastream_p.h
+ serialization/qjson.cpp serialization/qjson_p.h
+ serialization/qjsonarray.cpp serialization/qjsonarray.h
+ serialization/qjsoncbor.cpp
+ serialization/qjsondocument.cpp serialization/qjsondocument.h
+ serialization/qjsonobject.cpp serialization/qjsonobject.h
+ serialization/qjsonparser.cpp serialization/qjsonparser_p.h
+ serialization/qjsonvalue.cpp serialization/qjsonvalue.h
+ serialization/qjsonwriter.cpp serialization/qjsonwriter_p.h
+ serialization/qtextstream.cpp serialization/qtextstream.h serialization/qtextstream_p.h
+ serialization/qxmlstream.cpp serialization/qxmlstream.h serialization/qxmlstream_p.h
+ serialization/qxmlutils.cpp serialization/qxmlutils_p.h
+ thread/qmutex.h
+ thread/qreadwritelock.h
+ thread/qrunnable.cpp thread/qrunnable.h
+ thread/qthread.cpp thread/qthread.h
+ thread/qthreadstorage.h
+ thread/qwaitcondition.h
+ tools/qalgorithms.h
+ tools/qarraydata.cpp tools/qarraydata.h
+ tools/qarraydataops.h
+ tools/qarraydatapointer.h
+ tools/qbitarray.cpp tools/qbitarray.h
+ tools/qbytearray.cpp tools/qbytearray.h tools/qbytearray_p.h
+ tools/qbytearraylist.cpp tools/qbytearraylist.h
+ tools/qbytearraymatcher.cpp tools/qbytearraymatcher.h
+ tools/qbytedata_p.h
+ tools/qcache.h
+ tools/qchar.h
+ tools/qcollator.cpp tools/qcollator.h tools/qcollator_p.h
+ tools/qcontainerfwd.h
+ tools/qcontiguouscache.cpp tools/qcontiguouscache.h
+ tools/qcryptographichash.cpp tools/qcryptographichash.h
+ tools/qdatetime.cpp tools/qdatetime.h tools/qdatetime_p.h
+ tools/qdoublescanprint_p.h
+ tools/qeasingcurve.cpp tools/qeasingcurve.h
+ tools/qfreelist.cpp tools/qfreelist_p.h
+ tools/qharfbuzz.cpp
+ tools/qhash.cpp tools/qhash.h
+ tools/qhashfunctions.h
+ tools/qiterator.h
+ tools/qline.cpp tools/qline.h
+ tools/qlinkedlist.cpp tools/qlinkedlist.h
+ tools/qlist.cpp tools/qlist.h
+ tools/qlocale.cpp tools/qlocale.h tools/qlocale_p.h
+ tools/qlocale_data_p.h
+ tools/qlocale_tools.cpp tools/qlocale_tools_p.h
+ tools/qmakearray_p.h
+ tools/qmap.cpp tools/qmap.h
+ tools/qmargins.cpp tools/qmargins.h
+ tools/qmessageauthenticationcode.cpp tools/qmessageauthenticationcode.h
+ tools/qoffsetstringarray_p.h
+ tools/qpair.h
+ tools/qpoint.cpp tools/qpoint.h
+ tools/qqueue.h
+ tools/qrect.cpp tools/qrect.h
+ tools/qrefcount.cpp tools/qrefcount.h
+ tools/qregexp.cpp tools/qregexp.h
+ tools/qringbuffer.cpp tools/qringbuffer_p.h
+ tools/qscopedpointer.h tools/qscopedpointer_p.h
+ tools/qscopedvaluerollback.h
+ tools/qscopeguard.h
+ tools/qset.h
+ tools/qshareddata.cpp tools/qshareddata.h
+ tools/qsharedpointer.cpp tools/qsharedpointer.h
+ tools/qsharedpointer_impl.h
+ tools/qsimd.cpp tools/qsimd_p.h
+ tools/qsize.cpp tools/qsize.h
+ tools/qstack.h
+ tools/qstring.cpp tools/qstring.h
+ tools/qstringalgorithms.h tools/qstringalgorithms_p.h
+ tools/qstringbuilder.cpp tools/qstringbuilder.h
+ tools/qstringiterator_p.h
+ tools/qstringlist.cpp tools/qstringlist.h
+ tools/qstringliteral.h
+ tools/qstringmatcher.h
+ tools/qstringview.cpp tools/qstringview.h
+ tools/qtextboundaryfinder.cpp tools/qtextboundaryfinder.h
+ tools/qtimeline.cpp tools/qtimeline.h
+ tools/qtools_p.h
+ tools/qunicodetables_p.h
+ tools/qunicodetools.cpp tools/qunicodetools_p.h
+ tools/qvarlengtharray.h
+ tools/qvector.h
+ tools/qversionnumber.cpp tools/qversionnumber.h
+ tools/qvsnprintf.cpp
+ LIBRARIES
+ WrapDoubleConversion
+ tinycbor Threads::Threads ZLIB::ZLIB
+ QtHarfBuzz
+ PUBLIC_LIBRARIES Qt::Platform
+ DEFINES
+ QT_NO_USING_NAMESPACE
+ QT_NO_FOREACH
+)
+
+# As a special feature, the global features are attached to QtCore as
+# custom properties. That's symmetric to qconfig.cpp/h being part of
+# QtCore and not of a QtGlobal library.
+
+foreach(visibility PUBLIC PRIVATE)
+ foreach(state ENABLED DISABLED)
+ get_target_property(props Qt_global_Config INTERFACE_QT_${state}_${visibility}_FEATURES)
+ set(propertyName "QT_GLOBAL_${state}_${visibility}_FEATURES")
+ set_property(TARGET Core PROPERTY ${propertyName} "${props}")
+ set_property(TARGET Core APPEND PROPERTY EXPORT_PROPERTIES "${propertyName}")
+ endforeach()
+endforeach()
+
+configure_file(global/qconfig.cpp.in global/qconfig.cpp)
+
+# FIXME: tools still have a lot of special stuff that is not ported!
+
+# FIXME: qmake condition: (linux*|hurd*):!cross_compile:!static:!*-armcc*
+# FIXME: qmake gets the elf interpreter out of /bin/ls
+find_program(HOST_ELF_INTERPRETER NAMES ld-linux-x86-64.so.2 PATHS /lib /lib64 NO_DEFAULT_PATH)
+if (LINUX AND NOT CMAKE_CROSSCOMPILING AND HOST_ELF_INTERPRETER_FOUND)
+ qt_internal_add_link_flags(Core "-Wl,-e,qt_core_boilerplate")
+ target_compile_definitions(Core PRIVATE ELF_INTERPRETER="${HOST_ELF_INTERPRETER}")
+endif()
+
+
+### Platform support:
+#####################################################################
+
+# Windows
+
+### All Windows:
+extend_target(Core CONDITION WIN32
+ SOURCES
+ io/qfilesystemengine_win.cpp
+ io/qfilesystemwatcher_win.cpp io/qfilesystemwatcher_win_p.h
+ io/qfsfileengine_win.cpp
+ io/qlockfile_win.cpp
+ kernel/qcoreapplication_win.cpp
+ kernel/qelapsedtimer_win.cpp
+ kernel/qsharedmemory_win.cpp
+ kernel/qsystemsemaphore_win.cpp
+ kernel/qwineventnotifier.cpp
+ kernel/qwineventnotifier.h
+ kernel/qwineventnotifier_p.h
+ plugin/qsystemlibrary.cpp
+ plugin/qsystemlibrary_p.h
+ thread/qatomic_msvc.h
+ thread/qthread_win.cpp
+ tools/qlocale_win.cpp
+ global/qoperatingsystemversion_win.cpp
+ LIBRARIES kernel32 user32 shell32 uuid ole32 advapi32 winmm version ws2_32
+)
+
+### Classic windows:
+extend_target(Core CONDITION WIN32 AND NOT WINRT
+ SOURCES
+ io/qsettings_win.cpp
+ io/qstandardpaths_win.cpp
+ io/qstorageinfo_win.cpp
+ io/qwindowspipereader.cpp
+ io/qwindowspipereader_p.h
+ io/qwindowspipewriter.cpp
+ io/qwindowspipewriter_p.h
+ kernel/qeventdispatcher_win.cpp kernel/qeventdispatcher_win_p.h
+ LIBRARIES mpr netapi32 userenv
+)
+
+### WinRT
+extend_target(Core CONDITION WIN32 AND WINRT
+ SOURCES
+ io/qsettings_winrt.cpp
+ io/qstandardpaths_winrt.cpp
+ io/qstorageinfo_stub.cpp
+ kernel/qeventdispatcher_winrt.cpp kernel/qeventdispatcher_winrt_p.h
+ kernel/qfunctions_fake_env_p.h
+ kernel/qfunctions_winrt.cpp kernel/qfunctions_winrt.h
+)
+
+### All Apple:
+extend_target(Core CONDITION APPLE
+ SOURCES
+ io/qsettings_mac.cpp
+ io/qstandardpaths_mac.mm
+ io/qstorageinfo_mac.cpp
+ kernel/qcfsocketnotifier.cpp kernel/qcfsocketnotifier_p.h
+ kernel/qcoreapplication_mac.cpp
+ kernel/qcore_foundation.mm
+ kernel/qcore_mac_objc.mm
+ kernel/qcore_mac_objc.mm kernel/qcore_mac.cpp kernel/qcore_mac_p.h
+ kernel/qelapsedtimer_mac.cpp
+ kernel/qeventdispatcher_cf.mm kernel/qeventdispatcher_cf_p.h
+ global/qoperatingsystemversion_darwin.mm
+ LIBRARIES ${FWCoreFoundation} ${FWFoundation}
+)
+
+### Apple desktop machines:
+extend_target(Core CONDITION APPLE_OSX
+ SOURCES
+ io/qfilesystemwatcher_fsevents.mm io/qfilesystemwatcher_fsevents_p.h
+ tools/qlocale_mac.mm
+ LIBRARIES
+ ${FWCoreServices} ${FWAppKit} ${FWSecurity}
+ ${FWApplicationServices} ${FWDiskArbitration} ${FWIOKit}
+)
+
+### Apple mobile machines:
+extend_target(Core CONDITION APPLE AND NOT APPLE_OSX
+ LIBRARIES ${FWMobileCoreServices}
+)
+
+extend_target(Core CONDITION APPLE_WATCHOS LIBRARIES ${FWWatchKit})
+extend_target(Core CONDITION APPLE_TVOS LIBRARIES ${FWUIKit})
+
+extend_target(Core CONDITION INTEGRITY
+ SOURCES tools/qlocale_unix.cpp
+ LIBRARIES posix ivfs socket net shm_client
+)
+
+extend_target(Core CONDITION UNIX
+ SOURCES
+ io/qfilesystemengine_unix.cpp
+ io/qfsfileengine_unix.cpp
+ io/qlockfile_unix.cpp
+ thread/qthread_unix.cpp
+)
+
+extend_target(Core CONDITION UNIX AND NOT APPLE
+ SOURCES
+ tools/qlocale_unix.cpp
+)
+
+extend_target(Core CONDITION ANDROID
+ SOURCES
+ io/qstandardpaths_android.cpp
+ io/qstorageinfo_unix.cpp
+ kernel/qjni.cpp kernel/qjni_p.h
+ kernel/qjnihelpers.cpp kernel/qjnihelpers_p.h
+ kernel/qjnionload.cpp
+)
+
+extend_target(Core CONDITION HAIKU
+ SOURCES
+ io/qstandardpaths_haiku.cpp
+ io/qstorageinfo_unix.cpp
+ LIBRARIES be
+)
+
+extend_target(Core CONDITION BSD
+ SOURCES io/qfilesystemwatcher_kqueue.cpp io/qfilesystemwatcher_kqueue_p.h
+)
+
+extend_target(Core CONDITION VXWORKS
+ SOURCES kernel/qfunctions_vxworks.cpp kernel/qfunctions_vxworks.h
+)
+
+extend_target(Core CONDITION NACL
+ SOURCES kernel/qfunctions_nacl.cpp kernel/qfunctions_nacl.h
+)
+
+extend_target(Core CONDITION NOT WIN32 AND NOT APPLE AND NOT ANDROID AND NOT HAIKU
+ SOURCES
+ io/qstandardpaths_unix.cpp
+ io/qstorageinfo_unix.cpp
+)
+
+### standardpaths, storageinfo and settings:
+if (WIN32)
+ if (WINRT)
+ target_sources(Core PRIVATE
+ io/qsettings_winrt.cpp
+ io/qstandardpaths_winrt.cpp
+ io/qstorageinfo_stub.cpp
+ )
+ else()
+ target_sources(Core PRIVATE
+ io/qsettings_win.cpp
+ io/qstandardpaths_win.cpp
+ io/qstorageinfo_win.cpp
+ )
+ endif()
+elseif (UNIX)
+ if (NOT INTEGRITY AND NOT UIKIT)
+ target_sources(Core PRIVATE io/forkfd_qt.cpp)
+ target_include_directories(Core PRIVATE ../3rdparty/forkfd)
+ endif()
+ if (NOT NACL AND APPLE)
+ target_sources(Core PRIVATE io/qsettings_mac.cpp)
+ endif()
+ if (APPLE)
+ target_sources(Core PRIVATE
+ io/qstandardpaths_mac.mm
+ io/qstorageinfo_mac.cpp
+ )
+ elseif(ANDROID AND NOT ANDROID_EMBEDDED)
+ target_sources(Core PRIVATE
+ io/qstandardpaths_android.cpp
+ io/qstorageinfo_unix.cpp
+ )
+ elseif(HAIKU)
+ target_sources(Core PRIVATE
+ io/qstandardpaths_haiku.cpp
+ io/qstorageinfo_unix.cpp
+ )
+ else()
+ target_sources(Core PRIVATE
+ io/qstandardpaths_unix.cpp
+ io/qstorageinfo_unix.cpp
+ )
+ endif()
+endif()
+
+### kernel stuff:
+if (UNIX OR INTEGRITY)
+ extend_target(Core SOURCES
+ kernel/qcore_unix.cpp
+ kernel/qcore_unix_p.h
+ kernel/qeventdispatcher_unix.cpp
+ kernel/qeventdispatcher_unix_p.h
+ kernel/qpoll_p.h
+ kernel/qtimerinfo_unix.cpp
+ kernel/qtimerinfo_unix_p.h
+ )
+ if (NOT APPLE OR NACL)
+ target_sources(Core PRIVATE kernel/qelapsedtimer_unix.cpp)
+ endif()
+
+ if (ANDROID)
+ target_sources(Core PRIVATE
+ kernel/qsharedmemory_android.cpp
+ kernel/qsystemsemaphore_android.cpp
+ )
+ else()
+ target_sources(Core PRIVATE
+ kernel/qsharedmemory_posix.cpp
+ kernel/qsharedmemory_systemv.cpp
+ kernel/qsharedmemory_unix.cpp
+ kernel/qsystemsemaphore_posix.cpp
+ kernel/qsystemsemaphore_systemv.cpp
+ kernel/qsystemsemaphore_unix.cpp
+ )
+ endif()
+
+ # FIXME: Implement this!
+ # This is needed by QMetaType::typeName array implementation
+ #integrity: QMAKE_CXXFLAGS += --pending_instantiations=128
+elseif(NOT WIN32 AND NOT UNIX AND NOT APPLE)
+ target_sources(Core PRIVATE kernel/qelapsedtimer_generic.cpp)
+endif()
+
+
+
+### Feature support:
+#####################################################################
+
+## inotify:
+extend_target(Core CONDITION QT_FEATURE_inotify
+ SOURCES
+ io/qfilesystemwatcher_inotify.cpp io/qfilesystemwatcher_inotify_p.h
+)
+
+## qqnx_pps:
+extend_target(Core CONDITION QNX AND QT_FEATURE_qqnx_pps
+ SOURCES
+ kernel/qppsattribute.cpp kernel/qppsattribute_p.h
+ kernel/qppsattributeprivate_p.h
+ kernel/qppsobject.cpp kernel/qppsobject_p.h
+ kernel/qppsobjectprivate_p.h
+ LIBRARIES pps
+)
+
+## clock_gettime:
+extend_target(Core CONDITION UNIX AND QT_FEATURE_clock_gettime
+ LIBRARIES rt
+)
+
+## glib:
+extend_target(Core CONDITION QT_FEATURE_glib
+ SOURCES
+ kernel/qeventdispatcher_glib.cpp kernel/qeventdispatcher_glib_p.h
+ LIBRARIES PkgConfig::GLib
+)
+
+## poll_select:
+extend_target(Core CONDITION UNIX AND QT_FEATURE_poll_select
+ SOURCES kernel/qpoll.cpp
+)
+
+## thread:
+extend_target(Core CONDITION QT_FEATURE_thread
+ SOURCES
+ thread/qatomic_bootstrap.h
+ thread/qatomic.cpp thread/qatomic.h
+ thread/qatomic_cxx11.h
+ thread/qbasicatomic.h
+ thread/qfutex_p.h
+ thread/qgenericatomic.h
+ thread/qmutex.cpp thread/qmutex_p.h
+ thread/qmutexpool.cpp thread/qmutexpool_p.h
+ thread/qorderedmutexlocker_p.h
+ thread/qreadwritelock.cpp thread/qreadwritelock_p.h
+ thread/qsemaphore.cpp thread/qsemaphore.h
+ thread/qthread_p.h
+ thread/qthreadpool.cpp thread/qthreadpool.h thread/qthreadpool_p.h
+ thread/qthreadstorage.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_thread AND WIN32
+ SOURCES
+ thread/qwaitcondition_win.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_thread AND NOT WIN32
+ SOURCES thread/qwaitcondition_unix.cpp
+)
+
+## future:
+extend_target(Core CONDITION QT_FEATURE_future
+ SOURCES
+ thread/qexception.cpp thread/qexception.h
+ thread/qfuture.h
+ thread/qfutureinterface.cpp thread/qfutureinterface.h thread/qfutureinterface_p.h
+ thread/qfuturesynchronizer.h
+ thread/qfuturewatcher.cpp thread/qfuturewatcher.h thread/qfuturewatcher_p.h
+ thread/qresultstore.cpp thread/qresultstore.h
+)
+
+## ICU:
+extend_target(Core CONDITION QT_FEATURE_icu
+ SOURCES
+ codecs/qicucodec.cpp
+ tools/qcollator_icu.cpp
+ tools/qlocale_icu.cpp
+ LIBRARIES ICU::i18n ICU::uc ICU::data
+)
+
+extend_target(Core CONDITION NOT QT_FEATURE_icu AND WIN32
+ SOURCES tools/qcollator_win.cpp
+)
+
+extend_target(Core CONDITION NOT QT_FEATURE_icu AND APPLE
+ SOURCES tools/qcollator_macx.cpp
+)
+
+extend_target(Core CONDITION NOT QT_FEATURE_icu AND NOT WIN32 AND NOT APPLE
+ SOURCES tools/qcollator_posix.cpp
+)
+
+extend_target(Core CONDITION NOT QT_FEATURE_icu
+ SOURCES
+ codecs/qbig5codec.cpp codecs/qbig5codec_p.h
+ codecs/qeucjpcodec.cpp codecs/qeucjpcodec_p.h
+ codecs/qeuckrcodec.cpp codecs/qeuckrcodec_p.h
+ codecs/qgb18030codec.cpp codecs/qgb18030codec_p.h
+ codecs/qjiscodec.cpp codecs/qjiscodec_p.h
+ codecs/qjpunicode.cpp
+ codecs/qsjiscodec.cpp codecs/qsjiscodec_p.h
+)
+
+extend_target(Core CONDITION NOT QT_FEATURE_icu AND QT_FEATURE_iconv
+ SOURCES codecs/qiconvcodec.cpp codecs/qiconvcodec_p.h
+ LIBRARIES Iconv
+)
+
+extend_target(Core CONDITION NOT QT_FEATURE_icu AND WIN32
+ SOURCES codecs/qwindowscodec.cpp codecs/qwindowscodec_p.h
+)
+
+## timezone:
+extend_target(Core CONDITION QT_FEATURE_timezone
+ SOURCES
+ tools/qtimezone.cpp tools/qtimezone.h
+ tools/qtimezoneprivate.cpp tools/qtimezoneprivate_p.h
+ tools/qtimezoneprivate_data_p.h
+)
+
+extend_target(Core CONDITION QT_FEATURE_timezone AND WIN32
+ SOURCES tools/qtimezoneprivate_win.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_timezone AND APPLE
+ SOURCES tools/qtimezoneprivate_mac.mm
+)
+
+extend_target(Core CONDITION QT_FEATURE_timezone AND ANDROID
+ SOURCES tools/qtimezoneprivate_android.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_timezone AND UNIX AND NOT APPLE
+ SOURCES tools/qtimezoneprivate_tz.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_timezone AND QT_FEATURE_icu AND NOT WIN32 AND NOT ANDROID AND NOT APPLE
+ SOURCES tools/qtimezoneprivate_icu.cpp
+)
+
+## datetimeparser:
+extend_target(Core CONDITION QT_FEATURE_datetimeparser
+ SOURCES tools/qdatetimeparser.cpp tools/qdatetimeparser_p.h
+)
+
+## regularexpression:
+extend_target(Core CONDITION QT_FEATURE_regularexpression
+ SOURCES tools/qregularexpression.cpp tools/qregularexpression.h
+ LIBRARIES PCRE2
+)
+
+## commandlineparser:
+extend_target(Core CONDITION QT_FEATURE_commandlineparser
+ SOURCES
+ tools/qcommandlineoption.cpp tools/qcommandlineoption.h
+ tools/qcommandlineparser.cpp tools/qcommandlineparser.h
+)
+
+## processenvironment:
+extend_target(Core CONDITION QT_FEATURE_processenvironment
+ SOURCES io/qprocess.cpp io/qprocess.h io/qprocess_p.h
+)
+
+extend_target(Core CONDITION QT_FEATURE_processenvironment AND WIN32 AND NOT WINRT
+ SOURCES io/qprocess_win.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_processenvironment AND APPLE
+ SOURCES io/qprocess_darwin.mm
+)
+
+extend_target(Core CONDITION QT_FEATURE_processenvironment AND UNIX
+ SOURCES io/qprocess_unix.cpp
+)
+
+## filesystemiterator:
+extend_target(Core CONDITION QT_FEATURE_filesystemiterator AND WIN32
+ SOURCES io/qfilesystemiterator_win.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_filesystemiterator AND UNIX
+ SOURCES io/qfilesystemiterator_unix.cpp
+)
+
+## itemmodel:
+extend_target(Core CONDITION QT_FEATURE_itemmodel
+ SOURCES
+ itemmodels/qabstractitemmodel.cpp itemmodels/qabstractitemmodel.h itemmodels/qabstractitemmodel_p.h
+ itemmodels/qitemselectionmodel.cpp itemmodels/qitemselectionmodel.h itemmodels/qitemselectionmodel_p.h
+)
+
+## proxymodel:
+extend_target(Core CONDITION QT_FEATURE_proxymodel
+ SOURCES itemmodels/qabstractproxymodel.cpp itemmodels/qabstractproxymodel.h itemmodels/qabstractproxymodel_p.h
+)
+
+## identityproxymodel:
+extend_target(Core CONDITION QT_FEATURE_identityproxymodel
+ SOURCES itemmodels/qidentityproxymodel.cpp itemmodels/qidentityproxymodel.h
+)
+
+## identityproxymodel:
+extend_target(Core CONDITION QT_FEATURE_sortfilterproxymodel
+ SOURCES itemmodels/qsortfilterproxymodel.cpp itemmodels/qsortfilterproxymodel.h
+)
+
+## stringlistmodel:
+extend_target(Core CONDITION QT_FEATURE_stringlistmodel
+ SOURCES itemmodels/qstringlistmodel.cpp itemmodels/qstringlistmodel.h
+)
+
+## library:
+extend_target(Core CONDITION QT_FEATURE_library
+ SOURCES
+ plugin/qelfparser_p.cpp plugin/qelfparser_p.h
+ plugin/qlibrary.cpp plugin/qlibrary.h plugin/qlibrary_p.h
+ plugin/qmachparser.cpp plugin/qmachparser_p.h
+ LIBRARIES ${CMAKE_DL_LIBS}
+)
+
+extend_target(Core CONDITION QT_FEATURE_library AND WIN32
+ SOURCES plugin/qlibrary_win.cpp
+)
+
+extend_target(Core CONDITION QT_FEATURE_library AND UNIX
+ SOURCES plugin/qlibrary_unix.cpp
+)
+
+## statemachine:
+extend_target(Core CONDITION QT_FEATURE_statemachine
+ SOURCES
+ statemachine/qabstractstate.cpp statemachine/qabstractstate.h statemachine/qabstractstate_p.h
+ statemachine/qabstracttransition.cpp statemachine/qabstracttransition.h statemachine/qabstracttransition_p.h
+ statemachine/qfinalstate.cpp statemachine/qfinalstate.h statemachine/qfinalstate_p.h
+ statemachine/qhistorystate.cpp statemachine/qhistorystate.h statemachine/qhistorystate_p.h
+ statemachine/qsignaleventgenerator_p.h
+ statemachine/qsignaltransition.cpp statemachine/qsignaltransition.h statemachine/qsignaltransition_p.h
+ statemachine/qstate.cpp statemachine/qstate.h statemachine/qstate_p.h
+ statemachine/qstatemachine.cpp statemachine/qstatemachine.h statemachine/qstatemachine_p.h
+)
+
+# qeventtransition:
+extend_target(Core CONDITION QT_FEATURE_qeventtransition
+ SOURCES statemachine/qeventtransition.cpp statemachine/qeventtransition.h statemachine/qeventtransition_p.h
+)
+
+# mimetype:
+extend_target(Core CONDITION QT_FEATURE_mimetype
+ SOURCES
+ mimetypes/mimetypes.qrc
+ mimetypes/qmimedatabase.cpp mimetypes/qmimedatabase.h mimetypes/qmimedatabase_p.h
+ mimetypes/qmimeglobpattern.cpp mimetypes/qmimeglobpattern_p.h
+ mimetypes/qmimemagicrule.cpp mimetypes/qmimemagicrule_p.h
+ mimetypes/qmimemagicrulematcher.cpp mimetypes/qmimemagicrulematcher_p.h
+ mimetypes/qmimeprovider.cpp mimetypes/qmimeprovider_p.h
+ mimetypes/qmimetype.cpp mimetypes/qmimetype.h mimetypes/qmimetype_p.h
+ mimetypes/qmimetypeparser.cpp mimetypes/qmimetypeparser_p.h
+)
+
+# Enable Evaluation based on QT_EVAL variable being set from the outside:
+extend_target(Core CONDITION QT_EVAL LIBRARIES Qt_Evaluation)
+
+### Extra stuff:
+#####################################################################
+
+
+add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/global/qfloat16tables.cpp"
+ COMMAND qfloat16-tables
+ ARGS "${CMAKE_CURRENT_BINARY_DIR}/global/qfloat16tables.cpp"
+ DEPENDS global/qfloat16.h
+ COMMENT qfloat16-tables
+ VERBATIM)
+target_sources(Core PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/global/qfloat16tables.cpp")
+
+qt_create_tracepoints(Core qtcore.tracepoints)
+
+# Remove QT_NO_CAST_TO_ASCII to ensure that the symbols are included in the library.
+if(WIN32)
+ get_target_property(defines Core COMPILE_DEFINITIONS)
+ list(REMOVE_ITEM defines QT_NO_CAST_TO_ASCII)
+ set_target_properties(Core PROPERTIES COMPILE_DEFINITIONS "${defines}")
+endif()
+
+add_qt_docs(./doc/qtcore.qdocconf)