aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/CMakeLists.txt')
-rw-r--r--src/qml/CMakeLists.txt196
1 files changed, 61 insertions, 135 deletions
diff --git a/src/qml/CMakeLists.txt b/src/qml/CMakeLists.txt
index fa672d3d6c..5ed8abf904 100644
--- a/src/qml/CMakeLists.txt
+++ b/src/qml/CMakeLists.txt
@@ -31,65 +31,13 @@ if(ANDROID)
"${INSTALL_CMAKE_NAMESPACE}AndroidQmlMacros.cmake")
endif()
-set_source_files_properties(
- qml/qqmlcomponent.h qml/qqmlcomponent.cpp qml/qqmlcomponent_p.h
- qml/qqmlcomponentattached_p.h
- qml/qqmlscriptstring.h qml/qqmlscriptstring_p.h qml/qqmlscriptstring.cpp
- PROPERTIES
- SKIP_AUTOMOC TRUE
-)
-
-set(extra_manual_moc_deps "")
-if(QT_FEATURE_qml_network)
- list(APPEND extra_manual_moc_deps Qt6::Network)
-endif()
-# We want QQmlComponent, QQmlComponentAttached, and QQmlScriptString to be available as metatypes in
-# the builtins, but without depending on QtQml and without duplicating the metaobjects.
-qt_manual_moc(extra_builtins_moc_files
- OUTPUT_MOC_JSON_FILES extra_builtins_json_list
- qml/qqmlcomponent.h
- qml/qqmlcomponentattached_p.h
- qml/qqmlscriptstring.h
- TARGETS Qt6::Qml Qt6::Core ${extra_manual_moc_deps}
-)
-
-# The moc files are included directly by qqmlcomponent.cpp and qqmlscriptstring.cpp
-set_source_files_properties(${extra_builtins_moc_files} PROPERTIES HEADER_FILE_ONLY ON)
-
-qt_internal_add_module(QmlBuiltins
- STATIC
- NO_GENERATE_METATYPES # we do that manually below
- SOURCES
- qqmlbuiltins_p.h
-)
-
-add_custom_target(ExtraBuiltinsJson DEPENDS ${extra_builtins_json_list})
-add_custom_target(ExtraBuiltinsMocs DEPENDS ${extra_builtins_moc_files})
-
-target_link_libraries(QmlBuiltins PRIVATE Qt::Core Qt::QmlIntegration)
-
-# We generally need to copy the files into the build directory,
-# so that they are located together with the QML modules
-qt_path_join(qml_build_dir "${QT_BUILD_DIR}" "${INSTALL_QMLDIR}")
-
-# Simulate conditions that qt6_add_qml_module() would normally set up for us
-set_target_properties(QmlBuiltins PROPERTIES
- QT_QML_MODULE_VERSION 1.0
- QT_QML_MODULE_URI QML
- QT_QML_MODULE_TYPEINFO builtins.qmltypes
- QT_QML_MODULE_OUTPUT_DIRECTORY ${qml_build_dir}
-)
-
qt_internal_add_qml_module(Qml
- URI "QtQml.Base"
- VERSION "${PROJECT_VERSION}"
+ URI "QML"
+ VERSION "1.0"
DESIGNER_SUPPORTED
__QT_INTERNAL_SYSTEM_MODULE
- PLUGIN_TARGET qmlplugin
- CLASS_NAME QtQmlPlugin
PLUGIN_TYPES qmltooling
- IMPORTS
- QML/1.0
+ NO_PLUGIN
SOURCES
../3rdparty/masm/assembler/ARM64Assembler.h
../3rdparty/masm/assembler/ARMv7Assembler.cpp ../3rdparty/masm/assembler/ARMv7Assembler.h
@@ -173,13 +121,13 @@ qt_internal_add_qml_module(Qml
common/qqmljsfixedpoolarray_p.h
common/qqmljsmemorypool_p.h
common/qqmljssourcelocation_p.h
+ common/qqmlsignalnames_p.h common/qqmlsignalnames.cpp
+ common/qqmltranslation.cpp common/qqmltranslation_p.h
common/qv4alloca_p.h
common/qv4calldata_p.h
common/qv4compileddata.cpp common/qv4compileddata_p.h
common/qv4staticvalue_p.h
common/qv4stringtoarrayindex_p.h
- common/qqmltranslation.cpp common/qqmltranslation_p.h
- common/qqmlsignalnames_p.h common/qqmlsignalnames.cpp
compat/removed_api.cpp
compiler/qqmlirbuilder.cpp compiler/qqmlirbuilder_p.h
compiler/qv4bytecodegenerator.cpp compiler/qv4bytecodegenerator_p.h
@@ -255,8 +203,10 @@ qt_internal_add_qml_module(Qml
jsruntime/qv4property_p.h
jsruntime/qv4propertykey.cpp jsruntime/qv4propertykey_p.h
jsruntime/qv4proxy.cpp jsruntime/qv4proxy_p.h
+ jsruntime/qv4qmetaobjectwrapper.cpp jsruntime/qv4qmetaobjectwrapper_p.h
jsruntime/qv4qmlcontext.cpp jsruntime/qv4qmlcontext_p.h
jsruntime/qv4qobjectwrapper.cpp jsruntime/qv4qobjectwrapper_p.h
+ jsruntime/qv4referenceobject.cpp jsruntime/qv4referenceobject_p.h
jsruntime/qv4reflect.cpp jsruntime/qv4reflect_p.h
jsruntime/qv4regexp.cpp jsruntime/qv4regexp_p.h
jsruntime/qv4regexpobject.cpp jsruntime/qv4regexpobject_p.h
@@ -266,6 +216,7 @@ qt_internal_add_qml_module(Qml
jsruntime/qv4runtimecodegen.cpp jsruntime/qv4runtimecodegen_p.h
jsruntime/qv4scopedvalue_p.h
jsruntime/qv4script.cpp jsruntime/qv4script_p.h
+ jsruntime/qv4sequenceobject.cpp jsruntime/qv4sequenceobject_p.h
jsruntime/qv4setiterator.cpp jsruntime/qv4setiterator_p.h
jsruntime/qv4setobject.cpp jsruntime/qv4setobject_p.h
jsruntime/qv4sparsearray.cpp jsruntime/qv4sparsearray_p.h
@@ -280,9 +231,7 @@ qt_internal_add_qml_module(Qml
jsruntime/qv4value.cpp jsruntime/qv4value_p.h
jsruntime/qv4variantobject.cpp jsruntime/qv4variantobject_p.h
jsruntime/qv4vme_moth.cpp jsruntime/qv4vme_moth_p.h
- jsruntime/qv4sequenceobject.cpp jsruntime/qv4sequenceobject_p.h
jsruntime/qv4vtable_p.h
- jsruntime/qv4referenceobject.cpp jsruntime/qv4referenceobject_p.h
memory/qv4heap_p.h
memory/qv4mm.cpp memory/qv4mm_p.h
memory/qv4mmdefs_p.h
@@ -295,10 +244,10 @@ qt_internal_add_qml_module(Qml
parser/qqmljsglobal_p.h
parser/qqmljskeywords_p.h
parser/qqmljslexer.cpp parser/qqmljslexer_p.h
+ qml/ftw/qbipointer_p.h
qml/ftw/qdoubleendedlist_p.h
qml/ftw/qfieldlist_p.h
qml/ftw/qfinitestack_p.h
- qml/ftw/qbipointer_p.h
qml/ftw/qhashedstring.cpp qml/ftw/qhashedstring_p.h
qml/ftw/qintrusivelist.cpp qml/ftw/qintrusivelist_p.h
qml/ftw/qlazilyallocated_p.h
@@ -311,10 +260,10 @@ qt_internal_add_qml_module(Qml
qml/ftw/qrecursionwatcher_p.h
qml/ftw/qrecyclepool_p.h
qml/ftw/qstringhash_p.h
- qml/qqmlregistration.h
qml/qqml.cpp qml/qqml.h
qml/qqmlabstractbinding.cpp qml/qqmlabstractbinding_p.h
qml/qqmlabstracturlinterceptor.cpp qml/qqmlabstracturlinterceptor.h
+ qml/qqmlanybinding_p.h
qml/qqmlapplicationengine.cpp qml/qqmlapplicationengine.h qml/qqmlapplicationengine_p.h
qml/qqmlbinding.cpp qml/qqmlbinding_p.h
qml/qqmlboundsignal.cpp qml/qqmlboundsignal_p.h
@@ -338,6 +287,7 @@ qt_internal_add_qml_module(Qml
qml/qqmlextensionplugin.cpp qml/qqmlextensionplugin.h qml/qqmlextensionplugin_p.h
qml/qqmlfile.cpp qml/qqmlfile.h
qml/qqmlfileselector.cpp qml/qqmlfileselector.h qml/qqmlfileselector_p.h
+ qml/qqmlfinalizer.cpp qml/qqmlfinalizer_p.h
qml/qqmlglobal.cpp qml/qqmlglobal_p.h
qml/qqmlguard_p.h
qml/qqmlguardedcontextdata_p.h
@@ -348,8 +298,7 @@ qt_internal_add_qml_module(Qml
qml/qqmljavascriptexpression.cpp qml/qqmljavascriptexpression_p.h
qml/qqmllist.cpp qml/qqmllist.h qml/qqmllist_p.h
qml/qqmllistwrapper.cpp qml/qqmllistwrapper_p.h
- qml/qqmlloggingcategory.cpp qml/qqmlloggingcategory_p.h
- qml/qqmlmetamoduleregistration.cpp
+ qml/qqmlloggingcategorybase_p.h
qml/qqmlmetaobject.cpp qml/qqmlmetaobject_p.h
qml/qqmlmetatype.cpp qml/qqmlmetatype_p.h
qml/qqmlmetatypedata.cpp qml/qqmlmetatypedata_p.h
@@ -365,7 +314,6 @@ qt_internal_add_qml_module(Qml
qml/qqmlprivate.h
qml/qqmlproperty.cpp qml/qqmlproperty.h qml/qqmlproperty_p.h
qml/qqmlpropertybinding.cpp qml/qqmlpropertybinding_p.h
- qml/qqmlanybinding_p.h
qml/qqmlpropertycache.cpp qml/qqmlpropertycache_p.h
qml/qqmlpropertycachecreator.cpp qml/qqmlpropertycachecreator_p.h
qml/qqmlpropertycachemethodarguments_p.h
@@ -376,9 +324,9 @@ qt_internal_add_qml_module(Qml
qml/qqmlpropertytopropertybinding.cpp qml/qqmlpropertytopropertybinding_p.h
qml/qqmlpropertyvalidator.cpp qml/qqmlpropertyvalidator_p.h
qml/qqmlpropertyvalueinterceptor.cpp qml/qqmlpropertyvalueinterceptor_p.h
- qml/qqmlfinalizer.cpp qml/qqmlfinalizer_p.h
qml/qqmlpropertyvaluesource.cpp qml/qqmlpropertyvaluesource.h
qml/qqmlproxymetaobject.cpp qml/qqmlproxymetaobject_p.h
+ qml/qqmlregistration.h
qml/qqmlscriptblob.cpp qml/qqmlscriptblob_p.h
qml/qqmlscriptdata.cpp qml/qqmlscriptdata_p.h
qml/qqmlscriptstring.cpp qml/qqmlscriptstring.h qml/qqmlscriptstring_p.h
@@ -402,10 +350,9 @@ qt_internal_add_qml_module(Qml
qml/qqmlvmemetaobject.cpp qml/qqmlvmemetaobject_p.h
qmldirparser/qqmldirparser.cpp qmldirparser/qqmldirparser_p.h
qmldirparser/qqmlimportresolver.cpp qmldirparser/qqmlimportresolver_p.h
+ qqmlbuiltins_p.h
qtqmlcompilerglobal.h qtqmlcompilerglobal_p.h
qtqmlglobal.h qtqmlglobal_p.h
- types/qqmlbind.cpp types/qqmlbind_p.h
- types/qqmlconnections.cpp types/qqmlconnections_p.h
util/qqmlpropertymap.cpp util/qqmlpropertymap.h
qmltc/qqmltcobjectcreationhelper_p.h
@@ -439,7 +386,6 @@ qt_internal_add_qml_module(Qml
jsruntime/qv4module.cpp # QV4::Compiler::Module vs. QV4::Module
jsruntime/qv4vme_moth.cpp # 'MOTH_BEGIN_INSTR' macro redefined (from qv4instr_moth.cpp)
qml/qqmltypecompiler.cpp # 'COMPILE_EXCEPTION' macro redefined (from qqmlirbuilder.cpp)
- qml/qqmlmetamoduleregistration.cpp # declares 'registration' clashing with qml_* files
DEFINES
BUILDING_QT__
ENABLE_ASSEMBLER_WX_EXCLUSIVE=1
@@ -485,12 +431,11 @@ qt_internal_add_qml_module(Qml
PUBLIC_LIBRARIES
Qt::Core
Qt::QmlIntegration
- Qt::QmlBuiltins
PRIVATE_MODULE_INTERFACE
Qt::CorePrivate
- Qt::QmlBuiltinsPrivate
EXTRA_CMAKE_FILES
"${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}qmldirTemplate.cmake.in"
+ "${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}qt.conf.in"
"${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}QmlPluginTemplate.cpp.in"
"${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}QmlFindQmlscInternal.cmake"
"${CMAKE_CURRENT_LIST_DIR}/${INSTALL_CMAKE_NAMESPACE}QmlDeploySupport.cmake"
@@ -500,66 +445,47 @@ qt_internal_add_qml_module(Qml
EXTRA_CMAKE_INCLUDES
"${INSTALL_CMAKE_NAMESPACE}QmlFindQmlscInternal.cmake"
${extra_cmake_includes}
- GENERATE_CPP_EXPORTS
POLICIES
QTP0001
QTP0004
+ QTP0005
)
_qt_internal_add_qml_deploy_info_finalizer(Qml)
-target_include_directories(QmlBuiltins PRIVATE
- $<TARGET_PROPERTY:${QT_CMAKE_EXPORT_NAMESPACE}::QmlPrivate,INTERFACE_INCLUDE_DIRECTORIES>
-)
-
-set(builtins_typeregistration_args
- MANUAL_MOC_JSON_FILES ${extra_builtins_json_list}
- REGISTRATIONS_TARGET Qml
-)
-
-get_target_property(qt_namespace ${QT_CMAKE_EXPORT_NAMESPACE}::Core _qt_namespace)
-if(qt_namespace)
- list(APPEND builtins_typeregistration_args NAMESPACE ${qt_namespace})
-endif()
-
-_qt_internal_qml_type_registration(QmlBuiltins ${builtins_typeregistration_args})
-add_dependencies(QmlBuiltins ExtraBuiltinsJson)
+qt_path_join(qml_root_dir "${QT_BUILD_DIR}" "${INSTALL_QMLDIR}")
+get_target_property(qml_build_dir Qml QT_QML_MODULE_OUTPUT_DIRECTORY)
_qt_internal_get_tool_wrapper_script_path(tool_wrapper)
add_custom_command(
OUTPUT
- "${qml_build_dir}/jsroot.qmltypes"
+ "${qml_root_dir}/jsroot.qmltypes"
DEPENDS
${QT_CMAKE_EXPORT_NAMESPACE}::qmltyperegistrar
COMMAND
${tool_wrapper}
$<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::qmltyperegistrar>
- --jsroot --generate-qmltypes "${qml_build_dir}/jsroot.qmltypes"
+ --jsroot --generate-qmltypes "${qml_root_dir}/jsroot.qmltypes"
COMMENT "Generating jsroot.qmltypes"
VERBATIM
)
-get_target_property(builtins_metatypes_file "QmlBuiltins" INTERFACE_QT_META_TYPES_BUILD_FILE)
-
-_qt_internal_get_metatypes_install_dir(
- ""
- "${INSTALL_ARCHDATADIR}"
- metatypes_install_dir
-)
-
-_qt_internal_assign_install_metatypes_files_and_properties(
- QmlBuiltins
- INSTALL_DIR "${metatypes_install_dir}"
-)
-
-qt_install(
- FILES "${builtins_metatypes_file}"
- DESTINATION "${metatypes_install_dir}"
+add_custom_command(
+ OUTPUT
+ "${qml_root_dir}/builtins.qmltypes"
+ DEPENDS
+ "${qml_build_dir}/plugins.qmltypes"
+ COMMAND
+ ${CMAKE_COMMAND} -E copy_if_different
+ "${qml_build_dir}/plugins.qmltypes"
+ "${qml_root_dir}/builtins.qmltypes"
+ COMMENT "Copying builtins.qmltypes"
+ VERBATIM
)
set(builtins_output_files "")
-list(APPEND builtins_output_files "${qml_build_dir}/builtins.qmltypes")
-list(APPEND builtins_output_files "${qml_build_dir}/jsroot.qmltypes")
+list(APPEND builtins_output_files "${qml_root_dir}/builtins.qmltypes")
+list(APPEND builtins_output_files "${qml_root_dir}/jsroot.qmltypes")
add_custom_target(BuiltinsOutput DEPENDS ${builtins_output_files})
@@ -568,9 +494,6 @@ qt_install(
DESTINATION "${INSTALL_QMLDIR}"
)
-add_dependencies(Qml ExtraBuiltinsMocs)
-add_dependencies(Qml BuiltinsOutput)
-
qt_update_ignore_pch_source(Qml "compat/removed_api.cpp")
set_source_files_properties(compat/removed_api.cpp
@@ -582,30 +505,23 @@ qt_internal_add_qml_module(QmlMeta
URI "QtQml"
VERSION "${PROJECT_VERSION}"
DESIGNER_SUPPORTED
- CLASS_NAME QtQmlMetaPlugin
- PLUGIN_TARGET QmlMeta
-
- # Prevent type registration
- NO_GENERATE_QMLTYPES
-
+ __QT_INTERNAL_SYSTEM_MODULE
+ PLUGIN_TARGET qmlplugin
+ CLASS_NAME QtQmlPlugin
PAST_MAJOR_VERSIONS 2
IMPORTS
- QtQml.Base/auto
+ QML/1.0
${module_dynamic_qml_imports}
+ SOURCES
+ types/qqmlbind.cpp types/qqmlbind_p.h
+ types/qqmlconnections.cpp types/qqmlconnections_p.h
+ types/qqmlloggingcategory.cpp types/qqmlloggingcategory_p.h
+ LIBRARIES
+ Qml
+ QmlModels
)
-# Add the QtQml qmldir to libQtQml, too.
-# Since we also provide the (bare bones) type registration in libQtQml,
-# this makes the complete module reside in libQtQml. There is no need to
-# load the QmlMeta plugin, then.
-# Se still provide the plugin so that static linking works.
-get_target_property(qtqml_out_dir QmlMeta QT_QML_MODULE_OUTPUT_DIRECTORY)
-qt_internal_add_resource(Qml "qmlMetaQmldir"
- PREFIX
- "/qt-project.org/imports/QtQml"
- FILES
- ${qtqml_out_dir}/qmldir
-)
+add_dependencies(QmlMeta BuiltinsOutput)
# Linking to the static qml plugin should also automatically link to the worker script
# static plugin otherwise you get errors like
@@ -613,14 +529,15 @@ qt_internal_add_resource(Qml "qmlMetaQmldir"
# import QtQuick 2.0
# ^
if(QT_FEATURE_qml_worker_script)
+ target_link_libraries(QmlMeta PRIVATE QmlWorkerScript)
_qt_internal_add_qml_static_plugin_dependency(qmlplugin workerscriptplugin)
endif()
-# Same for the QmlMeta qml plugin, otherwise you get
+# Same for the QmlModels qml plugin, otherwise you get
# module "QtQuick" version 6.6 cannot be imported because:
-# module "QtQml" plugin "qmlmetaplugin" not found
+# module "QtQml.Models" plugin "modelsplugin" not found
# import QtQuick
# ^
-_qt_internal_add_qml_static_plugin_dependency(qmlplugin QmlMeta)
+_qt_internal_add_qml_static_plugin_dependency(qmlplugin modelsplugin)
# special case begin remove the block, handled manually
# QLALR Grammars:
@@ -713,6 +630,12 @@ qt_internal_extend_target(Qml CONDITION QT_FEATURE_qml_animation
animations/qparallelanimationgroupjob.cpp animations/qparallelanimationgroupjob_p.h
animations/qpauseanimationjob.cpp animations/qpauseanimationjob_p.h
animations/qsequentialanimationgroupjob.cpp animations/qsequentialanimationgroupjob_p.h
+ INCLUDE_DIRECTORIES
+ animations
+)
+
+qt_internal_extend_target(QmlMeta CONDITION QT_FEATURE_qml_animation
+ SOURCES
types/qqmltimer.cpp types/qqmltimer_p.h
INCLUDE_DIRECTORIES
animations
@@ -777,6 +700,11 @@ qt_internal_extend_target(Qml CONDITION QT_FEATURE_qml_locale
qml/qqmllocale.cpp qml/qqmllocale_p.h
)
+qt_internal_extend_target(QmlMeta CONDITION QT_FEATURE_qml_locale
+ SOURCES
+ types/qqmllocaleenums_p.h
+)
+
qt_internal_extend_target(Qml CONDITION ANDROID
DEFINES
LIBS_SUFFIX="_${ANDROID_ABI}.so" # special case
@@ -874,10 +802,8 @@ endif()
# "unknown IID" issue when moc processes plugin sources, because of missing header aliases.
# Qml_sync_headers target is created later by the finalizer in the directory scope so we add this
# dependency manually instead of relying on qt_internal_add_qml_module logic. Same is applicable
-# for the QmlMeta and the QmlBuiltins target.
+# for the QmlMeta target.
set_property(TARGET qmlplugin APPEND PROPERTY AUTOGEN_TARGET_DEPENDS
Qml_sync_headers)
set_property(TARGET QmlMeta APPEND PROPERTY AUTOGEN_TARGET_DEPENDS
Qml_sync_headers)
-set_property(TARGET QmlBuiltins APPEND PROPERTY AUTOGEN_TARGET_DEPENDS
- Qml_sync_headers)