# Mindestens CMake 3.16 erforderlich (Qt6-Unterstützung mit AUTOMOC/AUTORCC)
cmake_minimum_required(VERSION 3.16)

# Projektname und verwendete Sprache
project(CubeMitRotierenderLichtquelle LANGUAGES CXX)

# C++17 als Sprachstandard festlegen
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Qt-Codegenerierung automatisch aktivieren:
#   AUTOMOC  – verarbeitet Q_OBJECT-Makros (moc)
#   AUTORCC  – kompiliert .qrc-Ressourcendateien (rcc)
#   AUTOUIC  – generiert UI-Klassen aus .ui-Dateien (uic)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

# Benötigte Qt6-Module suchen
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets OpenGL OpenGLWidgets)

# Ausführbare Datei aus Quell- und Ressourcendateien erzeugen
add_executable(${PROJECT_NAME}
    src/main.cpp
    src/glwidget.h
    src/glwidget.cpp
    ressources/shaders.qrc   # OpenGL-Shader als eingebettete Qt-Ressource
)

# Qt6-Bibliotheken zum Linken angeben
target_link_libraries(${PROJECT_NAME} PRIVATE
    Qt6::Core
    Qt6::Gui
    Qt6::Widgets
    Qt6::OpenGL
    Qt6::OpenGLWidgets
)
