From 331d1cf9fdeaf0d95ac601c460ebcd3e77de8376 Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Fri, 4 Oct 2019 10:39:26 +0200 Subject: cmake: add examples/vulkan Fixes: QTBUG-78216 Change-Id: Id7d936ab0b3febc6b7ad3170ec2ea67836484217 Reviewed-by: Simon Hausmann Reviewed-by: Qt CMake Build Bot --- examples/CMakeLists.txt | 2 +- examples/vulkan/CMakeLists.txt | 11 ++++ examples/vulkan/hellovulkancubes/CMakeLists.txt | 63 ++++++++++++++++++++++ examples/vulkan/hellovulkantexture/CMakeLists.txt | 45 ++++++++++++++++ examples/vulkan/hellovulkantriangle/CMakeLists.txt | 50 +++++++++++++++++ examples/vulkan/hellovulkanwidget/CMakeLists.txt | 53 ++++++++++++++++++ examples/vulkan/hellovulkanwindow/CMakeLists.txt | 30 +++++++++++ 7 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 examples/vulkan/CMakeLists.txt create mode 100644 examples/vulkan/hellovulkancubes/CMakeLists.txt create mode 100644 examples/vulkan/hellovulkantexture/CMakeLists.txt create mode 100644 examples/vulkan/hellovulkantriangle/CMakeLists.txt create mode 100644 examples/vulkan/hellovulkanwidget/CMakeLists.txt create mode 100644 examples/vulkan/hellovulkanwindow/CMakeLists.txt diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index c9abbd8ec9..2c5c7bd88c 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -45,7 +45,7 @@ if(TARGET Qt::Gui) endif() if(QT_FEATURE_vulkan) -# add_subdirectory(vulkan) # special case: removed + add_subdirectory(vulkan) endif() endif() diff --git a/examples/vulkan/CMakeLists.txt b/examples/vulkan/CMakeLists.txt new file mode 100644 index 0000000000..b00a40447a --- /dev/null +++ b/examples/vulkan/CMakeLists.txt @@ -0,0 +1,11 @@ +# Generated from vulkan.pro. + +add_subdirectory(hellovulkanwindow) +add_subdirectory(hellovulkantriangle) +add_subdirectory(hellovulkantexture) +if(TARGET Qt::Widgets) + add_subdirectory(hellovulkanwidget) +endif() +if(TARGET Qt::Concurrent AND TARGET Qt::Widgets) + add_subdirectory(hellovulkancubes) +endif() diff --git a/examples/vulkan/hellovulkancubes/CMakeLists.txt b/examples/vulkan/hellovulkancubes/CMakeLists.txt new file mode 100644 index 0000000000..c77cd59d8c --- /dev/null +++ b/examples/vulkan/hellovulkancubes/CMakeLists.txt @@ -0,0 +1,63 @@ +# Generated from hellovulkancubes.pro. + +cmake_minimum_required(VERSION 3.14) +project(hellovulkancubes LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) +find_package(Qt6 COMPONENTS Concurrent) + +add_qt_gui_executable(hellovulkancubes + camera.cpp camera.h + main.cpp + mainwindow.cpp mainwindow.h + mesh.cpp mesh.h + renderer.cpp renderer.h + shader.cpp shader.h + vulkanwindow.cpp vulkanwindow.h +) +target_link_libraries(hellovulkancubes PUBLIC + Qt::Concurrent + Qt::Core + Qt::Gui + Qt::Widgets +) + +# Resources: +set_source_files_properties("../shared/block.buf" + PROPERTIES QT_RESOURCE_ALIAS "block.buf" +) +set_source_files_properties("../shared/qt_logo.buf" + PROPERTIES QT_RESOURCE_ALIAS "qt_logo.buf" +) +set(hellovulkancubes_resource_files + "../shared/block.buf" + "../shared/qt_logo.buf" + "color_frag.spv" + "color_phong_frag.spv" + "color_phong_vert.spv" + "color_vert.spv" +) + +qt6_add_resources(hellovulkancubes "hellovulkancubes" + PREFIX + "/" + FILES + ${hellovulkancubes_resource_files} +) + + +install(TARGETS hellovulkancubes + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/vulkan/hellovulkantexture/CMakeLists.txt b/examples/vulkan/hellovulkantexture/CMakeLists.txt new file mode 100644 index 0000000000..b9cbd179f0 --- /dev/null +++ b/examples/vulkan/hellovulkantexture/CMakeLists.txt @@ -0,0 +1,45 @@ +# Generated from hellovulkantexture.pro. + +cmake_minimum_required(VERSION 3.14) +project(hellovulkantexture LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +add_qt_gui_executable(hellovulkantexture + hellovulkantexture.cpp hellovulkantexture.h + main.cpp +) +target_link_libraries(hellovulkantexture PUBLIC + Qt::Core + Qt::Gui +) + +# Resources: +set(hellovulkantexture_resource_files + "qt256.png" + "texture_frag.spv" + "texture_vert.spv" +) + +qt6_add_resources(hellovulkantexture "hellovulkantexture" + PREFIX + "/" + FILES + ${hellovulkantexture_resource_files} +) + + +install(TARGETS hellovulkantexture + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/vulkan/hellovulkantriangle/CMakeLists.txt b/examples/vulkan/hellovulkantriangle/CMakeLists.txt new file mode 100644 index 0000000000..73ca042881 --- /dev/null +++ b/examples/vulkan/hellovulkantriangle/CMakeLists.txt @@ -0,0 +1,50 @@ +# Generated from hellovulkantriangle.pro. + +cmake_minimum_required(VERSION 3.14) +project(hellovulkantriangle LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +add_qt_gui_executable(hellovulkantriangle + ../shared/trianglerenderer.cpp ../shared/trianglerenderer.h + main.cpp +) +target_link_libraries(hellovulkantriangle PUBLIC + Qt::Core + Qt::Gui +) + +# Resources: +set_source_files_properties("../shared/color_frag.spv" + PROPERTIES QT_RESOURCE_ALIAS "color_frag.spv" +) +set_source_files_properties("../shared/color_vert.spv" + PROPERTIES QT_RESOURCE_ALIAS "color_vert.spv" +) +set(hellovulkantriangle_resource_files + "../shared/color_frag.spv" + "../shared/color_vert.spv" +) + +qt6_add_resources(hellovulkantriangle "hellovulkantriangle" + PREFIX + "/" + FILES + ${hellovulkantriangle_resource_files} +) + + +install(TARGETS hellovulkantriangle + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/vulkan/hellovulkanwidget/CMakeLists.txt b/examples/vulkan/hellovulkanwidget/CMakeLists.txt new file mode 100644 index 0000000000..281c49e77d --- /dev/null +++ b/examples/vulkan/hellovulkanwidget/CMakeLists.txt @@ -0,0 +1,53 @@ +# Generated from hellovulkanwidget.pro. + +cmake_minimum_required(VERSION 3.14) +project(hellovulkanwidget LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) +find_package(Qt6 COMPONENTS Widgets) + +add_qt_gui_executable(hellovulkanwidget + ../shared/trianglerenderer.cpp ../shared/trianglerenderer.h + hellovulkanwidget.cpp hellovulkanwidget.h + main.cpp +) +target_link_libraries(hellovulkanwidget PUBLIC + Qt::Core + Qt::Gui + Qt::Widgets +) + +# Resources: +set_source_files_properties("../shared/color_frag.spv" + PROPERTIES QT_RESOURCE_ALIAS "color_frag.spv" +) +set_source_files_properties("../shared/color_vert.spv" + PROPERTIES QT_RESOURCE_ALIAS "color_vert.spv" +) +set(hellovulkanwidget_resource_files + "../shared/color_frag.spv" + "../shared/color_vert.spv" +) + +qt6_add_resources(hellovulkanwidget "hellovulkanwidget" + PREFIX + "/" + FILES + ${hellovulkanwidget_resource_files} +) + + +install(TARGETS hellovulkanwidget + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/vulkan/hellovulkanwindow/CMakeLists.txt b/examples/vulkan/hellovulkanwindow/CMakeLists.txt new file mode 100644 index 0000000000..6e79b959a8 --- /dev/null +++ b/examples/vulkan/hellovulkanwindow/CMakeLists.txt @@ -0,0 +1,30 @@ +# Generated from hellovulkanwindow.pro. + +cmake_minimum_required(VERSION 3.14) +project(hellovulkanwindow LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +set(INSTALL_EXAMPLEDIR "examples") + +find_package(Qt6 COMPONENTS Core) +find_package(Qt6 COMPONENTS Gui) + +add_qt_gui_executable(hellovulkanwindow + hellovulkanwindow.cpp hellovulkanwindow.h + main.cpp +) +target_link_libraries(hellovulkanwindow PUBLIC + Qt::Core + Qt::Gui +) + +install(TARGETS hellovulkanwindow + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) -- cgit v1.2.3