#ifndef FREERDP_CONFIG_H
#define FREERDP_CONFIG_H

#include <winpr/config.h>

/* Include files */
#cmakedefine FREERDP_HAVE_VALGRIND_MEMCHECK_H

/* Features */
#cmakedefine SWRESAMPLE_FOUND
#cmakedefine AVRESAMPLE_FOUND

/* Options */
/** If set the rdpSettings struct is opaque and internals can only be accessed
 *  through getters/setters
 *
 *  \since version 3.0.0
 */
#cmakedefine WITH_OPAQUE_SETTINGS

#cmakedefine WITH_ADD_PLUGIN_TO_RPATH
#cmakedefine WITH_PROFILER
#cmakedefine WITH_GPROF
#cmakedefine WITH_SIMD
#cmakedefine WITH_AVX2
#cmakedefine WITH_CUPS
#cmakedefine WITH_JPEG
#cmakedefine WITH_WIN8
#cmakedefine WITH_AAD
#cmakedefine WITH_CAIRO
#cmakedefine WITH_SWSCALE
#cmakedefine WITH_SWSCALE_LOADING
#cmakedefine WITH_RDPSND_DSOUND

#cmakedefine WITH_WINMM
#cmakedefine WITH_MACAUDIO
#cmakedefine WITH_OSS
#cmakedefine WITH_ALSA
#cmakedefine WITH_PULSE
#cmakedefine WITH_IOSAUDIO
#cmakedefine WITH_OPENSLES
#cmakedefine WITH_GSM
#cmakedefine WITH_LAME
/** If defined Opus codec support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine WITH_OPUS
#cmakedefine WITH_FAAD2
#cmakedefine WITH_FAAC
#cmakedefine WITH_SOXR
#cmakedefine WITH_GFX_H264
#cmakedefine WITH_OPENH264
#cmakedefine WITH_OPENH264_LOADING
#cmakedefine WITH_VIDEO_FFMPEG
#cmakedefine WITH_DSP_EXPERIMENTAL
#cmakedefine WITH_DSP_FFMPEG
#cmakedefine WITH_OPENCL
#cmakedefine WITH_MEDIA_FOUNDATION
#cmakedefine WITH_MEDIACODEC
#cmakedefine WITH_GFX_AV1

#cmakedefine WITH_VAAPI
#cmakedefine WITH_VIDEOTOOLBOX

#cmakedefine WITH_CHANNELS
#cmakedefine WITH_CLIENT_CHANNELS
#cmakedefine WITH_SERVER_CHANNELS

#cmakedefine WITH_CHANNEL_GFXREDIR
#cmakedefine WITH_CHANNEL_RDPAPPLIST

/* Plugins */
#cmakedefine WITH_RDPDR

/* Channels */
#cmakedefine CHANNEL_AINPUT
#cmakedefine CHANNEL_AINPUT_CLIENT
#cmakedefine CHANNEL_AINPUT_SERVER
#cmakedefine CHANNEL_AUDIN
#cmakedefine CHANNEL_AUDIN_CLIENT
#cmakedefine CHANNEL_AUDIN_SERVER
#cmakedefine CHANNEL_CLIPRDR
#cmakedefine CHANNEL_CLIPRDR_CLIENT
#cmakedefine CHANNEL_CLIPRDR_SERVER
#cmakedefine CHANNEL_DISP
#cmakedefine CHANNEL_DISP_CLIENT
#cmakedefine CHANNEL_DISP_SERVER
#cmakedefine CHANNEL_DRDYNVC
#cmakedefine CHANNEL_DRDYNVC_CLIENT
#cmakedefine CHANNEL_DRDYNVC_SERVER
#cmakedefine CHANNEL_DRIVE
#cmakedefine CHANNEL_DRIVE_CLIENT
#cmakedefine CHANNEL_DRIVE_SERVER

#cmakedefine CHANNEL_ECHO
#cmakedefine CHANNEL_ECHO_CLIENT
#cmakedefine CHANNEL_ECHO_SERVER
#cmakedefine CHANNEL_ENCOMSP
#cmakedefine CHANNEL_ENCOMSP_CLIENT
#cmakedefine CHANNEL_ENCOMSP_SERVER
#cmakedefine CHANNEL_GEOMETRY
#cmakedefine CHANNEL_GEOMETRY_CLIENT
#cmakedefine CHANNEL_GEOMETRY_SERVER
#cmakedefine CHANNEL_GFXREDIR
#cmakedefine CHANNEL_GFXREDIR_CLIENT
#cmakedefine CHANNEL_GFXREDIR_SERVER
/** If defined location channel support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine CHANNEL_LOCATION
/** If defined location client side channel support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine CHANNEL_LOCATION_CLIENT
/** If defined location server side channel support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine CHANNEL_LOCATION_SERVER
#cmakedefine CHANNEL_PARALLEL
#cmakedefine CHANNEL_PARALLEL_CLIENT
#cmakedefine CHANNEL_PARALLEL_SERVER
#cmakedefine CHANNEL_PRINTER
#cmakedefine CHANNEL_PRINTER_CLIENT
#cmakedefine CHANNEL_PRINTER_SERVER
#cmakedefine CHANNEL_RAIL
#cmakedefine CHANNEL_RAIL_CLIENT
#cmakedefine CHANNEL_RAIL_SERVER
#cmakedefine CHANNEL_RDPAPPLIST
#cmakedefine CHANNEL_RDPAPPLIST_CLIENT
#cmakedefine CHANNEL_RDPAPPLIST_SERVER
#cmakedefine CHANNEL_RDPDR
#cmakedefine CHANNEL_RDPDR_CLIENT
#cmakedefine CHANNEL_RDPDR_SERVER
#cmakedefine CHANNEL_RDPECAM
#cmakedefine CHANNEL_RDPECAM_CLIENT
#cmakedefine CHANNEL_RDPECAM_SERVER
#cmakedefine CHANNEL_RDPEAR
#cmakedefine CHANNEL_RDPEAR_CLIENT
#cmakedefine CHANNEL_RDPEAR_SERVER
#cmakedefine CHANNEL_RDPEWA
#cmakedefine CHANNEL_RDPEWA_CLIENT
#cmakedefine CHANNEL_RDPEWA_SERVER
#cmakedefine CHANNEL_RDPEI
#cmakedefine CHANNEL_RDPEI_CLIENT
#cmakedefine CHANNEL_RDPEI_SERVER
#cmakedefine CHANNEL_RDPGFX
#cmakedefine CHANNEL_RDPGFX_CLIENT
#cmakedefine CHANNEL_RDPGFX_SERVER
/** If defined mouse cursor channel support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine CHANNEL_RDPEMSC

/** If defined mouse cursor channel support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine CHANNEL_RDPEMSC_CLIENT

/** If defined mouse cursor channel support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine CHANNEL_RDPEMSC_SERVER
#cmakedefine CHANNEL_RDPSND
#cmakedefine CHANNEL_RDPSND_CLIENT
#cmakedefine CHANNEL_RDPSND_SERVER
#cmakedefine CHANNEL_REMDESK
#cmakedefine CHANNEL_REMDESK_CLIENT
#cmakedefine CHANNEL_REMDESK_SERVER
#cmakedefine CHANNEL_SERIAL
#cmakedefine CHANNEL_SERIAL_CLIENT
#cmakedefine CHANNEL_SERIAL_SERVER
#cmakedefine CHANNEL_SMARTCARD
#cmakedefine CHANNEL_SMARTCARD_CLIENT
#cmakedefine CHANNEL_SMARTCARD_SERVER
#cmakedefine CHANNEL_SSHAGENT
#cmakedefine CHANNEL_SSHAGENT_CLIENT
#cmakedefine CHANNEL_SSHAGENT_SERVER
#cmakedefine CHANNEL_TELEMETRY
#cmakedefine CHANNEL_TELEMETRY_CLIENT
#cmakedefine CHANNEL_TELEMETRY_SERVER
#cmakedefine CHANNEL_TSMF
#cmakedefine CHANNEL_TSMF_CLIENT
#cmakedefine CHANNEL_TSMF_SERVER
#cmakedefine CHANNEL_URBDRC
#cmakedefine CHANNEL_URBDRC_CLIENT
#cmakedefine CHANNEL_URBDRC_SERVER
#cmakedefine CHANNEL_VIDEO
#cmakedefine CHANNEL_VIDEO_CLIENT
#cmakedefine CHANNEL_VIDEO_SERVER

/* Debug */
#cmakedefine WITH_DEBUG_CERTIFICATE
#cmakedefine WITH_DEBUG_CAPABILITIES
#cmakedefine WITH_DEBUG_CHANNELS
#cmakedefine WITH_DEBUG_CLIPRDR
#cmakedefine WITH_DEBUG_CODECS
#cmakedefine WITH_DEBUG_RDPGFX
#cmakedefine WITH_DEBUG_DVC
#cmakedefine WITH_DEBUG_TSMF
#cmakedefine WITH_DEBUG_KBD
#cmakedefine WITH_DEBUG_LICENSE
#cmakedefine WITH_DEBUG_NEGO
#cmakedefine WITH_DEBUG_NLA
#cmakedefine WITH_DEBUG_TSG
#cmakedefine WITH_DEBUG_RAIL
#cmakedefine WITH_DEBUG_RDP
#cmakedefine WITH_DEBUG_REDIR
#cmakedefine WITH_DEBUG_RDPDR
#cmakedefine WITH_DEBUG_RFX
#cmakedefine WITH_DEBUG_SCARD
#cmakedefine WITH_DEBUG_SND
#cmakedefine WITH_DEBUG_SVC
#cmakedefine WITH_DEBUG_RDPEI
#cmakedefine WITH_DEBUG_TIMEZONE
#cmakedefine WITH_DEBUG_URBDRC
#cmakedefine WITH_DEBUG_TRANSPORT
#cmakedefine WITH_DEBUG_WND
#cmakedefine WITH_DEBUG_RINGBUFFER

/* Proxy */
#cmakedefine WITH_PROXY_MODULES
#cmakedefine WITH_PROXY_EMULATE_SMARTCARD

/** If defined linux/vm_sockets.h support is available.
 *
 *  \since version 3.0.0
 */
#cmakedefine HAVE_AF_VSOCK_H

/** If library is build without these do permanently hide symbols
 *
 * \since version 3.17.2
 */
#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
#cmakedefine WITHOUT_FREERDP_3x_DEPRECATED
#endif

/** Build FILE_DIRECTORY_INFORMATION::FileName with type WCHAR instead of char
 *
 * @since version 3.20.0
 */
#cmakedefine WITH_WCHAR_FILE_DIRECTORY_INFORMATION

#endif /* FREERDP_CONFIG_H */
