cmake_minimum_required(VERSION 3.5)

project(vhfmill VERSION 0.1 LANGUAGES CXX)

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

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 REQUIRED COMPONENTS Widgets)
find_package(Qt6 REQUIRED COMPONENTS Widgets SerialPort Network 3DCore 3DRender 3DInput 3DExtras)
find_program(XDG-ICON-RESOURCE_EXECUTABLE xdg-icon-resource)
find_program(XDG-DESKTOP-MENU_EXECUTABLE xdg-desktop-menu)

set(PROJECT_SOURCES
	    main.cpp
		mainwindow.cpp
		vhfmill.cpp
		vhfmill.h
		led.cpp
		led.h
		gcodetovhf.cpp
		gcodetovhf.h
		mainwindow.h
		mainwindow.ui
		backplotwidget.cpp
		backplotwidget.h
		orbitcameracontroller.cpp
		orbitcameracontroller.h
		vhfmillthread.cpp
		vhfmillthread.h
		mainobject.cpp
		mainobject.h
)

qt_add_executable(vhfmill MANUAL_FINALIZATION ${PROJECT_SOURCES})

target_link_libraries(vhfmill PRIVATE Qt6::Widgets Qt6::SerialPort Qt6::Network Qt6::3DCore Qt6::3DRender Qt6::3DExtras)
target_include_directories(vhfmill PRIVATE .)

install(CODE "
	message(\"Installing icon\")
	execute_process(COMMAND ${XDG-ICON-RESOURCE_EXECUTABLE} install --size 128 ${CMAKE_CURRENT_SOURCE_DIR}/uvos-vhfmill.png)
	message(\"Installing .desktop file\")
	execute_process(COMMAND ${XDG-DESKTOP-MENU_EXECUTABLE} install --novendor ${CMAKE_CURRENT_SOURCE_DIR}/vhfmill.desktop)
")

install(TARGETS vhfmill BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

qt_finalize_executable(vhfmill)
