Blame cmake/ConfigOptions.cmake

Packit Service fa4841
include(CMakeDependentOption)
Packit Service fa4841
Packit Service fa4841
if((CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|x86|AMD64") AND (CMAKE_SIZEOF_VOID_P EQUAL 4))
Packit Service fa4841
	set(TARGET_ARCH "x86")
Packit Service fa4841
elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") AND (CMAKE_SIZEOF_VOID_P EQUAL 8))
Packit Service fa4841
	set(TARGET_ARCH "x64")
Packit Service fa4841
elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "i386") AND (CMAKE_SIZEOF_VOID_P EQUAL 8) AND (APPLE))
Packit Service fa4841
	# Mac is weird like that.
Packit Service fa4841
	set(TARGET_ARCH "x64")
Packit Service fa4841
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm*")
Packit Service fa4841
	set(TARGET_ARCH "ARM")
Packit Service fa4841
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "sparc")
Packit Service fa4841
	set(TARGET_ARCH "sparc")
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
option(WITH_MANPAGES "Generate manpages." ON)
Packit Service fa4841
option(WITH_PROFILER "Compile profiler." OFF)
Packit Service fa4841
option(WITH_GPROF "Compile with GProf profiler." OFF)
Packit Service fa4841
Packit Service fa4841
if((TARGET_ARCH MATCHES "x86|x64") AND (NOT DEFINED WITH_SSE2))
Packit Service fa4841
	option(WITH_SSE2 "Enable SSE2 optimization." ON)
Packit Service fa4841
else()
Packit Service fa4841
	option(WITH_SSE2 "Enable SSE2 optimization." OFF)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(TARGET_ARCH MATCHES "ARM")
Packit Service fa4841
	if (NOT DEFINED WITH_NEON)
Packit Service fa4841
		option(WITH_NEON "Enable NEON optimization." ON)
Packit Service fa4841
	else()
Packit Service fa4841
		option(WITH_NEON "Enable NEON optimization." OFF)
Packit Service fa4841
	endif()
Packit Service fa4841
else()
Packit Service fa4841
	if(NOT APPLE)
Packit Service fa4841
		option(WITH_IPP "Use Intel Performance Primitives." OFF)
Packit Service fa4841
	endif()
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
option(WITH_JPEG "Use JPEG decoding." OFF)
Packit Service fa4841
Packit Service fa4841
if(CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
Packit Service fa4841
	set(CMAKE_COMPILER_IS_CLANG 1)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(NOT WIN32)
Packit Service fa4841
	CMAKE_DEPENDENT_OPTION(WITH_VALGRIND_MEMCHECK "Compile with valgrind helpers." OFF
Packit Service fa4841
		"NOT WITH_SANITIZE_ADDRESS; NOT WITH_SANITIZE_MEMORY; NOT WITH_SANITIZE_THREAD" OFF)
Packit Service fa4841
	CMAKE_DEPENDENT_OPTION(WITH_SANITIZE_ADDRESS "Compile with gcc/clang address sanitizer." OFF
Packit Service fa4841
		"NOT WITH_VALGRIND_MEMCHECK; NOT WITH_SANITIZE_MEMORY; NOT WITH_SANITIZE_THREAD" OFF)
Packit Service fa4841
	CMAKE_DEPENDENT_OPTION(WITH_SANITIZE_MEMORY "Compile with gcc/clang memory sanitizer." OFF
Packit Service fa4841
        "NOT WITH_VALGRIND_MEMCHECK; NOT WITH_SANITIZE_ADDRESS; NOT WITH_SANITIZE_THREAD" OFF)
Packit Service fa4841
	CMAKE_DEPENDENT_OPTION(WITH_SANITIZE_THREAD "Compile with gcc/clang thread sanitizer." OFF
Packit Service fa4841
		"NOT WITH_VALGRIND_MEMCHECK; NOT WITH_SANITIZE_ADDRESS; NOT WITH_SANITIZE_MEMORY" OFF)
Packit Service fa4841
else()
Packit Service fa4841
	if(NOT UWP)
Packit Service fa4841
		option(WITH_MEDIA_FOUNDATION "Enable H264 media foundation decoder." ON)
Packit Service fa4841
	endif()
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
if(WIN32 AND NOT UWP)
Packit Service fa4841
	option(WITH_NATIVE_SSPI "Use native SSPI modules" ON)
Packit Service fa4841
	option(WITH_WINMM "Use Windows Multimedia" ON)
Packit Service fa4841
	option(WITH_WIN8 "Use Windows 8 libraries" OFF)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
option(WITH_SMARTCARD_INSPECT "Enable SmartCard API Inspector" OFF)
Packit Service fa4841
Packit Service fa4841
option(BUILD_TESTING "Build unit tests" OFF)
Packit Service fa4841
CMAKE_DEPENDENT_OPTION(TESTS_WTSAPI_EXTRA "Build extra WTSAPI tests (interactive)" OFF "BUILD_TESTING" OFF)
Packit Service fa4841
CMAKE_DEPENDENT_OPTION(BUILD_COMM_TESTS "Build comm related tests (require comm port)" OFF "BUILD_TESTING" OFF)
Packit Service fa4841
Packit Service fa4841
option(WITH_SAMPLE "Build sample code" OFF)
Packit Service fa4841
Packit Service fa4841
option(WITH_CLIENT_COMMON "Build client common library" ON)
Packit Service b1ea74
CMAKE_DEPENDENT_OPTION(WITH_CLIENT "Build client binaries" ON "WITH_CLIENT_COMMON" OFF)
Packit Service fa4841
Packit Service fa4841
option(WITH_SERVER "Build server binaries" OFF)
Packit Service fa4841
Packit Service fa4841
option(BUILTIN_CHANNELS "Combine all channels into their respective base library" ON)
Packit Service fa4841
Packit Service fa4841
option(WITH_CHANNELS "Build virtual channel plugins" ON)
Packit Service fa4841
Packit Service b1ea74
option(WITH_WINPR_TOOLS "Build WinPR helper binaries" ON)
Packit Service b1ea74
Packit Service b1ea74
CMAKE_DEPENDENT_OPTION(WITH_CLIENT_CHANNELS "Build virtual channel plugins" ON
Packit Service fa4841
	"WITH_CLIENT_COMMON;WITH_CHANNELS" OFF)
Packit Service fa4841
Packit Service b1ea74
CMAKE_DEPENDENT_OPTION(WITH_MACAUDIO "Enable OSX sound backend" ON "APPLE;NOT IOS" OFF)
Packit Service fa4841
Packit Service fa4841
if(WITH_SERVER AND WITH_CHANNELS)
Packit Service fa4841
	option(WITH_SERVER_CHANNELS "Build virtual channel plugins" ON)
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
option(WITH_THIRD_PARTY "Build third-party components" OFF)
Packit Service fa4841
Packit Service fa4841
option(WITH_CLIENT_INTERFACE "Build clients as a library with an interface" OFF)
Packit Service fa4841
option(WITH_SERVER_INTERFACE "Build servers as a library with an interface" ON)
Packit Service fa4841
Packit Service fa4841
option(WITH_DEBUG_ALL "Print all debug messages." OFF)
Packit Service fa4841
Packit Service fa4841
if(WITH_DEBUG_ALL)
Packit Service fa4841
	set(DEFAULT_DEBUG_OPTION "ON")
Packit Service fa4841
else()
Packit Service fa4841
	set(DEFAULT_DEBUG_OPTION "OFF")
Packit Service fa4841
endif()
Packit Service fa4841
Packit Service fa4841
option(WITH_DEBUG_CERTIFICATE "Print certificate related debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_CAPABILITIES "Print capability negotiation debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_CHANNELS "Print channel manager debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_CLIPRDR "Print clipboard redirection debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service b1ea74
option(WITH_DEBUG_RDPGFX "Print RDPGFX debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_DVC "Print dynamic virtual channel debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service b1ea74
CMAKE_DEPENDENT_OPTION(WITH_DEBUG_TSMF "Print TSMF virtual channel debug messages." ${DEFAULT_DEBUG_OPTION} "CHANNEL_TSMF" OFF)
Packit Service fa4841
option(WITH_DEBUG_KBD "Print keyboard related debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_LICENSE "Print license debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_NEGO "Print negotiation related debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_NLA "Print authentication related debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_NTLM "Print NTLM debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_TSG "Print Terminal Server Gateway debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_RAIL "Print RemoteApp debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_RDP "Print RDP debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_RDPEI "Print input virtual channel debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_REDIR "Redirection debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_RDPDR "Rdpdr debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_RFX "Print RemoteFX debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_SCARD "Print smartcard debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_SND "Print rdpsnd debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_SVC "Print static virtual channel debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_TRANSPORT "Print transport debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_THREADS "Print thread debug messages, enables handle dump" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_MUTEX "Print mutex debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_TIMEZONE "Print timezone debug messages." ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_WND "Print window order debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_X11_CLIPRDR "Print X11 clipboard redirection debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_X11_LOCAL_MOVESIZE "Print X11 Client local movesize debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_X11 "Print X11 Client debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_XV "Print XVideo debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
option(WITH_DEBUG_RINGBUFFER "Enable Ringbuffer debug messages" ${DEFAULT_DEBUG_OPTION})
Packit Service fa4841
Packit Service fa4841
option(WITH_DEBUG_SYMBOLS "Pack debug symbols to installer" OFF)
Packit Service fa4841
option(WITH_CCACHE "Use ccache support if available" ON)
Packit Service b1ea74
option(WITH_CLANG_FORMAT "Detect clang-format. run 'cmake --build . --target clangformat' to format." ON)
Packit Service fa4841
option(WITH_ICU "Use ICU for unicode conversion" OFF)
Packit Service b1ea74
option(WITH_GSSAPI "Compile support for kerberos authentication. (EXPERIMENTAL)" OFF)
Packit Service fa4841
Packit Service fa4841
option(WITH_DSP_EXPERIMENTAL "Enable experimental sound encoder/decoder formats" OFF)
Packit Service fa4841
if (WITH_FFMPEG)
Packit Service fa4841
    option(WITH_DSP_FFMPEG "Use FFMPEG for audio encoding/decoding" OFF)
Packit Service b1ea74
    option(WITH_VAAPI "Use FFMPEG VAAPI" OFF)
Packit Service fa4841
endif(WITH_FFMPEG)
Packit Service fa4841
Packit Service fa4841
option(USE_VERSION_FROM_GIT_TAG "Extract FreeRDP version from git tag." OFF)
Packit Service fa4841
Packit Service b1ea74
option(WITH_CAIRO    "Use CAIRO image library for screen resizing" OFF)
Packit Service b1ea74
option(WITH_SWSCALE  "Use SWScale image library for screen resizing" OFF)
Packit Service b1ea74
Packit Service b1ea74
if (ANDROID)
Packit Service b1ea74
	include(ConfigOptionsAndroid)
Packit Service fa4841
endif(ANDROID)
Packit Service fa4841
Packit Service b1ea74
if (IOS)
Packit Service b1ea74
	include(ConfigOptionsiOS)
Packit Service fa4841
endif(IOS)