Commit Graph

574 Commits

Author SHA1 Message Date
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
Armin Novak
441fb4d0ca Allow freerdp clients to function with WITH_OPENH264_LOADING
If no library can be loaded at runtime ignore H264 capabilities.
This allows a build with only OpenH264 support and dynamic loading
enabled to function when no openh264 library was detected.
2019-10-07 09:31:20 +02:00
Armin Novak
4be98eb1a5 mac os bundles should not put libraries/addins in a subfolder. 2019-09-10 12:21:40 +02:00
Armin Novak
b8d3340b18 Set default build windows version to windows 7 2019-09-03 15:11:18 +02:00
Armin Novak
033b113102 Setting plugin paths for windows install. 2019-08-21 13:19:44 +02:00
Antenore Gatta
8617ae9ca4 Move FoundCairo module include where is referenced 2019-08-14 18:11:14 +02:00
Antenore Gatta
d4dc553a67 Better libcairo dependencies handling though cmake 2019-08-14 18:11:14 +02:00
Sergey Bronnikov
a39580f9bc Fixed typo: RAW_VERSTION_STRING -> RAW_VERSION_STRING 2019-07-25 16:07:40 +03:00
Armin Novak
abf5916ae5 Fix plugin paths when building for a mac bundle. 2019-06-26 09:56:16 +02:00
Armin Novak
6604df0795 Added clang format script.
new code formatting rules are now enforced by this script.
2019-05-16 11:25:40 +02:00
David Fort
70805402be
Merge pull request #5140 from akallabeth/print_custom_component
Added callback to handle printer custom components in printer backend.
2019-01-29 15:18:53 +01:00
akallabeth
0a8ebcfcac
Merge pull request #5187 from astrand/mingw-part1
Mingw build fixes part1
2019-01-29 10:46:21 +01:00
Armin Novak
1c855068a2 Using runtime linking for OpenH264.
This allows removing the hard dependency on OpenH264 and use the
cisco provided binary.
2019-01-11 12:00:08 +01:00
Peter Åstrand (astrand)
9c19c7361f Support Unix Makefiles 2019-01-09 09:30:31 +01:00
Armin Novak
34c9404c98 Added OpenSSL include path globally. 2018-12-12 15:41:29 +01:00
Armin Novak
0831c34fc0 Fix #4730: Add git revision, architecture and minimum os support to file properties. 2018-12-04 09:34:22 +01:00
Armin Novak
4c3626340c Set minimum deployment target to 10.0 2018-12-03 17:06:35 +01:00
Armin Novak
fff22f027b Removed DirectFB client as it is unmaintained
DirectFB support was in search of a maintainer for ages and
no longer compiles.
Since nobody stepped up get rid of this unused code once and for all.
2018-11-22 14:40:19 +01:00
Bernhard Miklautz
58091dc138 new: development cycle dev5 2018-11-20 11:49:34 +01:00
Bernhard Miklautz
cc801eded7 new: version 2.0.0-rc4
ChangeLog and version updated
2018-11-20 11:22:47 +01:00
Armin Novak
e93aab2f7f Added CMake detection support for libsoxr 2018-11-14 13:27:20 +01:00
Marc-André Moreau
1b42e512ee winpr: add WINPR_DLL definition 2018-10-04 15:09:49 -04:00
Armin Novak
5bddbd1cf7 Fixed avcodec version test. 2018-09-07 10:48:37 +02:00
Armin Novak
2b5b7cb3c5 Added requirement check for WITH_DSP_FFMPEG 2018-08-09 09:58:56 +02:00
Armin Novak
97e7eca30c Started next development cycle 2018-08-01 15:29:17 +02:00
Armin Novak
619ce84cdb release: version 2.0.0-rc3 2018-08-01 09:45:36 +02:00
David Fort
1107220ecf
Merge pull request #4645 from akallabeth/mac_ports_removed
Fix #2617: Removed MacPorts from CMake (default) search path.
2018-07-04 10:50:41 +02:00
Armin Novak
f8a1bb8451 Fixed case of variable names. 2018-05-30 12:13:24 +02:00
Armin Novak
4c0007b55a Fix #4672: Check if FFMPEG and OpenH264 detected
When FFMPEG or OpenH264 was requested but not detected abort
the cmake run with an error.
2018-05-28 15:30:50 +02:00
Armin Novak
3c7dfa0a03 Fix #2617: Removed MacPorts from CMake (default) search path. 2018-05-14 10:39:12 +02:00
Armin Novak
a18ee2e7b2 VS2017 support: set pdb output directory for Ninja generator. 2018-05-11 10:37:50 +02:00
David Fort
456b0e8934
Merge pull request #4453 from akallabeth/sound_channel_refactor
Sound channel refactoring
2018-05-03 11:56:58 +02:00
akallabeth
dd577377dd
Merge pull request #4617 from kevans91/spurious
Upstream the rest of our local FreeBSD patching
2018-05-03 11:55:03 +02:00
akallabeth
d130d9cb21
Merge pull request #4613 from kevans91/file64
Enable 64-bit file support on FreeBSD as well
2018-05-03 11:31:54 +02:00
Kyle Evans
2fb992a962 Upstream the rest of our local FreeBSD patching
FreeBSD/DragonflyBSD are also UNIX platforms, as far as trio is concerned, and
we don't need to be setting the CMAKE_INSTALL_RPATH on FreeBSD.
2018-05-02 22:09:42 -05:00
Kyle Evans
5463b23591 Enable 64-bit file support on FreeBSD as well 2018-05-02 10:38:44 -05:00
Kyle Evans
824ace49ac Add SetFreeRDPCMakeInstallDir function to abstract away platform differences
Different platforms/systems may install CMake modules into different places. For
instance, FreeBSD will install modules into ${PREFIX}/share/cmake/Modules while
Linux distributions might install into ${PREFIX}/lib/cmake.

This leaves us with a useful abstraction- consumers only need to care about
the name of their subdirectory, and only one place needs to be patched to change
where this subdirectory lands.
2018-05-02 10:36:52 -05:00
Kyle Evans
45d8e2dfb2 Pull in libepoll-shim for the bits that require timerfd/epoll
libepoll-shim is our implementation of this API on top of kevent. It supplies
the same headers and a library, but we don't install it in any of the default
include search paths when it comes in through ports on an as-needed basis.

This set of changes is restricted to FREEBSD-compatible OS, which includes
DragonflyBSD and FreeBSD.
2018-05-01 23:42:25 -05:00
Kyle Evans
5e9c8c4bca Set BSD/FREEBSD for DragonflyBSD
DragonflyBSD was a fork of FreeBSD once upon a time. As far as FreeRDP is
concerned, DragonflyBSD is FreeBSD-compatible and DragonflyBSD in-fact uses
the FreeBSD ports tree (+ patches)
2018-05-01 23:38:48 -05:00
Armin Novak
c9373cee06 Refined checks for sanitizers. 2018-04-12 12:41:19 +02:00
Bernhard Miklautz
d309a1ba33 build: set version to 2.0.0-dev3
start 2.0.0-rc3 development cycle
2018-04-11 13:36:33 +02:00
Bernhard Miklautz
c98a90ea69 release: version 2.0.0-rc2 2018-04-11 12:44:06 +02:00
Armin Novak
ef6a03128a Added memory and thread sanitizer. 2018-04-06 08:27:52 +02:00
Armin Novak
f89c1857b9 Rewrite of sound and microphone channels
The sound and microphone redirection channels (and in part TSMF)
did not properly decouple encoding/decoding from the backends used
to play/record sound.
Encapsulating encoding/decoding in rewritten freerdp_dsp_* functions
with variable backends, simplifying alsa/oss/pulse/... audio backends.
2018-04-05 13:14:16 +02:00
Dan Church
3af9c4d35c
Fix ccache support
Setting the compiler launcher to "ccache" is the recommended way of
enabling ccache for the build.

If cmake is run with it defined, it causes an error when ccache tries to
run:

    ccache: error: Recursive invocation (the name of the ccache binary must be "ccache")

This was because the compiler was getting invoked as
"ccache ccache [COMPILER]"
2018-03-21 16:30:34 -05:00
Armin Novak
c68e34b10f Fixed apple rpath settings. 2018-02-16 10:24:55 +01:00
Bernhard Miklautz
db8519fd8a
Merge pull request #4397 from SriRamanujam/vaapi
Use libavcodec's VA-API to accelerate H.264 decoding.
2018-02-07 12:56:31 +01:00
David Fort
917bc4b551 set some define consistency
This patch cleanup the defines to make then consistent.
2018-02-05 14:17:23 +01:00
Sri Ramanujam
bedc1ac4c6 Use libavcodec's VA-API decoding.
Leverages libavcodec's hw decode support to provide VA-API based
hardware decoding. Depends on the local build of ffmpeg having hardware
VA-API support compiled in and the appropriate libva drivers and
libraries installed.
2018-02-02 02:31:23 -05:00
Mike Gilbert
082aac83a0 cmake: do not add -msse2/-msse3 globally 2017-12-29 14:06:49 -05:00
Bernhard Miklautz
ac9b6d15f2 2.0.0-dev2 - start rc2 development cycle 2017-11-28 15:29:17 +01:00
Bernhard Miklautz
8244370bfb Version 2.0.0-rc1 2017-11-28 15:03:09 +01:00
Mike Gabriel
d4af7eaa59 fix/build: GNU/kFreeBSD is not FreeBSD 2017-11-27 17:04:52 +01:00
Armin Novak
e4cf045860 Extract version from file or git tag. 2017-11-22 11:07:05 +01:00
dodo040
60406794ce fix Kerberos flavour's detection (MIT/Heimdal) and double free for MIT<1.13 2017-11-13 16:20:56 +01:00
dodo040
2ed4acb0ac fix typo 2017-11-13 16:20:56 +01:00
dodo040
3e897a63cb remove useless includes 2017-11-13 16:20:56 +01:00
dodo040
e0a9999fb2 fix: GSS API init, enterprise name management, variable names and format code 2017-11-13 16:20:56 +01:00
dodo040
b81f168f0e initial commit for kerberos support 2017-11-13 16:20:55 +01:00
Bernhard Miklautz
1aec784f75 feat: add support for .source_version
When building packages, especially when source packages are used, git is
not necessarily available or the source isn't provided in git. In those
cases it wasn't possible to set the GIT_REVISION and --version shows
"n/a" for the git revision.

If the file .source_version is available now the content of it is used
as GIT_REVISION. Packagers might want to add a .source_version file
when they don't build the packages from git.

Possible breaking change:

The variable PRODUCT_VERSION isn't available anymore. Use GIT_REVISION
instead.
2017-10-06 15:02:23 +02:00
Bernhard Miklautz
52fbfb7b12 fix clang warnings, directly include wtypes.h (#4097)
* build: clang use -Wno-unused-command-line-argument

With clang 5.0 builds are quite noisy otherwise.

* Directly include wtypes.h

Directly include winpr/wtypes.h where _fseeki64 or _ftelli64 is used.

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning: parentheses-equality

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning: tautological-compare

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning:
incompatible pointer types passing 'size_t *' (aka 'unsigned
long *') to parameter of type 'UINT32 *' (aka 'unsigned int *')
[-Wincompatible-pointer-types]
2017-08-29 09:09:38 +02:00
Petr Sumbera
e5c925b63c On Solaris use standard conforming getpwnam_r(). 2017-08-10 07:36:25 -07:00
Bernhard Miklautz
1a4cfa05cc Don't use an option for WITH_GFX_H264
CMAKE_DEPENDENT_OPTION the option is initialized on the first run and
then saved. Later configuration changes are not considered anymore.
Therefor use an variable instead of an option here.
2017-07-19 09:46:07 +02:00
Armin Novak
620b1ea603 Added 64bit file support flag for linux. 2017-05-10 14:58:12 +02:00
Armin Novak
bba910bd85 Fixed RPATH settings for OS X 2017-04-06 08:08:07 +02:00
Armin Novak
50cd702a15 Updated KRB5 detection, added error case handler
* Linking against KRB5 library now, no dynamic usage.
* Added proper CMake detection script for KRB5 detection
* Added some additional error conditions.
2017-02-21 10:54:34 +01:00