Merge pull request #5852 from lemondrops/cmake

CMake-related improvements
This commit is contained in:
Miran Grča
2025-08-01 00:13:49 +02:00
committed by GitHub
7 changed files with 51 additions and 24 deletions

View File

@@ -221,7 +221,7 @@ if(NOT EMU_BUILD_NUM)
set(EMU_BUILD_NUM 0)
endif()
if(NOT EMU_COPYRIGHT_YEAR)
set(EMU_COPYRIGHT_YEAR 2024)
set(EMU_COPYRIGHT_YEAR 2025)
endif()
# Libasan
@@ -230,4 +230,6 @@ if(LIBASAN)
add_link_options(-fsanitize=address)
endif()
set(CMAKE_TOP_LEVEL_PROCESSED TRUE)
add_subdirectory(src)

View File

@@ -16,6 +16,10 @@
# Copyright 2024 Jasmine Iwanek.
#
if(NOT CMAKE_TOP_LEVEL_PROCESSED)
message(FATAL_ERROR "Incorrect source directory specified. Delete your build directory and retry with the top-level directory instead")
endif()
if(APPLE)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
endif()
@@ -149,16 +153,6 @@ if(APPLE)
target_link_libraries(86Box Freetype::Freetype)
endif()
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
if(STATIC_BUILD AND TARGET SDL2::SDL2-static)
target_link_libraries(86Box SDL2::SDL2-static)
elseif(TARGET SDL2::SDL2)
target_link_libraries(86Box SDL2::SDL2)
else()
target_link_libraries(86Box ${SDL2_LIBRARIES})
endif()
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIRS})
target_link_libraries(86Box PNG::PNG)

View File

@@ -187,14 +187,6 @@ add_library(ui STATIC
qt_mediahistorymanager.cpp
qt_mediahistorymanager.hpp
qt_updatecheck.cpp
qt_updatecheck.hpp
qt_updatecheckdialog.cpp
qt_updatecheckdialog.hpp
qt_updatecheckdialog.ui
qt_updatedetails.cpp
qt_updatedetails.hpp
qt_updatedetails.ui
qt_downloader.cpp
qt_downloader.hpp
@@ -245,6 +237,19 @@ add_library(ui STATIC
qt_iconindicators.cpp
)
if(EMU_BUILD_NUM)
target_sources(ui PRIVATE
qt_updatecheck.cpp
qt_updatecheck.hpp
qt_updatecheckdialog.cpp
qt_updatecheckdialog.hpp
qt_updatecheckdialog.ui
qt_updatedetails.cpp
qt_updatedetails.hpp
qt_updatedetails.ui
)
endif()
if(RTMIDI)
target_compile_definitions(ui PRIVATE USE_RTMIDI)
endif()
@@ -284,6 +289,15 @@ if(WIN32 AND NOT SDL_JOYSTICK)
target_sources(plat PRIVATE win_joystick_rawinput.c)
target_link_libraries(86Box hid)
else()
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
if(STATIC_BUILD AND TARGET SDL2::SDL2-static)
target_link_libraries(86Box SDL2::SDL2-static)
elseif(TARGET SDL2::SDL2)
target_link_libraries(86Box SDL2::SDL2)
else()
target_link_libraries(86Box ${SDL2_LIBRARIES})
endif()
target_sources(plat PRIVATE sdl_joystick.c)
endif()

View File

@@ -18,8 +18,6 @@
#ifndef QT_VMMANAGER_MAIN_H
#define QT_VMMANAGER_MAIN_H
#include "qt_updatecheck.hpp"
#include <QWidget>
#include "qt_vmmanager_model.hpp"
#include "qt_vmmanager_details.hpp"
@@ -31,6 +29,9 @@ extern "C" {
#include <86box/86box.h> // for vmm_path
}
#if EMU_BUILD_NUM != 0
# include "qt_updatecheck.hpp"
#endif
QT_BEGIN_NAMESPACE
namespace Ui { class VMManagerMain; }

View File

@@ -19,7 +19,9 @@
#include "qt_vmmanager_main.hpp"
#include "qt_vmmanager_preferences.hpp"
#include "ui_qt_vmmanager_mainwindow.h"
#include "qt_updatecheckdialog.hpp"
#if EMU_BUILD_NUM != 0
# include "qt_updatecheckdialog.hpp"
#endif
#include <QLineEdit>
#include <QStringListModel>
@@ -171,16 +173,18 @@ VMManagerMainWindow::setStatusRight(const QString &text) const
statusRight->setText(text);
}
#if EMU_BUILD_NUM != 0
void
VMManagerMainWindow::checkForUpdatesTriggered()
{
auto updateChannel = UpdateCheck::UpdateChannel::CI;
#ifdef RELEASE_BUILD
# ifdef RELEASE_BUILD
updateChannel = UpdateCheck::UpdateChannel::Stable;
#endif
# endif
const auto updateCheck = new UpdateCheckDialog(updateChannel);
updateCheck->exec();
}
#endif
void VMManagerMainWindow::on_actionExit_triggered()
{

View File

@@ -50,7 +50,9 @@ public slots:
private slots:
void vmmSelectionChanged(const QModelIndex &currentSelection, QProcess::ProcessState processState) const;
void preferencesTriggered();
#if EMU_BUILD_NUM != 0
static void checkForUpdatesTriggered();
#endif
void on_actionExit_triggered();

View File

@@ -32,6 +32,16 @@ set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)
target_link_libraries(86Box Threads::Threads)
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
if(STATIC_BUILD AND TARGET SDL2::SDL2-static)
target_link_libraries(86Box SDL2::SDL2-static)
elseif(TARGET SDL2::SDL2)
target_link_libraries(86Box SDL2::SDL2)
else()
target_link_libraries(86Box ${SDL2_LIBRARIES})
endif()
add_library(ui OBJECT
unix_sdl.c
unix_cdrom.c