mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2024-11-14 21:37:42 -07:00
Add support for building with Qt6 (#865)
Co-authored-by: WaluigiWare64 <68647953+WaluigiWare64@users.noreply.github.com>
This commit is contained in:
parent
def272fac4
commit
0834fc1533
@ -32,20 +32,36 @@ SET(SOURCES_QT_SDL
|
||||
../../../melon.qrc
|
||||
)
|
||||
|
||||
option(USE_QT6 "Build using Qt 6 instead of 5" OFF)
|
||||
|
||||
if (WIN32)
|
||||
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -i <SOURCE> -o <OBJECT>")
|
||||
endif()
|
||||
|
||||
if (BUILD_STATIC AND QT5_STATIC_DIR)
|
||||
set(QT5_STATIC_BASE ${QT5_STATIC_DIR}/lib/cmake/Qt5)
|
||||
set(Qt5_DIR ${QT5_STATIC_BASE})
|
||||
set(Qt5Core_DIR ${QT5_STATIC_BASE}Core)
|
||||
set(Qt5Gui_DIR ${QT5_STATIC_BASE}Gui)
|
||||
set(Qt5Widgets_DIR ${QT5_STATIC_BASE}Widgets)
|
||||
if (USE_QT6)
|
||||
if (BUILD_STATIC AND QT6_STATIC_DIR)
|
||||
set(QT6_STATIC_BASE ${QT6_STATIC_DIR}/lib/cmake/Qt6)
|
||||
set(Qt6_DIR ${QT6_STATIC_BASE})
|
||||
set(Qt6Core_DIR ${QT6_STATIC_BASE}Core)
|
||||
set(Qt6Gui_DIR ${QT6_STATIC_BASE}Gui)
|
||||
set(Qt6Widgets_DIR ${QT6_STATIC_BASE}Widgets)
|
||||
set(Qt6OpenGL_DIR ${QT6_STATIC_BASE}OpenGL)
|
||||
set(Qt6OpenGLWidgets_DIR ${QT6_STATIC_BASE}OpenGLWidgets)
|
||||
endif()
|
||||
find_package(Qt6 COMPONENTS Core Gui Widgets OpenGL OpenGLWidgets REQUIRED)
|
||||
set(QT_LINK_LIBS Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGL Qt6::OpenGLWidgets)
|
||||
else()
|
||||
if (BUILD_STATIC AND QT5_STATIC_DIR)
|
||||
set(QT5_STATIC_BASE ${QT5_STATIC_DIR}/lib/cmake/Qt5)
|
||||
set(Qt5_DIR ${QT5_STATIC_BASE})
|
||||
set(Qt5Core_DIR ${QT5_STATIC_BASE}Core)
|
||||
set(Qt5Gui_DIR ${QT5_STATIC_BASE}Gui)
|
||||
set(Qt5Widgets_DIR ${QT5_STATIC_BASE}Widgets)
|
||||
endif()
|
||||
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
|
||||
set(QT_LINK_LIBS Qt5::Core Qt5::Gui Qt5::Widgets)
|
||||
endif()
|
||||
|
||||
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
@ -87,7 +103,7 @@ endif()
|
||||
|
||||
if (UNIX)
|
||||
option(PORTABLE "Make a portable build that looks for its configuration in the current directory" OFF)
|
||||
target_link_libraries(melonDS Qt5::Core Qt5::Gui Qt5::Widgets)
|
||||
target_link_libraries(melonDS ${QT_LINK_LIBS})
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
target_link_libraries(melonDS dl)
|
||||
endif()
|
||||
@ -98,9 +114,9 @@ elseif (WIN32)
|
||||
|
||||
target_link_libraries(melonDS comctl32 d2d1 dwrite uxtheme ws2_32 iphlpapi gdi32)
|
||||
if (BUILD_STATIC)
|
||||
target_link_libraries(melonDS imm32 winmm version setupapi -static Qt5::Core Qt5::Gui Qt5::Widgets zstd)
|
||||
target_link_libraries(melonDS imm32 winmm version setupapi -static z zstd ${QT_LINK_LIBS})
|
||||
else()
|
||||
target_link_libraries(melonDS Qt5::Core Qt5::Gui Qt5::Widgets)
|
||||
target_link_libraries(melonDS ${QT_LINK_LIBS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -119,6 +135,13 @@ if (APPLE)
|
||||
target_sources(melonDS PRIVATE "${CMAKE_SOURCE_DIR}/melon.icns")
|
||||
set_source_files_properties("${CMAKE_SOURCE_DIR}/melon.icns" PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||
|
||||
# Qt 6 requires macOS 10.15 if building on 10.15 or greater
|
||||
if(CMAKE_SYSTEM_VERSION VERSION_GREATER "10.14")
|
||||
if (USE_QT6)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
option(MACOS_BUNDLE_LIBS "Bundle libraries with the app on macOS" OFF)
|
||||
option(MACOS_BUILD_DMG "Build DMG image of the macOS application bundle" OFF)
|
||||
|
||||
|
@ -17,6 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <QtGlobal>
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
|
||||
@ -319,7 +320,11 @@ void CheatsDialog::on_txtCode_textChanged()
|
||||
u32 codelen = 0;
|
||||
|
||||
QString text = ui->txtCode->document()->toPlainText();
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
QStringList lines = text.split('\n', Qt::SkipEmptyParts);
|
||||
#else
|
||||
QStringList lines = text.split('\n', QString::SkipEmptyParts);
|
||||
#endif
|
||||
for (QStringList::iterator it = lines.begin(); it != lines.end(); it++)
|
||||
{
|
||||
QString line = *it;
|
||||
|
@ -47,7 +47,7 @@ VideoSettingsDialog::VideoSettingsDialog(QWidget* parent) : QDialog(parent), ui(
|
||||
grp3DRenderer = new QButtonGroup(this);
|
||||
grp3DRenderer->addButton(ui->rb3DSoftware, 0);
|
||||
grp3DRenderer->addButton(ui->rb3DOpenGL, 1);
|
||||
connect(grp3DRenderer, SIGNAL(buttonClicked(int)), this, SLOT(onChange3DRenderer(int)));
|
||||
connect(grp3DRenderer, SIGNAL(idClicked(int)), this, SLOT(onChange3DRenderer(int)));
|
||||
grp3DRenderer->button(Config::_3DRenderer)->setChecked(true);
|
||||
|
||||
#ifndef OGLRENDERER_ENABLED
|
||||
|
Loading…
Reference in New Issue
Block a user