This patch implements the client-side part of the remote credential guard feature
as described in MS-RDPEAR. The 2 main changes are: shipping the TSRemoteGuardaCreds in
NLA, and implement the rdpear channel that allows LSASS to remote all the calls to
our client. For now it's UNIX only as the windows implementation would be implemented
in a completely different way.
To test, you may establish you ccache and then connect with (RCG enabled on the server):
xfreerdp /remoteGuard /u:<user> /d:<domain> /v<server>
That should log you in, and in the session you should not be asked for credentials when
doing mstsc /remoteGuard /v:<other server>.
* Disable clang-tidy in test build directories
* Disable compiler warnings for test binary directories.
These contain generated code we can not change, so the warnings are just noise
* Add new function freerdp_settings_get_config_path to get current
user configuration directory
* Add CMake option WITH_FULL_CONFIG_PATH (default OFF): If defined, use
<appdata>/Vendor/Product as config directory, otherwise use
<appdata>/vendor (lowercase, only if vendor equal to product)
* pkg-config sets CJSON_FOUND, check for that instead of the paths, which
might be unset or set to <var>-NOTFOUND
* move detection to own file. find_package targets are meant to be used
in same directory or below, but we define the WinPR target one above,
so include it in parent
Although, the `pkg_check_modules` function is used when finding the
json-c library, the results are never used. Let's add the `HINTS` params
for the `find_path` and `find_library` functions.
* use a macro to add resource files for executables and shared libraries
* use that macro to declare targets
* use that macro to set library/binary versioning
* use that macro to set target output name
* use a macro to create manpages and names
* generate a include header depending on where the soundcard.h file was
found as that is in system paths that must not be added to the include
search paths.
* fix detection, the if/else was mixed up and completely broken.
* ConfigureRPATH must use option or cache variables (visibility scope)
* include CommonConfigOptions (and with it ConfigureRPATH) only after
all required variables have been defined