cmake_minimum_required(VERSION 3.20)

project(QtCBMxfer VERSION 0.1.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

find_package(Qt6 REQUIRED COMPONENTS Widgets Svg)

set(SARIBBON_BUILD_STATIC_LIBS ON CACHE BOOL "" FORCE)
set(SARIBBON_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(SARIBBON_USE_FRAMELESS_LIB OFF CACHE BOOL "" FORCE)
add_subdirectory(third_party/SARibbon EXCLUDE_FROM_ALL)

add_executable(qtcbmxfer
	third_party/c64diskutil/c64directoryfile.cpp
	third_party/c64diskutil/c64directoryfile.h
	third_party/c64diskutil/c64disk.cpp
	third_party/c64diskutil/c64disk.h
	third_party/c64diskutil/c64diskbam.cpp
	third_party/c64diskutil/c64diskbam.h
	third_party/c64diskutil/c64diskblock.cpp
	third_party/c64diskutil/c64diskblock.h
	third_party/c64diskutil/c64diskdirentries.cpp
	third_party/c64diskutil/c64diskdirentries.h
	third_party/c64diskutil/c64diskgeosinfo.cpp
	third_party/c64diskutil/c64diskgeosinfo.h
	third_party/c64diskutil/c64diskgeosrecord.cpp
	third_party/c64diskutil/c64diskgeosrecord.h
	third_party/c64diskutil/c64diskheader.cpp
	third_party/c64diskutil/c64diskheader.h
	third_party/c64diskutil/c64disksector.cpp
	third_party/c64diskutil/c64disksector.h
	third_party/c64diskutil/c64disktrack.cpp
	third_party/c64diskutil/c64disktrack.h
	third_party/c64diskutil/c64exception.cpp
	third_party/c64diskutil/c64exception.h
	third_party/c64diskutil/directorypage.cpp
	third_party/c64diskutil/directorypage.h
	third_party/c64diskutil/geosrecordpointer.cpp
	third_party/c64diskutil/geosrecordpointer.h
	third_party/c64diskutil/utilities.cpp
	third_party/c64diskutil/vlirdata.cpp
	third_party/c64diskutil/vlirdata.h
	src/C1541DirectoryParser.cpp
	src/C1541DirectoryParser.h
	src/CbmDirectoryView.cpp
	src/CbmDirectoryView.h
	src/CbmFont.cpp
	src/CbmFont.h
	src/CbmStatusBar.cpp
	src/CbmStatusBar.h
	src/DiskImageDirectory.h
	src/MainWindow.cpp
	src/MainWindow.h
	src/main.cpp
	resources/icons.qrc
	third_party/c64diskutil/resource.qrc
	third_party/SARibbon/src/SARibbonBar/SARibbonResource.qrc
)

target_include_directories(qtcbmxfer PRIVATE third_party/c64diskutil)
target_link_libraries(qtcbmxfer PRIVATE Qt6::Widgets Qt6::Svg SARibbonBar::SARibbonBar)

install(TARGETS qtcbmxfer RUNTIME DESTINATION bin)
install(FILES ../src/themes/cxfont-c64.bin DESTINATION share/qtcbmxfer/src/themes)
