2010-06-21 11:05:30 +00:00
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
# Dependency message print
|
|
|
|
#-------------------------------------------------------------------------------
|
2017-04-22 10:47:02 +00:00
|
|
|
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")
|
2016-10-26 17:18:42 +00:00
|
|
|
set(msg_dep_cdvdgiga "check these libraries -> gtk2, libudev")
|
2017-05-08 07:37:13 +00:00
|
|
|
set(msg_dep_gsdx "check these libraries -> opengl, png (>=1.2), zlib (>=1.2.4), X11, liblzma")
|
2017-04-22 10:47:02 +00:00
|
|
|
set(msg_dep_onepad "check these libraries -> sdl2, X11, gtk2")
|
2020-05-07 15:31:48 +00:00
|
|
|
set(msg_dep_spu2x "check these libraries -> soundtouch (>=1.5), alsa, portaudio (optional, >=1.9), sdl (>=1.2), pcsx2 common libs")
|
2019-07-05 02:49:11 +00:00
|
|
|
set(msg_dep_dev "check these libraries -> gtk2, pcap, libxml2")
|
2010-06-21 11:05:30 +00:00
|
|
|
|
2015-08-10 06:49:55 +00:00
|
|
|
macro(print_dep str dep)
|
|
|
|
if (PACKAGE_MODE)
|
|
|
|
message(FATAL_ERROR "${str}:${dep}")
|
|
|
|
else()
|
|
|
|
message(STATUS "${str}:${dep}")
|
|
|
|
endif()
|
|
|
|
endmacro(print_dep)
|
|
|
|
|
2010-06-04 17:17:55 +00:00
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
# Pcsx2 core & common libs
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
# Check for additional dependencies.
|
|
|
|
# If all dependencies are available, including OS, build it
|
|
|
|
#-------------------------------------------------------------------------------
|
2014-12-22 18:31:32 +00:00
|
|
|
if (GTK2_FOUND OR GTK3_FOUND)
|
|
|
|
set(GTKn_FOUND TRUE)
|
2015-11-17 19:15:58 +00:00
|
|
|
elseif(APPLE) # Not we have but that we don't change all if(gtkn) entries
|
|
|
|
set(GTKn_FOUND TRUE)
|
2014-12-22 18:31:32 +00:00
|
|
|
else()
|
|
|
|
set(GTKn_FOUND FALSE)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(SDL_FOUND OR SDL2_FOUND)
|
|
|
|
set(SDLn_FOUND TRUE)
|
|
|
|
else()
|
|
|
|
set(SDLn_FOUND FALSE)
|
|
|
|
endif()
|
2010-06-04 17:17:55 +00:00
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# Common libs
|
|
|
|
# requires: -wx
|
|
|
|
#---------------------------------------
|
2014-07-20 15:05:16 +00:00
|
|
|
if(wxWidgets_FOUND)
|
2010-06-04 17:17:55 +00:00
|
|
|
set(common_libs TRUE)
|
2014-03-30 14:28:59 +00:00
|
|
|
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/common/src")
|
2012-05-07 16:29:06 +00:00
|
|
|
set(common_libs FALSE)
|
2014-04-17 18:24:12 +00:00
|
|
|
else()
|
2010-06-04 17:17:55 +00:00
|
|
|
set(common_libs FALSE)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of common libraries: missing dependencies" "${msg_dep_common_libs}")
|
2014-04-17 18:24:12 +00:00
|
|
|
endif()
|
2010-06-04 17:17:55 +00:00
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# Pcsx2 core
|
|
|
|
# requires: -wx
|
|
|
|
# -gtk2 (linux)
|
|
|
|
# -zlib
|
|
|
|
# -common_libs
|
2012-12-13 16:11:53 +00:00
|
|
|
# -aio
|
2010-06-04 17:17:55 +00:00
|
|
|
#---------------------------------------
|
|
|
|
# Common dependancy
|
2014-12-28 06:41:57 +00:00
|
|
|
if(wxWidgets_FOUND AND ZLIB_FOUND AND common_libs AND NOT (Linux AND NOT AIO_FOUND))
|
2010-06-04 17:17:55 +00:00
|
|
|
set(pcsx2_core TRUE)
|
2014-03-30 14:28:59 +00:00
|
|
|
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/pcsx2")
|
2012-05-07 16:29:06 +00:00
|
|
|
set(pcsx2_core FALSE)
|
2012-12-13 16:11:53 +00:00
|
|
|
else()
|
2010-06-04 17:17:55 +00:00
|
|
|
set(pcsx2_core FALSE)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of pcsx2 core: missing dependencies" "${msg_dep_pcsx2}")
|
2012-12-13 16:11:53 +00:00
|
|
|
endif()
|
2015-11-17 19:09:33 +00:00
|
|
|
# Linux, BSD, use gtk2, but not OSX
|
|
|
|
if(UNIX AND pcsx2_core AND NOT GTKn_FOUND AND NOT APPLE)
|
2010-06-04 17:17:55 +00:00
|
|
|
set(pcsx2_core FALSE)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of pcsx2 core: missing dependencies" "${msg_dep_pcsx2}")
|
2012-12-13 16:11:53 +00:00
|
|
|
endif()
|
2010-06-04 17:17:55 +00:00
|
|
|
|
|
|
|
|
2010-06-03 17:28:20 +00:00
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
# Plugins
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
# Check all plugins for additional dependencies.
|
|
|
|
# If all dependencies of a plugin are available, including OS, the plugin will
|
|
|
|
# be build.
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# CDVDnull
|
|
|
|
#---------------------------------------
|
2014-12-07 20:06:21 +00:00
|
|
|
if(GTKn_FOUND)
|
2011-10-31 10:25:24 +00:00
|
|
|
set(CDVDnull TRUE)
|
2014-04-17 18:24:12 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
2016-10-26 17:18:42 +00:00
|
|
|
#---------------------------------------
|
|
|
|
# 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)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of cdvdGigaherz: missing dependencies" "${msg_dep_cdvdgiga}")
|
2016-10-26 17:18:42 +00:00
|
|
|
endif()
|
|
|
|
#---------------------------------------
|
|
|
|
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
# dev9null
|
|
|
|
#---------------------------------------
|
2014-12-07 20:06:21 +00:00
|
|
|
if(GTKn_FOUND)
|
2011-10-31 10:25:24 +00:00
|
|
|
set(dev9null TRUE)
|
2014-04-17 18:24:12 +00:00
|
|
|
endif()
|
2019-07-05 02:49:11 +00:00
|
|
|
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
2018-10-03 04:37:34 +00:00
|
|
|
# dev9ghzdrk
|
|
|
|
#---------------------------------------
|
2019-08-23 22:31:46 +00:00
|
|
|
if(NOT DISABLE_DEV9GHZDRK)
|
2018-10-03 04:37:34 +00:00
|
|
|
if(GTKn_FOUND AND PCAP_FOUND AND LIBXML2_FOUND)
|
|
|
|
set(dev9ghzdrk TRUE)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH
|
|
|
|
${CMAKE_MODULE_PATH}/macros)
|
2019-07-05 02:49:11 +00:00
|
|
|
include(GlibCompileResourcesSupport)
|
|
|
|
else()
|
|
|
|
set(dev9ghzdrk FALSE)
|
|
|
|
print_dep("Skip build of dev9ghzdrk: missing dependencies" "${msg_dep_dev}")
|
2018-10-03 04:37:34 +00:00
|
|
|
endif()
|
2019-08-23 22:31:46 +00:00
|
|
|
endif()
|
2018-10-03 04:37:34 +00:00
|
|
|
#---------------------------------------
|
2010-06-03 17:28:20 +00:00
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# FWnull
|
|
|
|
#---------------------------------------
|
2014-12-07 20:06:21 +00:00
|
|
|
if(GTKn_FOUND)
|
2011-10-31 10:25:24 +00:00
|
|
|
set(FWnull TRUE)
|
2014-04-17 18:24:12 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# GSnull
|
|
|
|
#---------------------------------------
|
2014-12-07 20:06:21 +00:00
|
|
|
if(GTKn_FOUND AND EXTRA_PLUGINS)
|
2011-10-31 10:25:24 +00:00
|
|
|
set(GSnull TRUE)
|
2014-04-10 07:20:42 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
2011-02-20 17:01:03 +00:00
|
|
|
#---------------------------------------
|
|
|
|
# GSdx
|
|
|
|
#---------------------------------------
|
|
|
|
# requires: -OpenGL
|
2016-02-21 09:59:49 +00:00
|
|
|
# -PNG
|
|
|
|
# -X11
|
|
|
|
# -zlib
|
2011-02-20 17:01:03 +00:00
|
|
|
#---------------------------------------
|
2020-08-22 03:41:45 +00:00
|
|
|
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)
|
2011-02-20 17:01:03 +00:00
|
|
|
set(GSdx TRUE)
|
2014-03-30 14:28:59 +00:00
|
|
|
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/GSdx")
|
2015-05-16 10:33:58 +00:00
|
|
|
set(GSdx FALSE)
|
2014-04-17 18:24:12 +00:00
|
|
|
else()
|
2015-05-16 10:33:58 +00:00
|
|
|
set(GSdx FALSE)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of GSdx: missing dependencies" "${msg_dep_gsdx}")
|
2014-04-17 18:24:12 +00:00
|
|
|
endif()
|
2011-02-20 17:01:03 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
# PadNull
|
|
|
|
#---------------------------------------
|
2014-12-07 20:06:21 +00:00
|
|
|
if(GTKn_FOUND AND EXTRA_PLUGINS)
|
2011-10-31 10:25:24 +00:00
|
|
|
set(PadNull TRUE)
|
2014-04-10 07:20:42 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
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
|
|
|
|
#---------------------------------------
|
2015-08-10 06:49:55 +00:00
|
|
|
# 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)
|
2015-08-10 06:49:55 +00:00
|
|
|
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()
|
|
|
|
#---------------------------------------
|
|
|
|
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
# onepad
|
|
|
|
#---------------------------------------
|
2017-04-15 12:57:00 +00:00
|
|
|
# requires: -SDL2
|
2015-01-24 22:15:34 +00:00
|
|
|
# -X11
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
2017-04-15 12:57:00 +00:00
|
|
|
if(wxWidgets_FOUND AND GTKn_FOUND AND SDL2_FOUND AND X11_FOUND)
|
2010-06-03 17:28:20 +00:00
|
|
|
set(onepad TRUE)
|
2014-03-30 14:28:59 +00:00
|
|
|
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/onepad")
|
2012-05-07 16:29:06 +00:00
|
|
|
set(onepad FALSE)
|
2014-04-17 18:24:12 +00:00
|
|
|
else()
|
2010-06-03 17:28:20 +00:00
|
|
|
set(onepad FALSE)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of onepad: missing dependencies" "${msg_dep_onepad}")
|
2014-04-17 18:24:12 +00:00
|
|
|
endif()
|
2017-04-15 12:57:00 +00:00
|
|
|
|
2019-07-05 02:49:11 +00:00
|
|
|
# old version of the plugin that still supports SDL1
|
2020-05-24 06:19:47 +00:00
|
|
|
# Was never ported to macOS
|
|
|
|
if(wxWidgets_FOUND AND GTKn_FOUND AND SDLn_FOUND AND X11_FOUND AND NOT APPLE)
|
2017-04-15 12:57:00 +00:00
|
|
|
set(onepad_legacy TRUE)
|
2020-05-24 06:19:47 +00:00
|
|
|
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/onepad_legacy" OR APPLE)
|
2017-04-15 12:57:00 +00:00
|
|
|
set(onepad_legacy FALSE)
|
|
|
|
else()
|
|
|
|
set(onepad_legacy FALSE)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of onepad_legacy: missing dependencies" "${msg_dep_onepad}")
|
2017-04-15 12:57:00 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# SPU2null
|
|
|
|
#---------------------------------------
|
2014-12-07 20:06:21 +00:00
|
|
|
if(GTKn_FOUND AND EXTRA_PLUGINS)
|
2011-10-31 10:25:24 +00:00
|
|
|
set(SPU2null TRUE)
|
2014-04-10 07:20:42 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# spu2-x
|
|
|
|
#---------------------------------------
|
|
|
|
# requires: -SoundTouch
|
2020-05-07 15:31:48 +00:00
|
|
|
# -ALSA
|
2013-10-05 10:37:48 +00:00
|
|
|
# -SDL
|
2010-06-04 17:17:55 +00:00
|
|
|
# -common_libs
|
2020-05-07 15:31:48 +00:00
|
|
|
#
|
|
|
|
# optional: -Portaudio
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
2020-05-07 15:31:48 +00:00
|
|
|
if((SOUNDTOUCH_FOUND AND SDLn_FOUND AND common_libs)
|
2016-05-01 09:14:44 +00:00
|
|
|
AND ((Linux AND ALSA_FOUND) OR (UNIX AND NOT Linux)))
|
2010-06-03 17:28:20 +00:00
|
|
|
set(spu2-x TRUE)
|
2014-03-30 14:28:59 +00:00
|
|
|
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/spu2-x")
|
2012-05-07 16:29:06 +00:00
|
|
|
set(spu2-x FALSE)
|
2013-10-05 10:37:48 +00:00
|
|
|
else()
|
2010-06-03 17:28:20 +00:00
|
|
|
set(spu2-x FALSE)
|
2019-07-05 02:49:11 +00:00
|
|
|
print_dep("Skip build of spu2-x: missing dependencies" "${msg_dep_spu2x}")
|
2013-10-05 10:37:48 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
|
|
|
|
|
|
|
#---------------------------------------
|
|
|
|
# USBnull
|
|
|
|
#---------------------------------------
|
2014-12-07 20:06:21 +00:00
|
|
|
if(GTKn_FOUND)
|
2011-10-31 10:25:24 +00:00
|
|
|
set(USBnull TRUE)
|
2014-04-17 18:24:12 +00:00
|
|
|
endif()
|
2010-06-03 17:28:20 +00:00
|
|
|
#---------------------------------------
|
2020-05-07 15:31:48 +00:00
|
|
|
#-------------------------------------------------------------------------------
|