diff --git a/srcpkgs/pcsx2/patches/wxwidgets-sdl-check.patch b/srcpkgs/pcsx2/patches/wxwidgets-sdl-check.patch new file mode 100644 index 00000000000..679a437247a --- /dev/null +++ b/srcpkgs/pcsx2/patches/wxwidgets-sdl-check.patch @@ -0,0 +1,74 @@ +From 41c49faa81d4970e903e7d85616774c979e103a5 Mon Sep 17 00:00:00 2001 +From: Jonathan Li +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 + +-#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() + diff --git a/srcpkgs/pcsx2/template b/srcpkgs/pcsx2/template index 2dbc6dfd339..8199ac19f9b 100644 --- a/srcpkgs/pcsx2/template +++ b/srcpkgs/pcsx2/template @@ -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"