diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index dc19983f66c..de33bd6a113 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -50,6 +50,28 @@ add_qtc_plugin(QmlDesigner include(qmldesignercore.cmake) extend_with_qmldesigner_core(QmlDesigner) +get_filename_component( + QMLDOM_STANDALONE_CMAKELISTS + "${CMAKE_CURRENT_SOURCE_DIR}/../../../../qmldom_standalone/src/qmldom/standalone/" + ABSOLUTE +) + +if(EXISTS ${QMLDOM_STANDALONE_CMAKELISTS} AND Qt6_FOUND AND NOT TARGET qmldomlib) + add_subdirectory( + ../../../../qmldom_standalone/src/qmldom/standalone + ${CMAKE_BINARY_DIR}/qmldom_standalone) + + set_target_properties(qmldomlib PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "$" + LIBRARY_OUTPUT_DIRECTORY "$") +endif() + +extend_qtc_target(QmlDesigner + CONDITION TARGET qmldomlib + DEFINES QDS_HAS_QMLDOM + DEPENDS qmldomlib +) + if (QTC_STATIC_BUILD AND TARGET QmlDesigner) get_target_property(_designerType Qt5::Designer TYPE) if (${_designerType} STREQUAL "STATIC_LIBRARY") diff --git a/src/plugins/qmldesigner/designercore/projectstorage/qmldocumentparser.cpp b/src/plugins/qmldesigner/designercore/projectstorage/qmldocumentparser.cpp index a46315310a2..f950235bbfd 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/qmldocumentparser.cpp +++ b/src/plugins/qmldesigner/designercore/projectstorage/qmldocumentparser.cpp @@ -30,13 +30,17 @@ #include +#ifdef QDS_HAS_QMLDOM #include +#endif #include #include namespace QmlDesigner { +#ifdef QDS_HAS_QMLDOM + namespace QmlDom = QQmlJS::Dom; namespace { @@ -195,4 +199,15 @@ Storage::Type QmlDocumentParser::parse(const QString &sourceContent, return type; } +#else + +Storage::Type QmlDocumentParser::parse([[maybe_unused]] const QString &sourceContent, + [[maybe_unused]] Storage::Imports &imports, + [[maybe_unused]] SourceId sourceId, + [[maybe_unused]] Utils::SmallStringView directoryPath) +{ + return Storage::Type{}; +} + +#endif } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp b/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp index e1b66378e62..7655399f13d 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp +++ b/src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.cpp @@ -30,8 +30,10 @@ #include +#ifdef QDS_HAS_QMLDOM #include #include +#endif #include @@ -40,6 +42,7 @@ namespace QmlDesigner { +#ifdef QDS_HAS_QMLDOM namespace QmlDom = QQmlJS::Dom; namespace { @@ -304,4 +307,14 @@ void QmlTypesParser::parse(const QString &sourceContent, addTypes(types, projectData, components, m_storage); } +#else + +void QmlTypesParser::parse([[maybe_unused]] const QString &sourceContent, + [[maybe_unused]] Storage::Imports &imports, + [[maybe_unused]] Storage::Types &types, + [[maybe_unused]] const Storage::ProjectData &projectData) +{} + +#endif + } // namespace QmlDesigner