From a155b3bc3ee161fbb7ff1760781577700b0aafce Mon Sep 17 00:00:00 2001 From: Oliver Eftevaag Date: Thu, 11 Nov 2021 16:36:38 +0100 Subject: Model examples: use new cmake api The models directory contains 3 subdirectories with an example project in each. This patch updates the CMakeLists.txt files to use qt_add_qml_module() instead of the old qt_add_resources(). In order to achieve intercompatibility with both cmake and qmake, I had to do some slight modifications to both the .qrc files and the url path used to set the source to the QQuickView. Task-number: QTBUG-98130 Pick-to: 6.2 Change-Id: I13d1c01a0eda181823f394bc2a4259ce98abd4f8 Reviewed-by: Ulf Hermann --- .../quick/models/abstractitemmodel/CMakeLists.txt | 32 +++++++--------------- .../models/abstractitemmodel/abstractitemmodel.qrc | 2 +- examples/quick/models/abstractitemmodel/main.cpp | 4 +-- examples/quick/models/abstractitemmodel/model.cpp | 2 +- examples/quick/models/abstractitemmodel/view.qml | 4 +-- .../quick/models/objectlistmodel/CMakeLists.txt | 32 +++++++--------------- .../quick/models/objectlistmodel/dataobject.cpp | 2 +- examples/quick/models/objectlistmodel/main.cpp | 4 +-- .../models/objectlistmodel/objectlistmodel.qrc | 2 +- examples/quick/models/objectlistmodel/view.qml | 4 +-- .../quick/models/stringlistmodel/CMakeLists.txt | 30 ++++++-------------- examples/quick/models/stringlistmodel/main.cpp | 2 +- .../models/stringlistmodel/stringlistmodel.qrc | 2 +- 13 files changed, 43 insertions(+), 79 deletions(-) (limited to 'examples') diff --git a/examples/quick/models/abstractitemmodel/CMakeLists.txt b/examples/quick/models/abstractitemmodel/CMakeLists.txt index 240f171c41..486e6d376a 100644 --- a/examples/quick/models/abstractitemmodel/CMakeLists.txt +++ b/examples/quick/models/abstractitemmodel/CMakeLists.txt @@ -7,7 +7,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) if(NOT DEFINED INSTALL_EXAMPLESDIR) set(INSTALL_EXAMPLESDIR "examples") @@ -15,20 +14,13 @@ endif() set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/quick/models/abstractitemmodel") -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Qml) -find_package(Qt6 COMPONENTS Quick) +find_package(Qt6 COMPONENTS Core Gui Qml Quick) -qt_add_executable(abstractitemmodel +qt_add_executable(abstractitemmodelexample WIN32 MACOSX_BUNDLE main.cpp - model.cpp model.h + model.cpp ) -set_target_properties(abstractitemmodel PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) -target_link_libraries(abstractitemmodel PUBLIC +target_link_libraries(abstractitemmodelexample PUBLIC Qt::Core Qt::Gui Qt::Qml @@ -37,18 +29,14 @@ target_link_libraries(abstractitemmodel PUBLIC # Resources: -set(abstractitemmodel_resource_files - "view.qml" -) - -qt6_add_resources(abstractitemmodel "abstractitemmodel" - PREFIX - "/" - FILES - ${abstractitemmodel_resource_files} +qt_add_qml_module(abstractitemmodelexample + URI abstractitemmodel + VERSION 1.0 + QML_FILES + "view.qml" ) -install(TARGETS abstractitemmodel +install(TARGETS abstractitemmodelexample RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/quick/models/abstractitemmodel/abstractitemmodel.qrc b/examples/quick/models/abstractitemmodel/abstractitemmodel.qrc index 4ae861cb3d..ad8c2df8ae 100644 --- a/examples/quick/models/abstractitemmodel/abstractitemmodel.qrc +++ b/examples/quick/models/abstractitemmodel/abstractitemmodel.qrc @@ -1,5 +1,5 @@ - + view.qml diff --git a/examples/quick/models/abstractitemmodel/main.cpp b/examples/quick/models/abstractitemmodel/main.cpp index dd5b368c6b..9e820391f6 100644 --- a/examples/quick/models/abstractitemmodel/main.cpp +++ b/examples/quick/models/abstractitemmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. @@ -70,7 +70,7 @@ int main(int argc, char ** argv) view.setResizeMode(QQuickView::SizeRootObjectToView); view.setInitialProperties({{"model", QVariant::fromValue(&model)}}); //![0] - view.setSource(QUrl("qrc:view.qml")); + view.setSource(QUrl("qrc:/abstractitemmodel/view.qml")); view.show(); return app.exec(); diff --git a/examples/quick/models/abstractitemmodel/model.cpp b/examples/quick/models/abstractitemmodel/model.cpp index 9d0032e34c..c58e05577a 100644 --- a/examples/quick/models/abstractitemmodel/model.cpp +++ b/examples/quick/models/abstractitemmodel/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. diff --git a/examples/quick/models/abstractitemmodel/view.qml b/examples/quick/models/abstractitemmodel/view.qml index 2b9f87df92..f80c4dca72 100644 --- a/examples/quick/models/abstractitemmodel/view.qml +++ b/examples/quick/models/abstractitemmodel/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. @@ -47,7 +47,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import QtQuick 2.0 +import QtQuick //![0] ListView { diff --git a/examples/quick/models/objectlistmodel/CMakeLists.txt b/examples/quick/models/objectlistmodel/CMakeLists.txt index 60fdeea219..8dbee3ae0b 100644 --- a/examples/quick/models/objectlistmodel/CMakeLists.txt +++ b/examples/quick/models/objectlistmodel/CMakeLists.txt @@ -7,7 +7,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) if(NOT DEFINED INSTALL_EXAMPLESDIR) set(INSTALL_EXAMPLESDIR "examples") @@ -15,20 +14,13 @@ endif() set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/quick/models/objectlistmodel") -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Qml) -find_package(Qt6 COMPONENTS Quick) +find_package(Qt6 COMPONENTS Core Gui Qml Quick) -qt_add_executable(objectlistmodel - dataobject.cpp dataobject.h +qt_add_executable(objectlistmodelexample WIN32 MACOSX_BUNDLE + dataobject.cpp main.cpp ) -set_target_properties(objectlistmodel PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) -target_link_libraries(objectlistmodel PUBLIC +target_link_libraries(objectlistmodelexample PUBLIC Qt::Core Qt::Gui Qt::Qml @@ -37,18 +29,14 @@ target_link_libraries(objectlistmodel PUBLIC # Resources: -set(objectlistmodel_resource_files - "view.qml" -) - -qt6_add_resources(objectlistmodel "objectlistmodel" - PREFIX - "/" - FILES - ${objectlistmodel_resource_files} +qt_add_qml_module(objectlistmodelexample + URI objectlistmodel + VERSION 1.0 + QML_FILES + "view.qml" ) -install(TARGETS objectlistmodel +install(TARGETS objectlistmodelexample RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/quick/models/objectlistmodel/dataobject.cpp b/examples/quick/models/objectlistmodel/dataobject.cpp index 6963d75c42..354b9d74b4 100644 --- a/examples/quick/models/objectlistmodel/dataobject.cpp +++ b/examples/quick/models/objectlistmodel/dataobject.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. diff --git a/examples/quick/models/objectlistmodel/main.cpp b/examples/quick/models/objectlistmodel/main.cpp index 8fbe7c183c..cb8dac0638 100644 --- a/examples/quick/models/objectlistmodel/main.cpp +++ b/examples/quick/models/objectlistmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the demonstration applications of the Qt Toolkit. @@ -80,7 +80,7 @@ int main(int argc, char ** argv) view.setInitialProperties({{ "model", QVariant::fromValue(dataList) }}); //![0] - view.setSource(QUrl("qrc:view.qml")); + view.setSource(QUrl("qrc:/objectlistmodel/view.qml")); view.show(); return app.exec(); diff --git a/examples/quick/models/objectlistmodel/objectlistmodel.qrc b/examples/quick/models/objectlistmodel/objectlistmodel.qrc index 17e9301471..a6e8cffb08 100644 --- a/examples/quick/models/objectlistmodel/objectlistmodel.qrc +++ b/examples/quick/models/objectlistmodel/objectlistmodel.qrc @@ -1,5 +1,5 @@ - + view.qml diff --git a/examples/quick/models/objectlistmodel/view.qml b/examples/quick/models/objectlistmodel/view.qml index ba0c905e1e..e8ec6197dc 100644 --- a/examples/quick/models/objectlistmodel/view.qml +++ b/examples/quick/models/objectlistmodel/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. @@ -48,7 +48,7 @@ ** ****************************************************************************/ -import QtQuick 2.0 +import QtQuick //![0] ListView { diff --git a/examples/quick/models/stringlistmodel/CMakeLists.txt b/examples/quick/models/stringlistmodel/CMakeLists.txt index ab7b099434..3bfb3ca4bf 100644 --- a/examples/quick/models/stringlistmodel/CMakeLists.txt +++ b/examples/quick/models/stringlistmodel/CMakeLists.txt @@ -7,7 +7,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) if(NOT DEFINED INSTALL_EXAMPLESDIR) set(INSTALL_EXAMPLESDIR "examples") @@ -15,19 +14,12 @@ endif() set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/quick/models/stringlistmodel") -find_package(Qt6 COMPONENTS Core) -find_package(Qt6 COMPONENTS Gui) -find_package(Qt6 COMPONENTS Qml) -find_package(Qt6 COMPONENTS Quick) +find_package(Qt6 COMPONENTS Core Gui Qml Quick) -qt_add_executable(stringlistmodel +qt_add_executable(stringlistmodelexample WIN32 MACOSX_BUNDLE main.cpp ) -set_target_properties(stringlistmodel PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) -target_link_libraries(stringlistmodel PUBLIC +target_link_libraries(stringlistmodelexample PUBLIC Qt::Core Qt::Gui Qt::Qml @@ -36,18 +28,14 @@ target_link_libraries(stringlistmodel PUBLIC # Resources: -set(stringlistmodel_resource_files - "view.qml" -) - -qt6_add_resources(stringlistmodel "stringlistmodel" - PREFIX - "/" - FILES - ${stringlistmodel_resource_files} +qt_add_qml_module(stringlistmodelexample + URI stringlistmodel + VERSION 1.0 + QML_FILES + "view.qml" ) -install(TARGETS stringlistmodel +install(TARGETS stringlistmodelexample RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" diff --git a/examples/quick/models/stringlistmodel/main.cpp b/examples/quick/models/stringlistmodel/main.cpp index d9de69b3aa..f3319d0f3e 100644 --- a/examples/quick/models/stringlistmodel/main.cpp +++ b/examples/quick/models/stringlistmodel/main.cpp @@ -79,7 +79,7 @@ int main(int argc, char ** argv) view.setInitialProperties({{ "model", QVariant::fromValue(dataList) }}); //![0] - view.setSource(QUrl("qrc:view.qml")); + view.setSource(QUrl("qrc:/stringlistmodel/view.qml")); view.show(); return app.exec(); diff --git a/examples/quick/models/stringlistmodel/stringlistmodel.qrc b/examples/quick/models/stringlistmodel/stringlistmodel.qrc index 17e9301471..31928f0738 100644 --- a/examples/quick/models/stringlistmodel/stringlistmodel.qrc +++ b/examples/quick/models/stringlistmodel/stringlistmodel.qrc @@ -1,5 +1,5 @@ - + view.qml -- cgit v1.2.3