diff --git a/cmake/ApiValidation.cmake b/cmake/ApiValidation.cmake index 0e0f7f5e3c..489e1413dd 100644 --- a/cmake/ApiValidation.cmake +++ b/cmake/ApiValidation.cmake @@ -6,14 +6,6 @@ set(wx_sdl_c_code " #endif ") -set(wx_gtk3_c_code " -#include - -#ifdef __WXGTK3__ -#error cmake_WX_GTK3 -#endif -") - function(WX_vs_SDL) file(WRITE "${CMAKE_BINARY_DIR}/wx_sdl.c" "${wx_sdl_c_code}") enable_language(C) @@ -32,41 +24,4 @@ function(WX_vs_SDL) Unfortunately you try to build PCSX2 with SDL2 support which is not compatible Please use -DSDL2_API=FALSE") endif() - -endfunction() - -function(WX_vs_GTK3) - file(WRITE "${CMAKE_BINARY_DIR}/wx_gtk3.c" "${wx_gtk3_c_code}") - enable_language(C) - - try_run( - run_result_unused - compile_result_unused - "${CMAKE_BINARY_DIR}" - "${CMAKE_BINARY_DIR}/wx_gtk3.c" - COMPILE_OUTPUT_VARIABLE OUT - CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${wxWidgets_INCLUDE_DIRS}" - ) - - if (${OUT} MATCHES "cmake_WX_GTK3") - if (NOT GTK3_API) - message(FATAL_ERROR "Your current WxWidget version requires GTK3. Please use -DGTK3_API=TRUE option") - endif() - else() - if (GTK3_API) - message(FATAL_ERROR "Your current WxWidget version doesn't support GTK3. Please use -DGTK3_API=FALSE option") - endif() - endif() - -endfunction() - -function(WX_version) - EXECUTE_PROCESS(COMMAND ${wxWidgets_CONFIG_EXECUTABLE} --version OUTPUT_VARIABLE version) - STRING(STRIP ${version} version) - if (${version} MATCHES "3.0" AND WX28_API) - message(FATAL_ERROR "Mismatch between wx-config version (${version}) and requested WX API (2.8.x)") - endif() - if (${version} MATCHES "2.8" AND NOT WX28_API) - message(FATAL_ERROR "Mismatch between wx-config version (${version}) and requested WX API (3.0.x)") - endif() endfunction() diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake index 8f172386cd..8c8918e72a 100644 --- a/cmake/SearchForStuff.cmake +++ b/cmake/SearchForStuff.cmake @@ -23,28 +23,36 @@ else() set(wxWidgets_CONFIG_OPTIONS --unicode=yes) endif() -# Temprorary help for Arch-based distros. -# They have wx2.8, lib32-wx2.8 and wx3.0 but no lib32-wx3.0. -# wx2.8 => /usr/bin/wx-config-2.8, /usr/bin/wxrc-2.8 -# lib32-wx2.8 => /usr/bin/wx-config32-2.8, /usr/bin/wxrc32-2.8 -# wx3.0 => /usr/bin/wx-config, /usr/bin/wxrc -> /usr/bin/wxrc-3.0 +if(WX28_API) + list(APPEND wxWidgets_CONFIG_OPTIONS --version=2.8) +else() + list(APPEND wxWidgets_CONFIG_OPTIONS --version=3.0) +endif() + +if(GTK3_API) + list(APPEND wxWidgets_CONFIG_OPTIONS --toolkit=gtk3) +else() + list(APPEND wxWidgets_CONFIG_OPTIONS --toolkit=gtk2) +endif() + +# wx2.8 => /usr/bin/wx-config-2.8 +# lib32-wx2.8 => /usr/bin/wx-config32-2.8 +# wx3.0 => /usr/bin/wx-config-3.0 # I'm going to take a wild guess and predict this: -# lib32-wx3.0 => /usr/bin/wx-config32-3.0, /usr/bin/wxrc32-3.0 -# FindwxWidgets only searches for wxrc and wx-config. Therefore only native -# wx3.0 works since everything else has non-standard naming. +# lib32-wx3.0 => /usr/bin/wx-config32-3.0 +# FindwxWidgets only searches for wx-config. if(CMAKE_CROSSCOMPILING) # May need to fix the filenames for lib32-wx3.0. - if(NOT WX28_API AND ${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386" AND EXISTS "/usr/bin/wx-config32-3.0" AND EXISTS "/usr/bin/wxrc32-3.0") + if(NOT WX28_API AND ${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386" AND EXISTS "/usr/bin/wx-config32-3.0") set(wxWidgets_CONFIG_EXECUTABLE "/usr/bin/wx-config32-3.0") - set(wxWidgets_wxrc_EXECUTABLE "/usr/bin/wxrc32-3.0") - elseif(WX28_API AND ${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386" AND EXISTS "/usr/bin/wx-config32-2.8" AND EXISTS "/usr/bin/wxrc32-2.8") + elseif(WX28_API AND ${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386" AND EXISTS "/usr/bin/wx-config32-2.8") set(wxWidgets_CONFIG_EXECUTABLE "/usr/bin/wx-config32-2.8") - set(wxWidgets_wxrc_EXECUTABLE "/usr/bin/wxrc32-2.8") endif() else() - if(WX28_API AND EXISTS "/usr/bin/wx-config-2.8" AND EXISTS "/usr/bin/wxrc-2.8") + if(NOT WX28_API AND EXISTS "/usr/bin/wx-config-3.0") + set(wxWidgets_CONFIG_EXECUTABLE "/usr/bin/wx-config-3.0") + elseif(WX28_API AND EXISTS "/usr/bin/wx-config-2.8") set(wxWidgets_CONFIG_EXECUTABLE "/usr/bin/wx-config-2.8") - set(wxWidgets_wxrc_EXECUTABLE "/usr/bin/wxrc-2.8") endif() endif() @@ -157,5 +165,3 @@ include_directories(${CMAKE_SOURCE_DIR}/common/include #---------------------------------------- include(ApiValidation) WX_vs_SDL() -WX_vs_GTK3() -WX_version()