reorganise and cleanup build system

it's still not good, but better than before
This commit is contained in:
RSDuck 2022-10-12 23:48:05 +02:00
parent dbd75f8ae4
commit 9a6cbc98c3
37 changed files with 51 additions and 43 deletions

View File

@ -101,13 +101,6 @@ endif()
option(BUILD_QT_SDL "Build Qt/SDL frontend" ON) option(BUILD_QT_SDL "Build Qt/SDL frontend" ON)
find_package(ECM REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH "${ECM_MODULE_PATH}")
find_package(X11 REQUIRED)
find_package(EGL REQUIRED)
find_package(Wayland REQUIRED Client)
add_subdirectory(src) add_subdirectory(src)
if (BUILD_QT_SDL) if (BUILD_QT_SDL)

View File

@ -114,39 +114,6 @@ if (MATH_LIBRARY)
target_link_libraries(core PRIVATE ${MATH_LIBRARY}) target_link_libraries(core PRIVATE ${MATH_LIBRARY})
endif() endif()
if (ENABLE_OGLRENDERER)
target_sources(core PRIVATE
glad/glad.c
duckstation/gl/context.cpp)
if (WIN32)
target_link_libraries(core PUBLIC opengl32)
target_sources(core PRIVATE
# the context stuff would probably be better in the frontend?
duckstation/gl/context_wgl.cpp
glad/glad_wgl.c)
else()
target_sources(core PRIVATE
duckstation/gl/context_egl.cpp
duckstation/gl/context_egl_x11.cpp
duckstation/gl/context_glx.cpp
duckstation/gl/context_egl_wayland.cpp
duckstation/gl/x11_window.cpp
glad/glad_egl.c
glad/glad_glx.c)
message("${X11_FOUND}")
message("${X11_LIBRARIES}")
target_link_libraries(core PRIVATE "${X11_LIBRARIES}" "${EGL_LIBRARIES}")
target_include_directories(core PRIVATE "${X11_INCLUDE_DIR}")
endif()
target_compile_definitions(core PUBLIC OGLRENDERER_ENABLED)
endif()
if (ENABLE_JIT) if (ENABLE_JIT)
target_compile_definitions(core PUBLIC JIT_ENABLED) target_compile_definitions(core PUBLIC JIT_ENABLED)
@ -156,6 +123,10 @@ if (ENABLE_JIT)
endif() endif()
endif() endif()
if (ENABLE_OPENGLRENDERER)
target_compile_definitions(core PUBLIC OGLRENDERER_ENABLED)
endif()
if (WIN32) if (WIN32)
target_link_libraries(core PRIVATE ole32 comctl32 ws2_32) target_link_libraries(core PRIVATE ole32 comctl32 ws2_32)
elseif(NOT APPLE) elseif(NOT APPLE)

View File

@ -23,6 +23,7 @@
#include "NDS.h" #include "NDS.h"
#include "GPU.h" #include "GPU.h"
#include "GPU3D_OpenGL.h"
#include "OpenGLSupport.h" #include "OpenGLSupport.h"
#include "GPU_OpenGL_shaders.h" #include "GPU_OpenGL_shaders.h"

View File

@ -22,9 +22,8 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "glad/glad.h"
#include "Platform.h" #include "Platform.h"
#include "PlatformOGL.h"
namespace OpenGL namespace OpenGL

9
src/PlatformOGL.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef PLATFORMOGL_H
#define PLATFORMOGL_H
// if you don't wanna use glad for your platform
// add your header here!
#include "frontend/glad/glad.h"
#endif

View File

@ -41,8 +41,11 @@ set(SOURCES_QT_SDL
../FrontendUtil.h ../FrontendUtil.h
../mic_blow.h ../mic_blow.h
../glad/glad.c
../duckstation/gl/context.cpp
${CMAKE_SOURCE_DIR}/res/melon.qrc ${CMAKE_SOURCE_DIR}/res/melon.qrc
) )
if (APPLE) if (APPLE)
option(USE_QT6 "Build using Qt 6 instead of 5" ON) option(USE_QT6 "Build using Qt 6 instead of 5" ON)
@ -83,6 +86,38 @@ add_compile_definitions(ARCHIVE_SUPPORT_ENABLED)
add_executable(melonDS ${SOURCES_QT_SDL}) add_executable(melonDS ${SOURCES_QT_SDL})
if (WIN32)
target_link_libraries(melonDS PUBLIC opengl32)
target_sources(melonDS PRIVATE
# the context stuff would probably be better in the frontend?
../duckstation/gl/context_wgl.cpp
../glad/glad_wgl.c)
else()
# we only need ECM for Wayland
# so we only require it from here
find_package(ECM REQUIRED NO_MODULE)
list(APPEND CMAKE_MODULE_PATH "${ECM_MODULE_PATH}")
find_package(X11 REQUIRED)
find_package(EGL REQUIRED)
find_package(Wayland REQUIRED Client)
target_sources(melonDS PRIVATE
../duckstation/gl/context_egl.cpp
../duckstation/gl/context_egl_x11.cpp
../duckstation/gl/context_glx.cpp
../duckstation/gl/context_egl_wayland.cpp
../duckstation/gl/x11_window.cpp
../glad/glad_egl.c
../glad/glad_glx.c)
target_link_libraries(melonDS PRIVATE "${X11_LIBRARIES}" "${EGL_LIBRARIES}")
target_include_directories(melonDS PRIVATE "${X11_INCLUDE_DIR}")
endif()
if (BUILD_STATIC) if (BUILD_STATIC)
qt_import_plugins(melonDS INCLUDE Qt::QSvgPlugin) qt_import_plugins(melonDS INCLUDE Qt::QSvgPlugin)
target_link_options(melonDS PRIVATE -static) target_link_options(melonDS PRIVATE -static)