# selene-1.0.3.ebuild
# c 2025 Alamahant

EAPI=8
inherit cmake
S="${WORKDIR}/Selene-1.0.5"

DESCRIPTION="Selene - Tor P2P Chat & File Sharing (Qt6)"
HOMEPAGE="https://github.com/alamahant/Selene"
SRC_URI="https://github.com/alamahant/Selene/archive/refs/tags/v1.0.5.tar.gz -> ${P}.tar.gz"

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

BDEPEND="dev-build/cmake"
RDEPEND="
    dev-qt/qtbase:6[widgets,network,gui]
    dev-qt/qtmultimedia:6
    dev-libs/openssl
    net-vpn/tor
    net-misc/curl
"

DEPEND="${RDEPEND}
    dev-build/cmake
"

src_prepare() {
    # Delete the original CMakeLists.txt
    rm -f CMakeLists.txt
    
    # Create new CMakeLists.txt with your content
    cat > CMakeLists.txt << 'EOF'
cmake_minimum_required(VERSION 3.19)
project(Selene VERSION 1.0.5 LANGUAGES CXX)

find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets Network Multimedia)
find_package(OpenSSL REQUIRED)

qt_standard_project_setup()

set(PROJECT_SOURCES
torconfig.h torconfig.cpp
        logger.h logger.cpp
        torprocess.h torprocess.cpp
        networkmanager.h networkmanager.cpp
        peerstate.h
        contact.h
        contactmanager.h contactmanager.cpp
        contactcardwidget.h contactcardwidget.cpp
        contactlistwidget.h contactlistwidget.cpp
        chatmanager.h chatmanager.cpp
        messagebubblewidget.h messagebubblewidget.cpp

        constants.h

        emojipickerwidget.h emojipickerwidget.cpp
        resources.qrc
        simplehttpfileserver.h simplehttpfileserver.cpp
        constants.cpp
        crypto.h crypto.cpp
        chatmessage.h chatmessage.cpp
        chatsession.h chatsession.cpp
        logviewerdialog.h logviewerdialog.cpp
        helpmenudialog.cpp helpmenudialog.h
        securitymanager.cpp securitymanager.h
        Notification.h
        donationdialog.cpp donationdialog.h
        httpclientdialog.h httpclientdialog.cpp
        bridgemanagerdialog.h bridgemanagerdialog.cpp

        main.cpp
        mainwindow.cpp
        mainwindow.h
        mainwindow.ui
)



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

qt_add_executable(Selene
    WIN32 MACOSX_BUNDLE
    ${PROJECT_SOURCES}
    ${Selene_RESOURCES}
)

target_link_libraries(Selene PRIVATE 
    Qt6::Core
    Qt6::Widgets
    Qt6::Network
    Qt6::Multimedia
    OpenSSL::Crypto
)

set_target_properties(Selene 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 Selene
    BUNDLE  DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

EOF

    cmake_src_prepare
}


src_configure() {
    local mycmakeargs=(
    )

    cmake_src_configure
}


src_install() {

    cmake_src_install
 
    # Desktop file
    insinto /usr/share/applications
    doins "${S}/Selene.desktop"

    # Install icons - CORRECT METHOD 1: using insinto + doins
    insinto /usr/share/icons/hicolor/16x16/apps
    newins "${S}/favicons/16x16.png" io.github.alamahant.Selene.png
    
    insinto /usr/share/icons/hicolor/32x32/apps
    newins "${S}/favicons/32x32.png" io.github.alamahant.Selene.png
    
    insinto /usr/share/icons/hicolor/192x192/apps
    newins "${S}/favicons/192x192.png" io.github.alamahant.Selene.png
    
    insinto /usr/share/icons/hicolor/512x512/apps
    newins "${S}/favicons/512x512.png" io.github.alamahant.Selene.png

}