# Make ${Qt6_Widgets} optional
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Widgets)
  set(Qt6_Widgets ${Qt6_Widgets})
else()
  set(Qt6_Widgets "")
endif()


cmake_minimum_required(VERSION 3.16)
project(TrajectoryShader LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

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

find_package(Qt6 REQUIRED COMPONENTS Widgets OpenGLWidgets OpenGL)

qt_add_executable(TrajectoryShader
    main.cpp
    mainwindow.h
    mainwindow.cpp
    trajectorywidget.h
    trajectorywidget.cpp
    trajectorywarp.h trajectorywarp.cpp
    ballistiksimulator.h ballistiksimulator.cpp
)

if(QT6_GUI_AVAILABLE)
  target_link_libraries(TrajectoryShader
      PRIVATE
          ${Qt6_Widgets}
          Qt6::OpenGLWidgets
          Qt6::OpenGL
  )
endif()

qt_finalize_executable(TrajectoryShader)
