Commit Graph

639 Commits

Author SHA1 Message Date
Armin Novak 639a36225e [version] start 3.0.0-dev4 cycle 2023-08-31 12:27:06 +02:00
Armin Novak 59a5726ab3 [version] update to beta3 version 2023-08-31 12:27:06 +02:00
akallabeth ad51c6a0f5 [channels,printer] default CUPS to being enabled
* printer support now enabled by default unless iOS or ANDROID is build.
* Move cups library detection to printer module
2023-08-25 13:54:29 +02:00
Kimon Hoffmann 8ec4d20616 [cmake] Locate PkgConfig module with find_package() instead of include(FindPkgConfig)
This is the contemporary way of including find modules and including the
find module this way avoids cmake errors in conjunction with
find_package_handle_standard_args().

Signed-off-by: Kimon Hoffmann <Kimon.Hoffmann@lawo.com>
2023-08-21 12:43:56 +02:00
Marc-André Moreau c691ef9c8d allow selecting smartcard emulator at runtime rather than link time 2023-08-21 12:00:17 +02:00
akallabeth fee2b10ba1 change version to 3.0.0-dev3 2023-08-04 12:59:11 +02:00
Armin Novak d3e428c51f change version to 3.0.0-beta2 2023-08-04 12:59:11 +02:00
akallabeth 8470b6ea26 [cmake] set default build type
set with CACHE STRING FORCE to properly be picked up by configuration
tools
2023-08-04 12:59:11 +02:00
Armin Novak 6bbf1e56cf [build] define _CRT_NONSTDC_NO_DEPRECATE with MSVC
disable the deprecation warnings for POSIX function names
2023-07-28 13:42:12 +02:00
Armin Novak 4f0ca73be6 [cmake] set MSVC runtime for SDL client 2023-07-26 16:19:07 +02:00
akallabeth 5de7887d93 start new development cycle after 3.0.0-beta1 release 2023-07-21 16:04:49 +02:00
Armin Novak f08d59ca5f update version to 3.0.0-beta1 2023-07-21 16:04:35 +02:00
akallabeth a9aba69567 [client,common] fix missing link of CJSON 2023-07-20 14:20:28 +02:00
akallabeth 734117351d [aad,avc] unify callbacks to GetAccessToken
The AAD and AVD authentication mechanisms both need an OAuth2 token.
They only differ in the provided arguments, so unify the callbacks into
a single one with variable argument lists.
2023-07-20 14:20:28 +02:00
fifthdegree d309fcd6e8 Restructure Azure AD related stuff
- Move responsibility for obtaining access tokens to clients
- Add function for getting access tokens for AVD
- Get correct server hostname during AVD setup
- Add utility function for doing http requests
2023-07-20 14:20:28 +02:00
Armin Novak 1b7b597f02 [cmake] add option to enable/disable building X11 2023-06-05 14:15:03 +02:00
Sergey Bronnikov 1c0c804981 [cmake] Introduce a target for building fuzzing tests
Part of #5063
2023-06-05 11:28:48 +02:00
Armin Novak 3e44efc841 [cmake] use FindX11 from CMake 3.13 2023-05-31 11:05:56 +02:00
akallabeth f941a1ec8e [cmake] unify RPATH settings and client deps detection 2023-05-26 11:38:32 +02:00
Armin Novak 9d5d803730 [cmake] use option instad of set 2023-05-23 06:04:55 +02:00
akallabeth 05edcbc357 [cmake] fix version from git tag
only consider tags that conform to the format  'somestring1.2.3' as
valid tags
2023-05-02 09:34:07 +02:00
Bernhard Miklautz ddc9e5835f new: export plugin paths in pkg-config and cmake package
To simplify building external channels and other plugins related
paths are now exported in the pkg-config file and the cmake package.
The paths can be used to install channels/plugins/extensions in
the configured search paths.

For pkg-config the following variables are now available:
* datadir
* plugindir
* proxy_plugindir
* extensiondir

They can be queried like: `pkg-config freerdp3 --variable plugindir`

The cmake package has three new variables that can be used:
* FreeRDP_PLUGIN_DIR
* FreeRDP_PROXY_PLUGIN_DIR
* FreeRDP_EXTENSION_DIR

Note: Depending on the build the directories are not necessarily created.
2023-04-24 11:19:01 +02:00
Marc-André Moreau b34bad2b50 fix and improve cJSON detection 2023-03-11 08:20:10 +01:00
akallabeth b4e9c8b39f [build] removed complex libraries
* remove obsolete complex libraries helper
* fix static linking
2023-03-01 08:18:34 +01:00
Armin Novak f0e9797b4c [build] require CMake >= 3.13
required for target_link_options
2023-02-27 11:18:02 +01:00
akallabeth 82ba9ede9c [freerdp] use FREERDP_/UWAC_/RDTK_ prefix for conditional headers 2023-01-10 17:38:00 +01:00
Armin Novak 3f63365652 [build] make LTO a configuration option 2022-12-14 16:09:46 +01:00
akallabeth 03d4f6a322 [build] make OpenSSL and mbedtls mutually exclusive 2022-12-09 14:55:20 +01:00
Armin Novak 73d5f37537 [build] move krb5 detection to winpr
only used internally in winpr, no need for project wide configuration
2022-12-09 12:36:12 +01:00
Armin Novak 615f2eb60f [build] fixed kerberos settings 2022-12-09 12:36:12 +01:00
fifthdegree ad87144ce5 Rename WITH_GSSAPI to WITH_KRB5
Change cmake variables to not be gssapi specific
2022-12-09 12:36:12 +01:00
Armin Novak f721be5023 Fix #8483: typo in CMake variable name 2022-12-03 00:13:51 +01:00
akallabeth f7850f08aa Added option WITH_FREERDP_DEPRECATED_COMMANDLINE_COMMANDLINE
This allows building deprecated command line options without adding
deprecated functions to the build.
2022-10-27 10:13:57 +02:00
akallabeth d2ab631c40
Test uri fix (#8232)
* Fixed TestUri unit test

* Make proper unit test out of the test function
* Add proper test cases

* Replace FindFirstFileA with FindFirstFileW for addins

This allows addin paths to contain unicode symbols.

* Fixed parse_uri_to_local_file definition

* Move to common clipboard.c file
* Move to header file so it can be included in test case

* Added WINPR_LOCAL for test builds

This macro exports internal functions in case of a unit test build
This way unit tests can access these without other workarounds.

* Fixed typo in function name is_dos_driver

* Cleaned up FindFirstFileW call

Use a wrapper function to convert to unicode and call the function

* Cleaned up BUILD_TESTING and EXPORT_ALL_SYMBOLS

* EXPORT_ALL_SYMBOLS now does as the name implies and exports all
  non static functions/variables from the library.
* BUILD_TESTING now only sets the defines for test code and
  activates EXPORT_ALL_SYMBOLS to allow tests to access internal
  code

* Fixed windows client warnings

* disable CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
2022-09-26 11:22:02 +02:00
Armin Novak ee6317081b Improve string version extraction regex
Allow (git) tags of format 'some-important-text_v1.2.3-something_else'
Any character is now allowed, as long as there is a version of format
1.2.3 somewhere in the tag name.
2022-09-20 13:25:44 +02:00
Armin Novak cb5992f244 Fix #8186: AVCodec split version defines in two files... 2022-09-13 12:47:13 +02:00
akallabeth bf56a39e6f
Fixed #8090: Duplicate definition of strndup (#8102)
* Fixed #8090: Duplicate definition of strndup

* Moved strndup detection to winpr

Co-authored-by: Armin Novak <anovak@thincast.com>
2022-08-02 09:15:38 +02:00
akallabeth c71cc672f9 Decouple ffmpeg video encoder/decoder support from WITH_FFMPEG
It may be diesirable to only use FFMPEG for audio. Allow disabling
video decoding by introducing a new variable responsible for that.
2022-07-05 18:17:28 +02:00
akallabeth 1aacf504a1 Increase C standard to C11 2022-06-03 08:51:40 +02:00
akallabeth a0ca2b4a6e Add LTO settings 2022-06-03 08:51:40 +02:00
akallabeth c716304cf8 Only build RFX neon path with -DWITH_NEON=ON 2022-05-04 09:28:29 +02:00
akallabeth 860f44f762 CMake check_include and struct cleanup
Move to WinPR what should be there.
2022-04-29 14:27:44 +02:00
Armin Novak a2a81f1f27 Fixed buildconfig.h generation 2022-04-20 15:24:45 +02:00
Bernhard Miklautz 58d9fc5f5b new: add some basic documentation about version dectction 2022-03-07 13:39:49 +01:00
akallabeth 76ed796209 Respect USE_VERSION_FROM_GIT_TAG 2022-03-07 13:39:49 +01:00
Armin Novak 4d03d7c0bf Freerdp remove #ifdef HAVE_CONFIG_H 2022-03-03 11:26:48 +01:00
Armin Novak b2ad47a809 Reorganized FreeRDP headers 2022-03-03 11:26:48 +01:00
Armin Novak cb27338bf4 Set required C standard to C99 with extensions 2022-02-24 12:31:58 +01:00
David Fort 0435b5a65d Implement smartcard logon 2022-02-24 08:52:25 +01:00
Armin Novak fd027d1bf0 Removed BUILTIN_CHANNELS
Building client channels out of tree does not work reliable as the
dependencies can not be easily split. (exceptions may be simple ones
as echo channel)
It does complicate the build system and code though, so remove this
for maintainability reasons.
2022-02-23 10:43:46 +01:00
Armin Novak 0801ab21ed Fixed windows CMAKE_DL_LIBS content for mingw builds 2022-02-18 08:38:28 +01:00
akallabeth 2d2627deab
Fixed SSPI fallback to NTLM (#7642)
* Fixed SSPI fallback to NTLM

* Fixed wide/ansi mixup

* WITH_GSS fixes

* Move to WinPR as this is not related to FreeRDP
* Add option WITH_GSS_NO_NTLM_FALLBACK to disable NTLM fallback

* Abort NLA if status is SEC_E_NO_CREDENTIALS

* Properly invalidate sspi::SubContext
2022-02-15 09:04:17 +01:00
Ely Ronnen 52202762e8 adding mediacodec h264 implementation using NDK 2022-01-26 10:24:26 +01:00
akallabeth 9570c349ac Added missing CMake include 2022-01-25 15:33:04 +01:00
akallabeth 7dedfbb0b0 Added support for getpwuid_r, replaced duplicate code
* Use GetUserNameExA to get current user name when required.
* Add support for getpwuid_r if available
2022-01-25 15:33:04 +01:00
akallabeth 8c543b1de2 Added smartcard emulation layer 2022-01-11 12:34:43 +01:00
Ely Ronnen cdb7563cf7 add ffmpeg option to android build script 2021-12-21 08:02:07 +01:00
akallabeth 88f4e72853 Added WITH_RDTK to disable rdtk build 2021-12-15 13:36:15 +01:00
Richard Markiewicz 0577d7a0c3 freerdp: re-enable check for poll by default on Apple 2021-12-15 09:14:27 +01:00
akallabeth 5d3dc7b925 Do not set CMAKE_OSX_ARCHITECTURES
We do not know which architecture we are going to build on, so
skip this if not explicitly set externally
2021-11-25 12:25:18 +01:00
akallabeth 58b24f13fe
Add an option to add the plugin and extension to rpath (#7425) 2021-11-04 08:59:38 +01:00
Hans-Peter Jansen 35cd866075 Add cmake function ShowCMakeVars and display configured paths in build 2021-10-11 08:38:53 +02:00
Hans-Peter Jansen 608c1baca0 Remove unused codec x264 2021-09-14 12:38:14 +02:00
Armin Novak 976c3c2ab9 Refactored proxy and proxy-modules:
* Split out proxy headers and moved to public API to allow external
  modules to be built.
* Split proxy into proxy library and proxy binary. The library
  can be used by other applications and provides a simple API
* Improved channel passthrough, now all channels including dynamic
  channels work.
* Extended module API to hook more events, improved module samples
* Cleaned up proxy code, removed global static variables used,
  added WINPR_ASSERT
2021-09-09 08:53:20 +02:00
Armin Novak 61b46adaf1 Fixed WITH_WINPR_VERBOSE_ASSERT compile flag
* Compile flag was not always set
* Fix broken WINPR_ASSERT usages detected
2021-07-29 15:09:53 +02:00
Armin Novak 6e075a6a7d Fixed #7158: detection of arm neon. 2021-07-08 07:54:26 +02:00
Armin Novak 7afc91650e Fixed CMake include order 2021-06-28 15:06:30 +02:00
Armin Novak 2e42df9515 Fixed HAVE_PTHREAD_MUTEX_TIMEDLOCK 2021-06-28 15:06:30 +02:00
Armin Novak fd08c77f7f Fixed definition of config.h symbols 2021-06-28 15:06:30 +02:00
akallabeth 534d30beb3
No deprecated (#7107)
* Removed cmake options disabling compiler warnings

* Added deprecation compile options

* Fixed android client use of deprecated symbols

* Removed obsolete callback
2021-06-22 14:39:10 +02:00
Armin Novak 8e3997b294 Added winpr assert config option for standalone build 2021-06-22 09:43:23 +02:00
Armin Novak 8ef57bf296 Replaced CMAKE_[SOURCE|BINARY]_DIR with PROJECT_[SOURCE|BINARY]_DIR
Thanks @Pollux42 for the hint in #7096
2021-06-22 08:54:18 +02:00
akallabeth b453d5e40e Fixed rdtk, uwac and winpr standalone builds 2021-06-22 08:54:18 +02:00
akallabeth 81cef9251f Upgrade CMake requirement to 3.4 2021-06-22 08:54:18 +02:00
Marc-André Moreau 96f07ea993 Windows ARM64 build fixes 2021-06-01 14:18:01 +02:00
Marc-André Moreau 918c914094 fix Android ARM64 NEON enabling 2021-06-01 09:51:35 +02:00
Marc-André Moreau 10d2e8a349 iOS build system fixes 2021-05-31 11:21:15 +02:00
Marc-André Moreau 0029f6cc1d Android build system fixes (OpenSLES, CMAKE_PREFIX_PATH, debug symbols) 2021-05-28 10:20:25 +02:00
Marc-André Moreau a7ce6699e3 Disable poll usage on macOS/iOS because it is unreliable 2021-05-28 10:00:05 +02:00
Marc-André Moreau a8355d4117 Improve pthread_mutex_timedlock detection, fix Android function definition 2021-05-28 09:24:33 +02:00
akallabeth b494a193db Refactored certificate API:
* Proper encapsulation
* known_hosts2 backend extended (storing PEM)
* New backend storing each host certificate in a file
2021-05-11 08:00:18 +02:00
Biswapriyo Nath 5d502c9d06 CMake: Set ffmpeg and zlib optional in Win32. 2021-04-28 17:11:31 +02:00
Denis b3a2042103 Add support for OpenBSD sndio 2021-03-08 13:11:50 +01:00
akallabeth c67e4df96b Added getter/setter for settings 2021-03-01 11:03:52 +01:00
Armin Novak 45a1f9cc19 Fix #6461: Generate config.h after all subdirectories are parsed. 2020-09-23 13:16:48 +02:00
Armin Novak 4d529f6f95 Moved pthread non portable function checks before ASAN 2020-07-06 15:37:37 +02:00
Armin Novak 44f2e86982 Refined asan checks
Find threads before ASAN checks as for android builds the check
might fail if done afterward.
2020-07-06 14:22:51 +02:00
akallabeth 7864a985d4 Removed unnecessary checks for asan
check_c_compiler_flag is unreliable, only use where absolutely
necessary.
2020-07-03 11:51:00 +02:00
akallabeth b971c5c97f Use CMake to detect availability of getlogin_r 2020-07-01 16:50:20 +02:00
akallabeth 722790f4ca Always require aligned memory for interleaved codec. 2020-05-20 15:10:07 +02:00
akallabeth 08fd2876b9 Started 3.0 development cycle. 2020-04-10 15:01:15 +02:00
Bernhard Miklautz 5ab2bed874 new: update ChangeLog and set version to 2.0.0 2020-04-09 18:00:51 +02:00
akallabeth f56292afa4 Fixed cmake formatting 2020-04-09 10:03:20 +02:00
akallabeth f2d5cf2b41 Updated android build scripts for ci. 2020-04-09 10:03:20 +02:00
akallabeth 158bd74272 Allow externally supplied FREERDP_INSTALL_PREFIX 2020-03-18 17:22:08 +01:00
Martin Fleisz f484b20787
Merge pull request #5907 from akallabeth/cmake_channel_dependency_fix
Cmake channel dependency fix
2020-02-26 16:18:46 +01:00
Armin Novak 829497b313 Made CHANNEL_TSMF optional and deprecated. 2020-02-26 13:56:43 +01:00
Armin Novak d633195879 Promoted usb, printer and smartcard dependencies to recommended 2020-02-25 17:36:17 +01:00
Kobi Mizrachi b2fad50cd3 server: proxy: rewrite modules API
* Add support for C++ plugins.
* Seperate between a "module" and a "plugin": a module is a shared
library that exposes a function called "proxy_module_entry_point". This
function gets a parameter to `proxyPluginsManager*`, which can be used to
register plugins.
* Refine the API of the modules infrastructure:
 * use proxyData* instead of rdpContext* when firing a hook or calling a filter.
 * use clearer names.
* Instead of having to specify a path for each module to be loaded in
the configuration, the proxy now loads modules from specificed
directory, using the CMAKE variable PROXY_PLUGINDIR.
* Add an option to specify required plugins: plugins that the proxy
wouldn't start without having them fully loaded.
2020-01-14 07:58:47 +01:00
David Fort 5f0943f0fe primitives: add openCL support
This patch adds the basic infrastructure to have openCL acceleration.
For now only YUV2RGB is implemented but other operations could be
implemented.
The primitives have been massively reworked so that we have an autodetect
mode that will pick the best implementation automatically by performing a
benchmark.

Sponsored-by: Rangee Gmbh(http://www.rangee.com)
2019-11-22 13:21:39 +01:00