pcsx2: build with SDL2, add patch to fix SDL version detection for wxWidgets
This commit is contained in:
parent
54e554ea4d
commit
df1a4d6207
|
@ -0,0 +1,74 @@
|
|||
From 41c49faa81d4970e903e7d85616774c979e103a5 Mon Sep 17 00:00:00 2001
|
||||
From: Jonathan Li <jonathan.li@hotmail.co.uk>
|
||||
Date: Sun, 4 Feb 2018 14:04:17 +0000
|
||||
Subject: [PATCH] cmake: Improve wxWidgets and SDL linkage check
|
||||
|
||||
If wxWidgets is linked to SDL, check what version it's actually linked
|
||||
against instead of assuming it's linked to SDL1.2 (which isn't true on
|
||||
Fedora 27).
|
||||
---
|
||||
cmake/ApiValidation.cmake | 41 ++++++++++++++++++++++++++-------------
|
||||
1 file changed, 28 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/cmake/ApiValidation.cmake b/cmake/ApiValidation.cmake
|
||||
index e7a4f99a7..f93bc67fc 100644
|
||||
--- cmake/ApiValidation.cmake
|
||||
+++ cmake/ApiValidation.cmake
|
||||
@@ -1,9 +1,14 @@
|
||||
set(wx_sdl_c_code "
|
||||
#include <wx/setup.h>
|
||||
|
||||
-#if (wxUSE_LIBSDL != 0)
|
||||
+#if (wxUSE_LIBSDL == 0)
|
||||
#error cmake_WX_SDL
|
||||
#endif
|
||||
+
|
||||
+int main()
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
")
|
||||
|
||||
set(gcc7_mmx_code "
|
||||
@@ -83,19 +88,29 @@ function(WX_vs_SDL)
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/wx_sdl.c" "${wx_sdl_c_code}")
|
||||
enable_language(C)
|
||||
|
||||
- try_run(
|
||||
- run_result_unused
|
||||
- compile_result_unused
|
||||
- "${CMAKE_BINARY_DIR}"
|
||||
- "${CMAKE_BINARY_DIR}/wx_sdl.c"
|
||||
- COMPILE_OUTPUT_VARIABLE OUT
|
||||
- CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${wxWidgets_INCLUDE_DIRS}"
|
||||
- )
|
||||
+ try_compile(
|
||||
+ wx_linked_to_sdl
|
||||
+ "${CMAKE_BINARY_DIR}"
|
||||
+ "${CMAKE_BINARY_DIR}/wx_sdl.c"
|
||||
+ CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${wxWidgets_INCLUDE_DIRS}"
|
||||
+ LINK_LIBRARIES "${wxWidgets_LIBRARIES}"
|
||||
+ COPY_FILE "${CMAKE_BINARY_DIR}/wx_sdl"
|
||||
+ )
|
||||
+
|
||||
+ if (NOT wx_linked_to_sdl)
|
||||
+ return()
|
||||
+ endif()
|
||||
+
|
||||
+ execute_process(
|
||||
+ COMMAND ldd "${CMAKE_BINARY_DIR}/wx_sdl"
|
||||
+ COMMAND grep -c SDL2
|
||||
+ OUTPUT_VARIABLE sdl2_count
|
||||
+ )
|
||||
|
||||
- if (${OUT} MATCHES "cmake_WX_SDL" AND SDL2_API)
|
||||
- message(FATAL_ERROR "WxWidget is linked to SDL (wxUSE_LIBSDL) and it is likely SDL1.2.
|
||||
- Unfortunately you try to build PCSX2 with SDL2 support which is not compatible
|
||||
- Please use -DSDL2_API=FALSE")
|
||||
+ if (SDL2_API AND sdl2_count STREQUAL "0")
|
||||
+ message(FATAL_ERROR "wxWidgets is linked to SDL1.2. Please use -DSDL2_API=FALSE.")
|
||||
+ elseif (NOT SDL2_API AND NOT sdl2_count STREQUAL "0")
|
||||
+ message(FATAL_ERROR "wxWidgets is linked to SDL2. Please use -DSDL2_API=TRUE")
|
||||
endif()
|
||||
endfunction()
|
||||
|
|
@ -5,12 +5,13 @@ nopie=yes
|
|||
|
||||
pkgname=pcsx2
|
||||
version=1.4.0
|
||||
revision=5
|
||||
revision=6
|
||||
build_style=cmake
|
||||
configure_args="-DGLSL_API=1 -DSDL2_API=0 -DPACKAGE_MODE=1 -DREBUILD_SHADER=1 -DXDG_STD=1
|
||||
-DPLUGIN_DIR=/usr/lib32/pcsx2 -DGAMEINDEX_DIR=/usr/share/pcsx2 -DDISABLE_ADVANCE_SIMD=1"
|
||||
-DPLUGIN_DIR=/usr/lib32/pcsx2 -DGAMEINDEX_DIR=/usr/share/pcsx2 -DDISABLE_ADVANCE_SIMD=1
|
||||
-DSDL2_API=TRUE"
|
||||
hostmakedepends="pkg-config sparsehash perl"
|
||||
makedepends="alsa-lib-devel SDL-devel glu-devel glew-devel libaio-devel
|
||||
makedepends="alsa-lib-devel SDL2-devel glu-devel glew-devel libaio-devel
|
||||
libcanberra-devel libjpeg-turbo-devel wxWidgets-devel portaudio-devel soundtouch-devel"
|
||||
depends="desktop-file-utils"
|
||||
short_desc="A Sony PlayStation 2 emulator"
|
||||
|
|
Loading…
Reference in New Issue