pcsx2/cmake/SelectPcsx2Plugins.cmake

315 lines
10 KiB
CMake
Raw Normal View History

#-------------------------------------------------------------------------------
# Dependency message print
#-------------------------------------------------------------------------------
set(msg_dep_common_libs "check these libraries -> wxWidgets (>=3.0), aio")
set(msg_dep_pcsx2 "check these libraries -> wxWidgets (>=3.0), gtk2, zlib (>=1.2.4), pcsx2 common libs")
set(msg_dep_cdvdgiga "check these libraries -> gtk2, libudev")
set(msg_dep_zerogs "check these libraries -> glew, opengl, X11, nvidia-cg-toolkit (>=2.1)")
set(msg_dep_gsdx "check these libraries -> opengl, png (>=1.2), zlib (>=1.2.4), X11, liblzma")
set(msg_dep_onepad "check these libraries -> sdl2, X11, gtk2")
set(msg_dep_spu2x "check these libraries -> soundtouch (>=1.5), alsa, portaudio (>=1.9), sdl (>=1.2) pcsx2 common libs")
set(msg_dep_zerospu2 "check these libraries -> soundtouch (>=1.5), alsa")
set(msg_dep_dev "check these libraries -> gtk2, pcap, libxml2")
if(GLSL_API)
set(msg_dep_zzogl "check these libraries -> glew, jpeg (>=6.2), opengl, X11, pcsx2 common libs")
else(GLSL_API)
set(msg_dep_zzogl "check these libraries -> glew, jpeg (>=6.2), opengl, X11, nvidia-cg-toolkit (>=2.1), pcsx2 common libs")
endif()
macro(print_dep str dep)
if (PACKAGE_MODE)
message(FATAL_ERROR "${str}:${dep}")
else()
message(STATUS "${str}:${dep}")
endif()
endmacro(print_dep)
#-------------------------------------------------------------------------------
# Pcsx2 core & common libs
#-------------------------------------------------------------------------------
# Check for additional dependencies.
# If all dependencies are available, including OS, build it
#-------------------------------------------------------------------------------
if (GTK2_FOUND OR GTK3_FOUND)
set(GTKn_FOUND TRUE)
elseif(APPLE) # Not we have but that we don't change all if(gtkn) entries
set(GTKn_FOUND TRUE)
else()
set(GTKn_FOUND FALSE)
endif()
if(SDL_FOUND OR SDL2_FOUND)
set(SDLn_FOUND TRUE)
else()
set(SDLn_FOUND FALSE)
endif()
#---------------------------------------
# Common libs
# requires: -wx
#---------------------------------------
if(wxWidgets_FOUND)
set(common_libs TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/common/src")
set(common_libs FALSE)
else()
set(common_libs FALSE)
print_dep("Skip build of common libraries: missing dependencies" "${msg_dep_common_libs}")
endif()
#---------------------------------------
# Pcsx2 core
# requires: -wx
# -gtk2 (linux)
# -zlib
# -common_libs
# -aio
#---------------------------------------
# Common dependancy
if(wxWidgets_FOUND AND ZLIB_FOUND AND common_libs AND NOT (Linux AND NOT AIO_FOUND))
set(pcsx2_core TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/pcsx2")
set(pcsx2_core FALSE)
else()
set(pcsx2_core FALSE)
print_dep("Skip build of pcsx2 core: missing dependencies" "${msg_dep_pcsx2}")
endif()
# Linux, BSD, use gtk2, but not OSX
if(UNIX AND pcsx2_core AND NOT GTKn_FOUND AND NOT APPLE)
set(pcsx2_core FALSE)
print_dep("Skip build of pcsx2 core: missing dependencies" "${msg_dep_pcsx2}")
endif()
#-------------------------------------------------------------------------------
# Plugins
#-------------------------------------------------------------------------------
# Check all plugins for additional dependencies.
# If all dependencies of a plugin are available, including OS, the plugin will
# be build.
#-------------------------------------------------------------------------------
#---------------------------------------
# CDVDnull
#---------------------------------------
if(GTKn_FOUND)
set(CDVDnull TRUE)
endif()
#---------------------------------------
#---------------------------------------
# cdvdGigaherz
#---------------------------------------
if(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/cdvdGigaherz" OR NOT Linux)
set(cdvdGigaherz FALSE)
elseif(Linux AND GTKn_FOUND AND LIBUDEV_FOUND)
set(cdvdGigaherz TRUE)
else()
set(cdvdGigaherz FALSE)
print_dep("Skip build of cdvdGigaherz: missing dependencies" "${msg_dep_cdvdgiga}")
endif()
#---------------------------------------
#---------------------------------------
# dev9null
#---------------------------------------
if(GTKn_FOUND)
set(dev9null TRUE)
endif()
#---------------------------------------
# dev9ghzdrk
#---------------------------------------
2019-08-23 22:31:46 +00:00
if(NOT DISABLE_DEV9GHZDRK)
if(GTKn_FOUND AND PCAP_FOUND AND LIBXML2_FOUND)
set(dev9ghzdrk TRUE)
list(APPEND CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH}/macros)
include(GlibCompileResourcesSupport)
else()
set(dev9ghzdrk FALSE)
print_dep("Skip build of dev9ghzdrk: missing dependencies" "${msg_dep_dev}")
endif()
2019-08-23 22:31:46 +00:00
endif()
#---------------------------------------
#---------------------------------------
# FWnull
#---------------------------------------
if(GTKn_FOUND)
set(FWnull TRUE)
endif()
#---------------------------------------
#---------------------------------------
# GSnull
#---------------------------------------
if(GTKn_FOUND AND EXTRA_PLUGINS)
set(GSnull TRUE)
endif()
#---------------------------------------
#---------------------------------------
# GSdx
#---------------------------------------
# requires: -OpenGL
# -PNG
# -X11
# -zlib
#---------------------------------------
if(OPENGL_FOUND AND X11_FOUND AND GTKn_FOUND AND ZLIB_FOUND AND PNG_FOUND AND FREETYPE_FOUND AND LIBLZMA_FOUND AND ((EGL_FOUND AND X11_XCB_FOUND) OR NOT EGL_API))
set(GSdx TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/GSdx")
set(GSdx FALSE)
else()
set(GSdx FALSE)
print_dep("Skip build of GSdx: missing dependencies" "${msg_dep_gsdx}")
endif()
#---------------------------------------
#---------------------------------------
# zerogs
#---------------------------------------
# requires: -GLEW
# -OpenGL
# -X11
# -CG
#---------------------------------------
if(EXTRA_PLUGINS)
if(GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND CG_FOUND)
set(zerogs TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/zerogs")
set(zerogs FALSE)
else()
set(zerogs FALSE)
print_dep("Skip build of zerogs: missing dependencies" "${msg_dep_zerogs}")
endif()
endif()
#---------------------------------------
#---------------------------------------
# zzogl-pg
#---------------------------------------
# requires: -GLEW
# -OpenGL
# -X11
# -CG (only with cg build)
# -JPEG
# -common_libs
#---------------------------------------
if(EXTRA_PLUGINS)
if((GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND JPEG_FOUND AND common_libs AND GTKn_FOUND) AND (CG_FOUND OR GLSL_API))
set(zzogl TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/zzogl-pg")
set(zzogl FALSE)
else()
set(zzogl FALSE)
print_dep("Skip build of zzogl: missing dependencies" "${msg_dep_zzogl}")
endif()
endif()
#---------------------------------------
#---------------------------------------
# PadNull
#---------------------------------------
if(GTKn_FOUND AND EXTRA_PLUGINS)
set(PadNull TRUE)
endif()
#---------------------------------------
cmake: enable lilypad I manage to have x/start button working with 0/1 key. Here the reference configuration. [General\ Settings] Force\ Cursor\ Hide=0 Mouse\ Unfocus=0 Background=0 Multiple\ Bindings=0 DirectInput\ Game\ Devices=0 XInput=0 DualShock\ 3=0 Multitap\ 1=0 Multitap\ 2=0 Escape\ Fullscreen\ Hack=0 Disable\ Screen\ Saver=0 Logging=0 Save\ State\ in\ Title=0 GH2=0 Turbo\ Key\ Hack=0 Vista\ Volume=0 Close\ Hacks=0 Keyboard\ Mode=16 Mouse\ Mode=0 Volume=0 [Pad\ 0\ 0] Mode=1 Auto\ Analog=0 [Pad\ 0\ 1] Mode=1 Auto\ Analog=0 [Pad\ 0\ 2] Mode=1 Auto\ Analog=0 [Pad\ 0\ 3] Mode=1 Auto\ Analog=0 [Pad\ 1\ 0] Mode=1 Auto\ Analog=0 [Pad\ 1\ 1] Mode=1 Auto\ Analog=0 [Pad\ 1\ 2] Mode=1 Auto\ Analog=0 [Pad\ 1\ 3] Mode=1 Auto\ Analog=0 [Device\ 0] Display\ Name=displayName Instance\ ID=instanceID Product\ ID=deviceID API=16 Type=1 Binding 0=0x00040030, 0, 31, 65536, 0, 0, 0 Binding 1=0x00040031, 0, 19, 65536, 0, 0, 0 Binding 2=0x00040002, 0, 50, 65536, 0, 0, 0 Binding 3=0x00040003, 0, 51, 65536, 0, 0, 0 Binding 4=0x00040004, 0, 52, 65536, 0, 0, 0 Binding 5=0x00040005, 0, 53, 65536, 0, 0, 0 Binding 6=0x00040006, 0, 54, 65536, 0, 0, 0 Binding 7=0x00040007, 0, 55, 65536, 0, 0, 0 Binding 8=0x00040008, 0, 56, 65536, 0, 0, 0 Binding 9=0x00040009, 0, 57, 65536, 0, 0, 0 Binding 10=0x0004000C, 0, 58, 65536, 0, 0, 0 Binding 11=0x0004000D, 0, 59, 65536, 0, 0, 0 Binding 12=0x0004000E, 0, 60, 65536, 0, 0, 0 Binding 13=0x0004000F, 0, 61, 65536, 0, 0, 0 Binding 14=0x00200010, 0, 62, 65536, 0, 0, 1 Binding 15=0x00200011, 0, 63, 65536, 0, 0, 1 Binding 16=0x01020012, 0, 33, 65536, 0, 0, 13172 Binding 17=0x02020012, 0, 35, 65536, 0, 0, 13172 Binding 18=0x02020014, 0, 39, 65536, 0, 0, 13172 Binding 19=0x02020015, 0, 38, 65536, 0, 0, 13172
2015-01-24 22:14:35 +00:00
#---------------------------------------
# LilyPad
# requires: -X11
#---------------------------------------
# Not ready to be packaged
if(EXTRA_PLUGINS OR NOT PACKAGE_MODE)
2016-06-19 07:49:21 +00:00
if(wxWidgets_FOUND AND Linux AND GTKn_FOUND AND X11_FOUND)
set(LilyPad TRUE)
endif()
cmake: enable lilypad I manage to have x/start button working with 0/1 key. Here the reference configuration. [General\ Settings] Force\ Cursor\ Hide=0 Mouse\ Unfocus=0 Background=0 Multiple\ Bindings=0 DirectInput\ Game\ Devices=0 XInput=0 DualShock\ 3=0 Multitap\ 1=0 Multitap\ 2=0 Escape\ Fullscreen\ Hack=0 Disable\ Screen\ Saver=0 Logging=0 Save\ State\ in\ Title=0 GH2=0 Turbo\ Key\ Hack=0 Vista\ Volume=0 Close\ Hacks=0 Keyboard\ Mode=16 Mouse\ Mode=0 Volume=0 [Pad\ 0\ 0] Mode=1 Auto\ Analog=0 [Pad\ 0\ 1] Mode=1 Auto\ Analog=0 [Pad\ 0\ 2] Mode=1 Auto\ Analog=0 [Pad\ 0\ 3] Mode=1 Auto\ Analog=0 [Pad\ 1\ 0] Mode=1 Auto\ Analog=0 [Pad\ 1\ 1] Mode=1 Auto\ Analog=0 [Pad\ 1\ 2] Mode=1 Auto\ Analog=0 [Pad\ 1\ 3] Mode=1 Auto\ Analog=0 [Device\ 0] Display\ Name=displayName Instance\ ID=instanceID Product\ ID=deviceID API=16 Type=1 Binding 0=0x00040030, 0, 31, 65536, 0, 0, 0 Binding 1=0x00040031, 0, 19, 65536, 0, 0, 0 Binding 2=0x00040002, 0, 50, 65536, 0, 0, 0 Binding 3=0x00040003, 0, 51, 65536, 0, 0, 0 Binding 4=0x00040004, 0, 52, 65536, 0, 0, 0 Binding 5=0x00040005, 0, 53, 65536, 0, 0, 0 Binding 6=0x00040006, 0, 54, 65536, 0, 0, 0 Binding 7=0x00040007, 0, 55, 65536, 0, 0, 0 Binding 8=0x00040008, 0, 56, 65536, 0, 0, 0 Binding 9=0x00040009, 0, 57, 65536, 0, 0, 0 Binding 10=0x0004000C, 0, 58, 65536, 0, 0, 0 Binding 11=0x0004000D, 0, 59, 65536, 0, 0, 0 Binding 12=0x0004000E, 0, 60, 65536, 0, 0, 0 Binding 13=0x0004000F, 0, 61, 65536, 0, 0, 0 Binding 14=0x00200010, 0, 62, 65536, 0, 0, 1 Binding 15=0x00200011, 0, 63, 65536, 0, 0, 1 Binding 16=0x01020012, 0, 33, 65536, 0, 0, 13172 Binding 17=0x02020012, 0, 35, 65536, 0, 0, 13172 Binding 18=0x02020014, 0, 39, 65536, 0, 0, 13172 Binding 19=0x02020015, 0, 38, 65536, 0, 0, 13172
2015-01-24 22:14:35 +00:00
endif()
#---------------------------------------
#---------------------------------------
# onepad
#---------------------------------------
# requires: -SDL2
2015-01-24 22:15:34 +00:00
# -X11
#---------------------------------------
if(wxWidgets_FOUND AND GTKn_FOUND AND SDL2_FOUND AND X11_FOUND)
set(onepad TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/onepad")
set(onepad FALSE)
else()
set(onepad FALSE)
print_dep("Skip build of onepad: missing dependencies" "${msg_dep_onepad}")
endif()
# old version of the plugin that still supports SDL1
if(wxWidgets_FOUND AND GTKn_FOUND AND SDLn_FOUND AND X11_FOUND)
set(onepad_legacy TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/onepad_legacy")
set(onepad_legacy FALSE)
else()
set(onepad_legacy FALSE)
print_dep("Skip build of onepad_legacy: missing dependencies" "${msg_dep_onepad}")
endif()
#---------------------------------------
#---------------------------------------
# SPU2null
#---------------------------------------
if(GTKn_FOUND AND EXTRA_PLUGINS)
set(SPU2null TRUE)
endif()
#---------------------------------------
#---------------------------------------
# spu2-x
#---------------------------------------
# requires: -SoundTouch
# -ALSA
# -Portaudio
# -SDL
# -common_libs
#---------------------------------------
2016-05-01 09:14:44 +00:00
if((PORTAUDIO_FOUND AND SOUNDTOUCH_FOUND AND SDLn_FOUND AND common_libs)
AND ((Linux AND ALSA_FOUND) OR (UNIX AND NOT Linux)))
set(spu2-x TRUE)
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/spu2-x")
set(spu2-x FALSE)
else()
set(spu2-x FALSE)
print_dep("Skip build of spu2-x: missing dependencies" "${msg_dep_spu2x}")
endif()
#---------------------------------------
#---------------------------------------
# zerospu2
#---------------------------------------
# requires: -SoundTouch
# -ALSA
# -PortAudio
#---------------------------------------
if(EXTRA_PLUGINS)
if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/zerospu2" AND SOUNDTOUCH_FOUND AND ALSA_FOUND)
set(zerospu2 TRUE)
# Comment the next line, if you want to compile zerospu2
set(zerospu2 FALSE)
message(STATUS "Don't build zerospu2. It is superceded by spu2x")
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/zerospu2")
set(zerospu2 FALSE)
else()
set(zerospu2 FALSE)
print_dep("Skip build of zerospu2: missing dependencies" "${msg_dep_zerospu2}")
endif()
endif()
#---------------------------------------
#---------------------------------------
# USBnull
#---------------------------------------
if(GTKn_FOUND)
set(USBnull TRUE)
endif()
#---------------------------------------
#-------------------------------------------------------------------------------