mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-12 21:58:34 +02:00
This is part of a series of PRs made in preparation for the QML rewrite. this PR specifically moves a bunch of utility functions from main.cpp into qt_common, with the biggest benefit being that QML can reuse the exact same code through ctx passthrough. Also, QtCommon::Frontend is an abstraction layer over several previously Widgets-specific stuff like QMessageBox that gets used everywhere. The idea is that once QML is implemented, these functions can have a Quick version implemented for systems that don't work well with Widgets (sun) or for those on Plasma 6+ (reduces memory usage w/o Widgets linkage) although Quick from C++ is actually anal, but whatever. Other than that this should also just kinda reduce the size of main.cpp which is a 6000-line behemoth rn, and clangd straight up gives up with it for me (likely caused by the massive amount of headers, which this DOES reduce). In the future, I probably want to create a common strings lookup table that both Qt and QML can reference--though I'm not sure how much linguist likes that--which should give us a way to keep language consistent (use frozen-map). TODO: Docs for Qt stuff Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/94 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
47 lines
1.2 KiB
CMake
47 lines
1.2 KiB
CMake
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
find_package(Qt6 REQUIRED COMPONENTS Core)
|
|
find_package(Qt6 REQUIRED COMPONENTS Core)
|
|
|
|
add_library(qt_common STATIC
|
|
qt_common.h
|
|
qt_common.cpp
|
|
|
|
uisettings.cpp
|
|
uisettings.h
|
|
|
|
qt_config.cpp
|
|
qt_config.h
|
|
|
|
shared_translation.cpp
|
|
shared_translation.h
|
|
qt_path_util.h qt_path_util.cpp
|
|
qt_game_util.h qt_game_util.cpp
|
|
qt_frontend_util.h qt_frontend_util.cpp
|
|
qt_meta.h qt_meta.cpp
|
|
qt_content_util.h qt_content_util.cpp
|
|
qt_rom_util.h qt_rom_util.cpp
|
|
qt_applet_util.h qt_applet_util.cpp
|
|
qt_progress_dialog.h qt_progress_dialog.cpp
|
|
|
|
)
|
|
|
|
create_target_directory_groups(qt_common)
|
|
|
|
# TODO(crueter)
|
|
if (ENABLE_QT)
|
|
target_link_libraries(qt_common PRIVATE Qt6::Widgets)
|
|
endif()
|
|
|
|
add_subdirectory(externals)
|
|
|
|
target_link_libraries(qt_common PRIVATE core Qt6::Core SimpleIni::SimpleIni QuaZip::QuaZip frozen::frozen)
|
|
target_link_libraries(qt_common PRIVATE Qt6::Core)
|
|
|
|
if (NOT WIN32)
|
|
target_include_directories(qt_common PRIVATE ${Qt6Gui_PRIVATE_INCLUDE_DIRS})
|
|
endif()
|