Commit Graph

551 Commits

Author SHA1 Message Date
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
Armin Novak
a14892773c Added CCACHE detection and option to disable. 2017-01-25 09:05:27 +01:00
Bernhard Miklautz
d817469b78 Install man pages
* man pages are only build/installed if WITH_MANPAGES is enabled
* create a new cmake function install_freerdp_man to unified install man
  pages
* install all man pages using the new function
* update the nightly packages accordingly
2017-01-16 11:34:32 +01:00
Norbert Federa
7befab856c Support for OpenSSL 1.1.0 2016-11-24 17:50:09 +01:00
Armin Novak
3f6bd603e9 Fixed addin loader, prefer system library paths. 2016-11-24 15:28:41 +01:00
Bernhard Miklautz
d7582b130c Adapt makefile specific file paths
Try to use relative file paths only when building a release (build types
Release and RelWithDebInfo) with the Unix Makefile generator.

Before it was tried to do this with all generators causing multiple
problems.
2016-10-13 16:57:52 +02:00
Armin Novak
12aae5013a Properly escaping __FILE__ replacement. 2016-10-13 16:56:03 +02:00
Armin Novak
930045ef12 Added leak detector option, made conflicting options exclusive. 2016-10-10 09:29:09 +02:00
Armin Novak
9471f82fea Fixed missing include preventing symbol export. 2016-10-06 13:43:11 +02:00
Armin Novak
14dc629dec Fixed expressions. 2016-10-06 13:43:09 +02:00
Armin Novak
ada4abc5d9 Using add_definitions for symbols now. 2016-10-06 13:43:09 +02:00
Armin Novak
00890c2adc Exporting all symbols from DLL for test builds on windows. 2016-10-06 13:43:05 +02:00
Norbert Federa
89c25276b4 Merge pull request #3384 from akallabeth/android64_build
Android64 build fixes
2016-07-06 13:58:10 +02:00
Norbert Federa
90cdfa7646 cmake: replaced STATIC_CHANNELS with BUILTIN_CHANNELS 2016-06-15 13:36:27 +02:00
Armin Novak
dd9cb25b3c Fixed defined symbols for function check. 2016-06-03 14:55:26 +02:00
Armin Novak
de662b9962 Setting lib64 preference now. 2016-06-03 13:02:30 +02:00
Armin Novak
e40546485d Fixed pthread_mutex_timedlock detection. 2016-06-02 15:33:00 +02:00
Marc-André Moreau
915b9a15b1 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	winpr/libwinpr/bcrypt/CMakeLists.txt
2016-05-11 11:05:17 -04:00
Bernhard Miklautz
0ebc6f1f54 build: disable -Wl,--no-undefined per default
As building with -Wl,--no-undefined might cause issues when
combined with other linker flags (e.g. with -fsanitize=address see #3289)
it is now disabled per default but can be re-enabled with
-DWITH_NO_UNDEFINED=ON.

It is enabled for ci builds on linux to find undefined symbols.
2016-04-19 14:33:26 +02:00
Bernhard Miklautz
8fe88acbf3 build: use --no-undefined if available 2016-04-07 14:35:57 +02:00
Marc-André Moreau
4d629a7999 freerdp: UWP porting 2016-03-29 16:03:15 -04:00
Bernhard Miklautz
9e8c6c99b6 First shot on fixing over linking
If a target is linked against libraries with cmake
(target_link_libraries) and the libraries are not marked as PRIVATE
they are "exported" and in case a other target is linked against this
target it is also linked against *all* (not private) libraries.

Without declaring private libraries PRIVATE a lot of over linking
(linking against unneeded libraries) was done.
2016-03-29 18:14:34 +02:00
Armin Novak
5bc333c626 Implemented GFX AVC444 support. 2016-03-16 13:43:18 +01:00
Marc-André Moreau
ceefc4b099 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2016-03-07 10:19:50 -05:00