[cmake, frontend] feat: CPMUtil + dependency viewer (#238)

- creates a CPMUtil.cmake module that makes my job 10x easier and removes boilerplate
- also lets us generate dependency names/versions at compiletime, thus letting the frontend display each dependency's versions.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/238
This commit is contained in:
crueter 2025-08-11 22:27:29 +02:00
parent 3f02d7713f
commit 1551387739
Signed by: crueter
GPG key ID: 425ACD2D4830EBC6
24 changed files with 690 additions and 183 deletions

41
src/yuzu/deps_dialog.h Normal file
View file

@ -0,0 +1,41 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include <QDialog>
#include <QStyledItemDelegate>
#include <QTableView>
#include <memory>
namespace Ui { class DepsDialog; }
class DepsDialog : public QDialog
{
Q_OBJECT
public:
explicit DepsDialog(QWidget *parent);
~DepsDialog() override;
private:
std::unique_ptr<Ui::DepsDialog> ui;
};
class LinkItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit LinkItemDelegate(QObject *parent = 0);
protected:
void paint(QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index) const override;
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
bool editorEvent(QEvent *event,
QAbstractItemModel *model,
const QStyleOptionViewItem &option,
const QModelIndex &index) override;
};