- Qt Creator Manual
- Creating a Qt Quick Application
- Qt Creator Manual 6.0.0-beta2

Tutorials ◦ Creating a Qt Widget Based Application

# Creating a Qt Quick Application

     cmake_minimum_required(VERSION 3.14)

     project(transitions VERSION 0.1 LANGUAGES CXX)

     set(CMAKE_INCLUDE_CURRENT_DIR ON)

     set(CMAKE_AUTOUIC ON)
     set(CMAKE_AUTOMOC ON)
     set(CMAKE_AUTORCC ON)

     set(CMAKE_CXX_STANDARD 11)
     set(CMAKE_CXX_STANDARD_REQUIRED ON)

     find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Quick REQUIRED)
     find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick REQUIRED)

     set(PROJECT_SOURCES
             main.cpp
             qml.qrc
     )

     if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
         qt_add_executable(transitions
             MANUAL_FINALIZATION
             ${PROJECT_SOURCES}
         )
     # Define target properties for Android with Qt 6 as:
     #    set_property(TARGET transitions APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
     #                 ${CMAKE_CURRENT_SOURCE_DIR}/android)
     # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
     else()
         if(ANDROID)
             add_library(transitions SHARED
                 ${PROJECT_SOURCES}
             )
     # Define properties for Android with Qt 5 after find_package() calls as:
     #    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
         else()
             add_executable(transitions
               ${PROJECT_SOURCES}
             )
         endif()
     endif()

     target_compile_definitions(transitions
       PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
     target_link_libraries(transitions
       PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Quick)

     set_target_properties(transitions PROPERTIES
         MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
         MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
         MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
     )

     if(QT_VERSION_MAJOR EQUAL 6)
         qt_import_qml_plugins(transitions)
         qt_finalize_executable(transitions)
     endif()