Blame cmake/ConfigOptions.cmake

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