summaryrefslogtreecommitdiffstats
path: root/examples/webengine
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2021-02-10 17:03:01 +0100
committerMichal Klocek <michal.klocek@qt.io>2021-05-22 14:10:08 +0200
commitdd523573f2981cc58d4da0ec6e2b061a6172a8eb (patch)
tree77f190fbe00e111362711ce14be00117a3cb7a91 /examples/webengine
parente1e6e4c90071a7e4e7a12b9f529ca1da6d71e0c1 (diff)
Add examples to the cmake build
Add only quick and widget examples to the build for now. Update examples qmake files so the ci can also build qmake examples after the cmake bulid. Note this patch breakes qmake builds. Task-number: QTBUG-91760 Change-Id: Ia867a49bc3deab1967bdedcf525ad4afe3967c2a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'examples/webengine')
-rw-r--r--examples/webengine/CMakeLists.txt8
-rw-r--r--examples/webengine/customdialogs/CMakeLists.txt76
-rw-r--r--examples/webengine/lifecycle/CMakeLists.txt58
-rw-r--r--examples/webengine/minimal/CMakeLists.txt50
-rw-r--r--examples/webengine/quicknanobrowser/CMakeLists.txt91
-rw-r--r--examples/webengine/recipebrowser/CMakeLists.txt143
-rw-r--r--examples/webengine/webengineaction/CMakeLists.txt50
7 files changed, 476 insertions, 0 deletions
diff --git a/examples/webengine/CMakeLists.txt b/examples/webengine/CMakeLists.txt
new file mode 100644
index 000000000..6e306111e
--- /dev/null
+++ b/examples/webengine/CMakeLists.txt
@@ -0,0 +1,8 @@
+add_subdirectory(customdialogs)
+add_subdirectory(minimal)
+add_subdirectory(quicknanobrowser)
+add_subdirectory(webengineaction)
+if(TARGET Qt::QuickControls2)
+ add_subdirectory(lifecycle)
+ add_subdirectory(recipebrowser)
+endif()
diff --git a/examples/webengine/customdialogs/CMakeLists.txt b/examples/webengine/customdialogs/CMakeLists.txt
new file mode 100644
index 000000000..d6d69548f
--- /dev/null
+++ b/examples/webengine/customdialogs/CMakeLists.txt
@@ -0,0 +1,76 @@
+cmake_minimum_required(VERSION 3.18)
+project(customdialogs LANGUAGES CXX)
+
+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")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/webengine/customdialogs")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WebEngineQuick)
+
+qt_add_executable(customdialogs
+ main.cpp
+ server.cpp server.h
+)
+set_target_properties(customdialogs PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(customdialogs PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::WebEngineQuick
+)
+
+
+# Resources:
+set(customdialogs_resource_files
+ "MessageRectangle.qml"
+ "SwitchButton.qml"
+ "WebView.qml"
+ "forms/Authentication.qml"
+ "forms/AuthenticationForm.ui.qml"
+ "forms/Button.qml"
+ "forms/ColorCell.qml"
+ "forms/ColorPicker.qml"
+ "forms/ColorPickerForm.ui.qml"
+ "forms/FilePicker.qml"
+ "forms/FilePickerForm.ui.qml"
+ "forms/FileRow.qml"
+ "forms/JavaScript.qml"
+ "forms/JavaScriptForm.ui.qml"
+ "forms/Menu.qml"
+ "forms/MenuForm.ui.qml"
+ "icon.svg"
+ "index.html"
+ "main.qml"
+ "style.css"
+)
+
+qt6_add_resources(customdialogs "customdialogs"
+ PREFIX
+ "/"
+ FILES
+ ${customdialogs_resource_files}
+)
+
+if(TARGET Qt::Widgets)
+ target_link_libraries(customdialogs PUBLIC
+ Qt::Widgets
+ )
+endif()
+
+install(TARGETS customdialogs
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/webengine/lifecycle/CMakeLists.txt b/examples/webengine/lifecycle/CMakeLists.txt
new file mode 100644
index 000000000..0459d7767
--- /dev/null
+++ b/examples/webengine/lifecycle/CMakeLists.txt
@@ -0,0 +1,58 @@
+cmake_minimum_required(VERSION 3.18)
+project(lifecycle LANGUAGES CXX)
+
+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")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/webengine/lifecycle")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS QuickControls2)
+find_package(Qt6 COMPONENTS WebEngineQuick)
+
+qt_add_executable(lifecycle
+ main.cpp
+)
+set_target_properties(lifecycle PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(lifecycle PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::QuickControls2
+ Qt::WebEngineQuick
+)
+
+
+# Resources:
+set(resources_resource_files
+ "WebBrowser.qml"
+ "WebTab.qml"
+ "WebTabBar.qml"
+ "WebTabButton.qml"
+ "WebTabStack.qml"
+ "WebToolButton.qml"
+ "qtquickcontrols2.conf"
+)
+
+qt6_add_resources(lifecycle "resources"
+ PREFIX
+ "/"
+ FILES
+ ${resources_resource_files}
+)
+
+install(TARGETS lifecycle
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/webengine/minimal/CMakeLists.txt b/examples/webengine/minimal/CMakeLists.txt
new file mode 100644
index 000000000..db253d8fc
--- /dev/null
+++ b/examples/webengine/minimal/CMakeLists.txt
@@ -0,0 +1,50 @@
+cmake_minimum_required(VERSION 3.18)
+project(minimal LANGUAGES CXX)
+
+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")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/webengine/minimal-qml")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WebEngineQuick)
+
+qt_add_executable(minimal-qml
+ main.cpp
+)
+set_target_properties(minimal-qml PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(minimal-qml PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::WebEngineQuick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(minimal-qml "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS minimal-qml
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/webengine/quicknanobrowser/CMakeLists.txt b/examples/webengine/quicknanobrowser/CMakeLists.txt
new file mode 100644
index 000000000..6c155789c
--- /dev/null
+++ b/examples/webengine/quicknanobrowser/CMakeLists.txt
@@ -0,0 +1,91 @@
+cmake_minimum_required(VERSION 3.18)
+project(quicknanobrowser LANGUAGES CXX)
+
+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")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/webengine/quicknanobrowser")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS Quick)
+find_package(Qt6 COMPONENTS WebEngineQuick)
+
+qt_add_executable(quicknanobrowser
+ main.cpp
+ utils.h
+)
+set_target_properties(quicknanobrowser PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(quicknanobrowser PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::WebEngineQuick
+)
+
+
+# Resources:
+set(resources_resource_files
+ "ApplicationRoot.qml"
+ "BrowserDialog.qml"
+ "BrowserWindow.qml"
+ "DownloadView.qml"
+ "FindBar.qml"
+ "FullScreenNotification.qml"
+)
+
+qt6_add_resources(quicknanobrowser "resources"
+ PREFIX
+ "/"
+ FILES
+ ${resources_resource_files}
+)
+set_source_files_properties("icons/3rdparty/go-next.png"
+ PROPERTIES QT_RESOURCE_ALIAS "go-next.png"
+)
+set_source_files_properties("icons/3rdparty/go-previous.png"
+ PROPERTIES QT_RESOURCE_ALIAS "go-previous.png"
+)
+set_source_files_properties("icons/3rdparty/process-stop.png"
+ PROPERTIES QT_RESOURCE_ALIAS "process-stop.png"
+)
+set_source_files_properties("icons/3rdparty/view-refresh.png"
+ PROPERTIES QT_RESOURCE_ALIAS "view-refresh.png"
+)
+set(resources1_resource_files
+ "icons/3rdparty/go-next.png"
+ "icons/3rdparty/go-previous.png"
+ "icons/3rdparty/process-stop.png"
+ "icons/3rdparty/view-refresh.png"
+)
+
+qt6_add_resources(quicknanobrowser "resources1"
+ PREFIX
+ "/icons"
+ FILES
+ ${resources1_resource_files}
+)
+
+if(TARGET Qt::Widgets)
+ target_link_libraries(quicknanobrowser PUBLIC
+ Qt::Widgets
+ )
+endif()
+
+install(TARGETS quicknanobrowser
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/webengine/recipebrowser/CMakeLists.txt b/examples/webengine/recipebrowser/CMakeLists.txt
new file mode 100644
index 000000000..7019227d9
--- /dev/null
+++ b/examples/webengine/recipebrowser/CMakeLists.txt
@@ -0,0 +1,143 @@
+cmake_minimum_required(VERSION 3.18)
+project(recipebrowser LANGUAGES CXX)
+
+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")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/webengine/recipebrowser")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS Quick)
+find_package(Qt6 COMPONENTS Qml)
+find_package(Qt6 COMPONENTS QuickControls2)
+find_package(Qt6 COMPONENTS WebEngineQuick)
+
+qt_add_executable(recipebrowser
+ main.cpp
+)
+set_target_properties(recipebrowser PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(recipebrowser PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Qml
+ Qt::Quick
+ Qt::QuickControls2
+ Qt::WebEngineQucik
+)
+
+
+# Resources:
+set_source_files_properties("resources/pages/assets/3rdparty/markdown.css"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/assets/3rdparty/marked.js"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/assets/custom.css"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/assets/custom.js"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/burger.html"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/cupcakes.html"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/images/burger.jpg"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/images/cupcakes.jpg"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/images/pasta.jpg"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/images/pizza.jpg"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/images/skewers.jpg"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/images/soup.jpg"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/images/steak.jpg"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/pasta.html"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/pizza.html"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/skewers.html"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/soup.html"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/pages/steak.html"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/qml/RecipeList.qml"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set_source_files_properties("resources/qml/main.qml"
+ PROPERTIES QT_SKIP_QUICKCOMPILER 1
+)
+set(resources_resource_files
+ "pages/assets/3rdparty/markdown.css"
+ "pages/assets/3rdparty/marked.js"
+ "pages/assets/custom.css"
+ "pages/assets/custom.js"
+ "pages/burger.html"
+ "pages/cupcakes.html"
+ "pages/images/burger.jpg"
+ "pages/images/cupcakes.jpg"
+ "pages/images/pasta.jpg"
+ "pages/images/pizza.jpg"
+ "pages/images/skewers.jpg"
+ "pages/images/soup.jpg"
+ "pages/images/steak.jpg"
+ "pages/pasta.html"
+ "pages/pizza.html"
+ "pages/skewers.html"
+ "pages/soup.html"
+ "pages/steak.html"
+ "qml/RecipeList.qml"
+ "qml/main.qml"
+)
+
+qt6_add_resources(recipebrowser "resources"
+ PREFIX
+ "/"
+ BASE
+ "resources"
+ FILES
+ ${resources_resource_files}
+)
+
+if(CMAKE_CROSSCOMPILING AND (LINUX OR QNX OR posix))
+ target_compile_definitions(recipebrowser PUBLIC
+ QTWEBENGINE_RECIPE_BROWSER_EMBEDDED
+ )
+endif()
+
+install(TARGETS recipebrowser
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)
diff --git a/examples/webengine/webengineaction/CMakeLists.txt b/examples/webengine/webengineaction/CMakeLists.txt
new file mode 100644
index 000000000..fce2f0b07
--- /dev/null
+++ b/examples/webengine/webengineaction/CMakeLists.txt
@@ -0,0 +1,50 @@
+cmake_minimum_required(VERSION 3.18)
+project(webengineaction LANGUAGES CXX)
+
+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")
+endif()
+
+set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/webengine/webengineaction")
+
+find_package(Qt6 COMPONENTS Core)
+find_package(Qt6 COMPONENTS Gui)
+find_package(Qt6 COMPONENTS WebEngineQuick)
+
+qt_add_executable(webengineaction
+ main.cpp
+)
+set_target_properties(webengineaction PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+target_link_libraries(webengineaction PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::WebEngineQuick
+)
+
+
+# Resources:
+set(qml_resource_files
+ "main.qml"
+)
+
+qt6_add_resources(webengineaction "qml"
+ PREFIX
+ "/"
+ FILES
+ ${qml_resource_files}
+)
+
+install(TARGETS webengineaction
+ RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
+ LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+)