diff options
author | Michal Klocek <michal.klocek@qt.io> | 2021-02-10 17:03:01 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2021-05-22 14:10:08 +0200 |
commit | dd523573f2981cc58d4da0ec6e2b061a6172a8eb (patch) | |
tree | 77f190fbe00e111362711ce14be00117a3cb7a91 /examples | |
parent | e1e6e4c90071a7e4e7a12b9f529ca1da6d71e0c1 (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')
24 files changed, 1249 insertions, 27 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 000000000..6d366112c --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.19) + +include(${CMAKE_CURRENT_LIST_DIR}/../.cmake.conf) + +project(QtWebEngineExamples + VERSION "${QT_REPO_MODULE_VERSION}" + DESCRIPTION "Qt WebEngine Examples" + HOMEPAGE_URL "https://qt.io/" + LANGUAGES CXX C +) + +find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) +find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS WebEngineCore WebEngineWidgets WebEngineQuick) +qt_build_repo_begin() +qt_examples_build_begin() + +if(QT_FEATURE_qtwebengine_build AND QT_FEATURE_qtwebengine_quick_build) + add_subdirectory(webengine) +endif() +if(QT_FEATURE_qtwebengine_build AND QT_FEATURE_qtwebengine_widgets_build) + add_subdirectory(webenginewidgets) +endif() +if(QT_FEATURE_qtpdf_build ) + add_subdirectory(pdf) +endif() +if(QT_FEATURE_qtpdf_build AND QT_FEATURE_pdf_widgets) + add_subdirectory(pdfwidgets) +endif() + +qt_examples_build_end() +qt_build_repo_end() diff --git a/examples/examples.pro b/examples/examples.pro index f36b98904..793e46be2 100644 --- a/examples/examples.pro +++ b/examples/examples.pro @@ -1,25 +1,8 @@ -include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri) -include($$QTWEBENGINE_OUT_ROOT/src/webenginequick/qtwebenginequick-config.pri) -include($$QTWEBENGINE_OUT_ROOT/src/webenginewidgets/qtwebenginewidgets-config.pri) -include($$QTWEBENGINE_OUT_ROOT/src/pdf/qtpdf-config.pri) -include($$QTWEBENGINE_OUT_ROOT/src/pdfwidgets/qtpdfwidgets-config.pri) - -QT_FOR_CONFIG += \ - buildtools-private \ - webenginequick-private \ - webenginewidgets-private \ - pdf-private \ - pdfwidgets-private - TEMPLATE=subdirs -qtConfig(build-qtwebengine-core):qtConfig(webengine-core-support) { - qtConfig(webengine-quick): SUBDIRS += webengine - qtConfig(webengine-widgets): SUBDIRS += webenginewidgets -} +qtHaveModule(webenginequick): SUBDIRS += webengine +qtHaveModule(webenginewidgets): SUBDIRS += webenginewidgets +qtHaveModule(pdf): SUBDIRS += pdf +qtHaveModule(pdfwidgets): SUBDIRS += pdfwidgets -qtConfig(build-qtpdf):qtConfig(webengine-qtpdf-support) { - SUBDIRS += pdf - qtConfig(pdf-widgets): SUBDIRS += pdfwidgets -} 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}" +) diff --git a/examples/webenginewidgets/CMakeLists.txt b/examples/webenginewidgets/CMakeLists.txt new file mode 100644 index 000000000..651a01344 --- /dev/null +++ b/examples/webenginewidgets/CMakeLists.txt @@ -0,0 +1,21 @@ +add_subdirectory(minimal) +add_subdirectory(contentmanipulation) +add_subdirectory(cookiebrowser) +add_subdirectory(notifications) +add_subdirectory(simplebrowser) +add_subdirectory(stylesheetbrowser) +add_subdirectory(videoplayer) +add_subdirectory(webui) +if(QT_FEATURE_webengine_geolocation) + add_subdirectory(maps) +endif() +if(QT_FEATURE_webengine_webchannel) + add_subdirectory(markdowneditor) +endif() +if(QT_FEATURE_webengine_printing_and_pdf) + add_subdirectory(printme) + add_subdirectory(html2pdf) +endif() +if(QT_FEATURE_webengine_spellchecker AND NOT CMAKE_CROSSCOMPILING AND NOT QT_FEATURE_webengine_native_spellchecker) + add_subdirectory(spellchecker) +endif() diff --git a/examples/webenginewidgets/contentmanipulation/CMakeLists.txt b/examples/webenginewidgets/contentmanipulation/CMakeLists.txt new file mode 100644 index 000000000..13986389d --- /dev/null +++ b/examples/webenginewidgets/contentmanipulation/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.18) +project(contentmanipulation 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}/webenginewidgets/contentmanipulation") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(contentmanipulation + main.cpp + mainwindow.cpp mainwindow.h +) +set_target_properties(contentmanipulation PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(contentmanipulation PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set(jquery_resource_files + "jquery.min.js" +) + +qt6_add_resources(contentmanipulation "jquery" + PREFIX + "/" + FILES + ${jquery_resource_files} +) + +install(TARGETS contentmanipulation + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/cookiebrowser/CMakeLists.txt b/examples/webenginewidgets/cookiebrowser/CMakeLists.txt new file mode 100644 index 000000000..51c936213 --- /dev/null +++ b/examples/webenginewidgets/cookiebrowser/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required(VERSION 3.18) +project(cookiebrowser 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}/webenginewidgets/cookiebrowser") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(cookiebrowser + cookiedialog.ui + cookiewidget.ui + main.cpp + mainwindow.cpp mainwindow.h mainwindow.ui +) +set_target_properties(cookiebrowser PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(cookiebrowser PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set_source_files_properties("3rdparty/view-refresh.png" + PROPERTIES QT_RESOURCE_ALIAS "view-refresh.png" +) +set(cookiebrowser_resource_files + "3rdparty/view-refresh.png" +) + +qt6_add_resources(cookiebrowser "cookiebrowser" + PREFIX + "/" + FILES + ${cookiebrowser_resource_files} +) + +install(TARGETS cookiebrowser + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/html2pdf/CMakeLists.txt b/examples/webenginewidgets/html2pdf/CMakeLists.txt new file mode 100644 index 000000000..617a03e3b --- /dev/null +++ b/examples/webenginewidgets/html2pdf/CMakeLists.txt @@ -0,0 +1,37 @@ +cmake_minimum_required(VERSION 3.18) +project(html2pdf 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}/webenginewidgets/html2pdf") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(html2pdf + html2pdf.cpp +) +set_target_properties(html2pdf PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(html2pdf PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + +install(TARGETS html2pdf + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/maps/CMakeLists.txt b/examples/webenginewidgets/maps/CMakeLists.txt new file mode 100644 index 000000000..8cb70abe1 --- /dev/null +++ b/examples/webenginewidgets/maps/CMakeLists.txt @@ -0,0 +1,38 @@ +cmake_minimum_required(VERSION 3.18) +project(maps 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}/webenginewidgets/maps") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(maps + main.cpp + mainwindow.cpp mainwindow.h +) +set_target_properties(maps PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(maps PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + +install(TARGETS maps + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/markdowneditor/CMakeLists.txt b/examples/webenginewidgets/markdowneditor/CMakeLists.txt new file mode 100644 index 000000000..458f8200f --- /dev/null +++ b/examples/webenginewidgets/markdowneditor/CMakeLists.txt @@ -0,0 +1,60 @@ +cmake_minimum_required(VERSION 3.18) +project(markdowneditor 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}/webenginewidgets/markdowneditor") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) +find_package(Qt6 COMPONENTS WebChannel) + +qt_add_executable(markdowneditor + document.cpp document.h + main.cpp + mainwindow.cpp mainwindow.h mainwindow.ui + previewpage.cpp previewpage.h +) +set_target_properties(markdowneditor PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(markdowneditor PUBLIC + Qt::Core + Qt::Gui + Qt::WebChannel + Qt::WebEngineWidgets +) + + +# Resources: +set(markdowneditor_resource_files + "3rdparty/markdown.css" + "3rdparty/marked.js" + "default.md" + "index.html" +) + +qt6_add_resources(markdowneditor "markdowneditor" + PREFIX + "/" + BASE + "resources" + FILES + ${markdowneditor_resource_files} +) + +install(TARGETS markdowneditor + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/minimal/CMakeLists.txt b/examples/webenginewidgets/minimal/CMakeLists.txt new file mode 100644 index 000000000..5edee428f --- /dev/null +++ b/examples/webenginewidgets/minimal/CMakeLists.txt @@ -0,0 +1,37 @@ +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}/webenginewidgets/minimal-widgets") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(minimal-widgets + main.cpp +) +set_target_properties(minimal-widgets PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(minimal-widgets PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + +install(TARGETS minimal-widgets + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/notifications/CMakeLists.txt b/examples/webenginewidgets/notifications/CMakeLists.txt new file mode 100644 index 000000000..6a201e7e7 --- /dev/null +++ b/examples/webenginewidgets/notifications/CMakeLists.txt @@ -0,0 +1,54 @@ +cmake_minimum_required(VERSION 3.18) +project(notifications 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}/webenginewidgets/notifications") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(notifications + main.cpp + notificationpopup.h +) +set_target_properties(notifications PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(notifications PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set(data_resource_files + "icon.png" + "index.html" +) + +qt6_add_resources(notifications "data" + PREFIX + "/" + BASE + "data" + FILES + ${data_resource_files} +) + +install(TARGETS notifications + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/printme/CMakeLists.txt b/examples/webenginewidgets/printme/CMakeLists.txt new file mode 100644 index 000000000..95af70461 --- /dev/null +++ b/examples/webenginewidgets/printme/CMakeLists.txt @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 3.18) +project(printme 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}/webenginewidgets/printme") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) +find_package(Qt6 COMPONENTS PrintSupport) + +qt_add_executable(printme + main.cpp + printhandler.cpp printhandler.h +) +set_target_properties(printme PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(printme PUBLIC + Qt::Core + Qt::Gui + Qt::PrintSupport + Qt::WebEngineWidgets +) + + +# Resources: +set(data_resource_files + "icon.svg" + "index.html" + "style.css" +) + +qt6_add_resources(printme "data" + PREFIX + "/" + BASE + "data" + FILES + ${data_resource_files} +) + +install(TARGETS printme + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/simplebrowser/CMakeLists.txt b/examples/webenginewidgets/simplebrowser/CMakeLists.txt new file mode 100644 index 000000000..47583413c --- /dev/null +++ b/examples/webenginewidgets/simplebrowser/CMakeLists.txt @@ -0,0 +1,106 @@ +cmake_minimum_required(VERSION 3.18) +project(simplebrowser 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}/webenginewidgets/simplebrowser") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(simplebrowser + browser.cpp browser.h + browserwindow.cpp browserwindow.h + certificateerrordialog.ui + downloadmanagerwidget.cpp downloadmanagerwidget.h downloadmanagerwidget.ui + downloadwidget.cpp downloadwidget.h downloadwidget.ui + main.cpp + passworddialog.ui + tabwidget.cpp tabwidget.h + webpage.cpp webpage.h + webpopupwindow.cpp webpopupwindow.h + webview.cpp webview.h +) +set_target_properties(simplebrowser PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(simplebrowser PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set(simplebrowser_resource_files + "AppLogoColor.png" + "ninja.png" +) + +qt6_add_resources(simplebrowser "simplebrowser" + PREFIX + "/" + BASE + "data" + FILES + ${simplebrowser_resource_files} +) +set_source_files_properties("data/3rdparty/dialog-error.png" + PROPERTIES QT_RESOURCE_ALIAS "dialog-error.png" +) +set_source_files_properties("data/3rdparty/edit-clear.png" + PROPERTIES QT_RESOURCE_ALIAS "edit-clear.png" +) +set_source_files_properties("data/3rdparty/go-bottom.png" + PROPERTIES QT_RESOURCE_ALIAS "go-bottom.png" +) +set_source_files_properties("data/3rdparty/go-next.png" + PROPERTIES QT_RESOURCE_ALIAS "go-next.png" +) +set_source_files_properties("data/3rdparty/go-previous.png" + PROPERTIES QT_RESOURCE_ALIAS "go-previous.png" +) +set_source_files_properties("data/3rdparty/process-stop.png" + PROPERTIES QT_RESOURCE_ALIAS "process-stop.png" +) +set_source_files_properties("data/3rdparty/text-html.png" + PROPERTIES QT_RESOURCE_ALIAS "text-html.png" +) +set_source_files_properties("data/3rdparty/view-refresh.png" + PROPERTIES QT_RESOURCE_ALIAS "view-refresh.png" +) +set(simplebrowser1_resource_files + "3rdparty/dialog-error.png" + "3rdparty/edit-clear.png" + "3rdparty/go-bottom.png" + "3rdparty/go-next.png" + "3rdparty/go-previous.png" + "3rdparty/process-stop.png" + "3rdparty/text-html.png" + "3rdparty/view-refresh.png" +) + +qt6_add_resources(simplebrowser "simplebrowser1" + PREFIX + "/" + BASE + "data" + FILES + ${simplebrowser1_resource_files} +) + +install(TARGETS simplebrowser + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/spellchecker/CMakeLists.txt b/examples/webenginewidgets/spellchecker/CMakeLists.txt new file mode 100644 index 000000000..a5e51ad53 --- /dev/null +++ b/examples/webenginewidgets/spellchecker/CMakeLists.txt @@ -0,0 +1,55 @@ +cmake_minimum_required(VERSION 3.18) +project(spellchecker 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}/webenginewidgets/spellchecker") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(spellchecker + main.cpp + webview.cpp webview.h +) +set_target_properties(spellchecker PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(spellchecker PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set(spellchecker_resource_files + "icon.svg" + "index.html" + "style.css" +) + +qt6_add_resources(spellchecker "spellchecker" + PREFIX + "/" + BASE + "data" + FILES + ${spellchecker_resource_files} +) + +install(TARGETS spellchecker + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/stylesheetbrowser/CMakeLists.txt b/examples/webenginewidgets/stylesheetbrowser/CMakeLists.txt new file mode 100644 index 000000000..774854ade --- /dev/null +++ b/examples/webenginewidgets/stylesheetbrowser/CMakeLists.txt @@ -0,0 +1,55 @@ +cmake_minimum_required(VERSION 3.18) +project(stylesheetbrowser 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}/webenginewidgets/stylesheetbrowser") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(stylesheetbrowser + main.cpp + mainwindow.cpp mainwindow.h mainwindow.ui + stylesheetdialog.cpp stylesheetdialog.h stylesheetdialog.ui +) +set_target_properties(stylesheetbrowser PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(stylesheetbrowser PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set_source_files_properties("3rdparty/view-refresh.png" + PROPERTIES QT_RESOURCE_ALIAS "view-refresh.png" +) +set(stylesheetbrowser_resource_files + "3rdparty/view-refresh.png" +) + +qt6_add_resources(stylesheetbrowser "stylesheetbrowser" + PREFIX + "/" + FILES + ${stylesheetbrowser_resource_files} +) + +install(TARGETS stylesheetbrowser + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/videoplayer/CMakeLists.txt b/examples/webenginewidgets/videoplayer/CMakeLists.txt new file mode 100644 index 000000000..7e49beb4b --- /dev/null +++ b/examples/webenginewidgets/videoplayer/CMakeLists.txt @@ -0,0 +1,55 @@ +cmake_minimum_required(VERSION 3.18) +project(videoplayer 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}/webenginewidgets/videoplayer") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(videoplayer + fullscreennotification.cpp fullscreennotification.h + fullscreenwindow.cpp fullscreenwindow.h + main.cpp + mainwindow.cpp mainwindow.h +) +set_target_properties(videoplayer PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(videoplayer PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set(videoplayer_resource_files + "index.html" +) + +qt6_add_resources(videoplayer "videoplayer" + PREFIX + "/" + BASE + "data" + FILES + ${videoplayer_resource_files} +) + +install(TARGETS videoplayer + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/webenginewidgets/webenginewidgets.pro b/examples/webenginewidgets/webenginewidgets.pro index deb42a8cd..f783fc681 100644 --- a/examples/webenginewidgets/webenginewidgets.pro +++ b/examples/webenginewidgets/webenginewidgets.pro @@ -1,4 +1,3 @@ -include($$QTWEBENGINE_OUT_ROOT/src/core/qtwebenginecore-config.pri) # workaround for QTBUG-68093 QT_FOR_CONFIG += webenginecore webenginecore-private TEMPLATE=subdirs @@ -20,9 +19,9 @@ qtConfig(webengine-printing-and-pdf) { SUBDIRS += printme html2pdf } -qtConfig(webengine-spellchecker):!qtConfig(webengine-native-spellchecker):!cross_compile { - SUBDIRS += spellchecker -} else { - message("Spellcheck example will not be built because it depends on usage of Hunspell dictionaries.") -} +#qtConfig(webengine-spellchecker):!qtConfig(webengine-native-spellchecker):!cross_compile { +# SUBDIRS += spellchecker +#} else { +# message("Spellcheck example will not be built because it depends on usage of Hunspell dictionaries.") +#} diff --git a/examples/webenginewidgets/webui/CMakeLists.txt b/examples/webenginewidgets/webui/CMakeLists.txt new file mode 100644 index 000000000..61c271159 --- /dev/null +++ b/examples/webenginewidgets/webui/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.18) +project(webui 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}/webenginewidgets/webui") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS WebEngineWidgets) + +qt_add_executable(webui + main.cpp + webuihandler.cpp webuihandler.h +) +set_target_properties(webui PROPERTIES + WIN32_EXECUTABLE TRUE + MACOSX_BUNDLE TRUE +) +target_link_libraries(webui PUBLIC + Qt::Core + Qt::Gui + Qt::WebEngineWidgets +) + + +# Resources: +set(webui_resource_files + "about.html" +) + +qt6_add_resources(webui "webui" + PREFIX + "/" + FILES + ${webui_resource_files} +) + +install(TARGETS webui + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) |