# Copyright 2025 Alamahant
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit cmake
S="${WORKDIR}/TarotCaster-1.2.3"

DESCRIPTION="TarotCaster - Tarot reading application with AI interpretation"
HOMEPAGE="https://github.com/alamahant/TarotCaster"
SRC_URI="https://github.com/alamahant/TarotCaster/archive/refs/tags/v1.2.3.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"

BDEPEND="dev-build/cmake"
RDEPEND="
	dev-qt/qtbase:6[widgets,gui,network,opengl]

"

DEPEND="${RDEPEND}"


src_prepare() {
	# Delete the original CMakeLists.txt
	rm -f CMakeLists.txt

	# Create new CMakeLists.txt with Qt6-only format
	cat > CMakeLists.txt << 'EOF'
cmake_minimum_required(VERSION 3.19)
project(TarotCaster VERSION 1.2.3 LANGUAGES CXX)

# Ensure resource compilation
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)

option(GENTOO_BUILD "Build for Gentoo" OFF)
if(GENTOO_BUILD)
    add_compile_definitions(GENTOO_BUILD)
endif()

find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets Network OpenGL OpenGLWidgets)

qt_standard_project_setup()

set(PROJECT_SOURCES
    main.cpp
    mainwindow.cpp mainwindow.h
    cardloader.h cardloader.cpp
    tarotscene.h tarotscene.cpp
    tarotcarditem.h tarotcarditem.cpp
    cardmeaning.h cardmeaning.cpp
    meaningdisplay.h meaningdisplay.cpp
    dockcontrols.h dockcontrols.cpp
    mistralapi.h mistralapi.cpp
    resources.qrc
    helpdialog.h helpdialog.cpp
    customspreaddesigner.h customspreaddesigner.cpp
    tarotorderdialog.h tarotorderdialog.cpp
    Globals.h Globals.cpp
    donationdialog.cpp donationdialog.h
    model.h modelselectordialog.cpp modelselectordialog.h
)

# Explicitly process the resource file
qt_add_resources(TarotCaster_RESOURCES resources.qrc)



qt_add_executable(TarotCaster
    WIN32 MACOSX_BUNDLE
    ${PROJECT_SOURCES}
    ${TarotCaster_RESOURCES}
)

target_link_libraries(TarotCaster PRIVATE 
    Qt6::Core
    Qt6::Widgets
    Qt6::Network
    Qt6::OpenGLWidgets
    Qt6::OpenGL
)

set_target_properties(TarotCaster PROPERTIES
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

include(GNUInstallDirs)

install(TARGETS TarotCaster
    BUNDLE DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)


EOF

	cmake_src_prepare
}

src_configure() {
local mycmakeargs=(
    -DGENTOO_BUILD=ON
    )
    cmake_src_configure "${mycmakeargs[@]}"

}

src_install() {
	cmake_src_install

	# Install desktop file
	insinto /usr/share/applications
	doins "${S}/TarotCaster.desktop"


	# Install icon
	insinto /usr/share/icons/hicolor/512x512/apps
	doins "${S}/io.github.alamahant.TarotCaster.png"

	# Install decks directory structure
	insinto /usr/share/tarotcaster
	doins -r "${S}/decks"

	# Install card meanings
	insinto /usr/share/tarotcaster
	doins "${S}/resources/card_meanings.json"
}