Commit Graph

505 Commits

Author SHA1 Message Date
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
Armin Novak
767e6bbb65 Updated freerdp plugin path to use major version. 2016-03-03 11:36:59 +01:00
Armin Novak
1036f1e296 Fixed default visibility.
When nothing is declared, only export symbols defined
with WINPR_API or FREERDP_API defined.
Override this setting if BUILD_TESTING to allow tests
access to internal functions usually not exposed.
2016-02-26 19:44:14 +01:00
David FORT
87d6caa69a Integrate UWAC in to the FreeRDP source tree
So the wayland client can still be built without installing UWAC as a dependency.
2016-02-23 14:09:53 +01:00
Marc-André Moreau
bfca674f2d Merge branch 'master' of github.com:FreeRDP/FreeRDP 2016-02-05 11:39:45 -05:00
Martin Fleisz
56a0c4c336 Merge pull request #3097 from akallabeth/android_api_upgrade_v4
Android api upgrade and restructuring
2016-02-04 16:20:59 +01:00
Armin Novak
9b0ef3a4ec Fixed stdint.h and stdbool.h detection. 2016-02-02 18:28:15 +01:00
Armin Novak
61633a1c66 Fixed android build issues. 2016-02-01 15:21:07 +01:00
Bernhard Miklautz
3232be51b0 Use major version only for SOVERSION
For 2.0+ major will be increased if ABI/API isn't compatible anymore.
2016-01-14 10:47:57 +01:00
Martin Fleisz
f7ed7ccf4d Merge pull request #3043 from bmiklautz/prep2.0
Build system improvements and changes
2016-01-12 19:07:33 +01:00
Bernhard Miklautz
7c03db342c add parameter buildconfig
Extend winpr and client/common to support a new option "/buildconfig".
When used build the following build specific information is print:
* cmake options
* cflags
* compiler
* target architecture
* cmake build type
2016-01-12 17:32:33 +01:00
Bernhard Miklautz
6fa3608111 cleanup cmake exports and pkg-config files
With this commit the "exported" components (usable with pkg-config and
cmake find module package)
* winpr - winpr library and headers
* freerdp - core library and headers
* freerdp-client - client specific library
* freerdp-server - server specific library
* rdtk - rdtk headers and library

To allow the installation of multiple different version (different major
number) the include files were moved into the respective sub folder:
freerdp -> freerdp{MAJOR}/freerdp (currently freerdp2/freerdp/)
winpr -> winpr{MAJOR}/winpr (currently winrp1/winpr/)
rdtk -> rdpk{MAJOR}/rdtk (currently rdtk0/rdtk/

The generated pkg-config and cmake find modules now also include the major
version number. Currently the following pkg-config are generated and
installed.
* winpr1
* freerdp2
* freerdp-server2
* freerdp-client2
* rdtk0

As cmake is able to handle multiple versions out of the box the
following can be used to find a specific module:

find_package(WinPR)
find_package(FreeRDP)
find_package(FreeRDP-Server)
find_package(FreeRDP-Client)
find_package(RdTk)

As cmake doesn't automatically resolve dependencies for packages it is
necessary to manually include the requirements. For example if
FreeRDP-Client is required WinPR and FreeRDP need to be included
(find_package) as well.

This commit also fixes the installation when STATIC_CHANNELS are built.
WITH STATIC_CHANNELS all channels are linked into libfreerdp-client, for
this all channels are generated as linker archive and linked together in
the final step. Before the intermediate linker archives were, although
not required and useful, installed. Same applies for server side
channels.
2016-01-12 17:32:33 +01:00
Bernhard Miklautz
b8136a3769 build: remove FREERDP_MONOLITHIC_BUILD
FREERDP_MONOLITHIC_BUILD was obsolete for a while and unused
2016-01-12 17:32:32 +01:00
Giovanni Panozzo
601c0b8f1f Add cmake flag -DWITH_SANITIZE_ADDRESS=on to enable GCC and clang AddressSanitizer 2016-01-12 17:22:26 +01:00
Bernhard Miklautz
97edeca204 Merge pull request #2874 from akallabeth/stdtypes
Using stdint.h and stdbool.h for type definitions
2015-12-17 16:37:54 +01:00
Armin Novak
120e5e2d43 Moved header detection defines to config.h 2015-12-17 11:28:03 +01:00
Armin Novak
6ed43cd6ec Updated pdb file locations.
Now supporting generators NMake and Visual Studio.
2015-12-15 12:08:35 +01:00
Armin Novak
c8652371e7 Removed stdbool define for iOS. 2015-12-14 14:18:50 +01:00
Armin Novak
63894eb4e7 Using stdint.h and stdbool.h for type definitions
When stdint.h or stdbool.h are detected, use these
standard types for definitions in wtypes.h
2015-12-14 14:18:50 +01:00
Marc-André Moreau
2f5d159448 winpr: fix WinXP backwards compatibility 2015-11-25 13:46:10 -05:00
Hardening
be8f8f7238 Merge pull request #2970 from bmiklautz/prep_2.0
2.0 preparations
2015-11-11 12:54:34 +01:00
Bernhard Miklautz
8206ae440f Pump version to 2.0.0 2015-11-09 15:54:22 +01:00
Armin Novak
1ba4f9b67f Added WITH_CLIENT_COMMON option. 2015-11-04 09:53:13 +01:00
David FORT
9ea301983d Adds a systemd journal appender 2015-10-30 14:50:14 +01:00
David FORT
720c879661 Add a wLog syslog appender 2015-10-22 10:37:49 +02:00
Marc-André Moreau
87780a850d Merge branch 'master' of github.com:FreeRDP/FreeRDP into mbedtls 2015-10-09 15:58:50 -04:00
Marc-André Moreau
94a2f9533e winpr: start porting to non-OpenSSL 2015-10-05 16:23:44 -04:00
Marc-André Moreau
8e3baed882 cmake: add mbed TLS detection 2015-09-15 20:52:46 -04:00
Bryan Everly
bd149a284d Cleaned up previous OpenBSD change per recommendation 2015-09-14 13:20:11 -04:00
Bryan Everly
3431e8e666 Updated OpenBSD changes 2015-09-11 08:54:40 -04:00
Bryan Everly
cb533b2a04 Fixes for OpenBSD port 2015-09-10 21:31:13 -04:00
Martin Haimberger
420a86e1c7 Merge remote-tracking branch 'upstream/master' into mh-channel-fix
Conflicts:
	channels/drdynvc/client/drdynvc_main.c
	channels/rdpgfx/client/rdpgfx_main.c
	client/X11/xf_gfx.c
2015-08-25 00:07:04 -07:00
Marc-André Moreau
9400ccb4bc libfreerdp-codec: add x264 stubs 2015-07-28 16:01:34 -04:00
Bernhard Miklautz
f638ab5615 Update version to 1.4.5 2015-07-28 17:23:16 +02:00
Marc-André Moreau
ddf2519f1e Merge pull request #2719 from bmiklautz/pull/2481
OSS, tsmf, usb and BSD fixes and improvements
2015-06-26 08:27:22 -04:00
Armin Novak
e8b50eb2d0 Fixed cmake warning. 2015-06-17 13:23:21 +02:00
Armin Novak
8f68b9c261 Using vendor/product scheme for settings now. 2015-06-02 09:50:53 +02:00
ivan-83
83a40a32a7 * tsmf: OSS code cleanup
+ urbdrc: add devd support (not tested)
* fix FindUUID detection ubder BSD
* wlog: fix prev commit: build error on Windows
* cmdline: add /usb syntax help
2015-05-27 22:58:41 +03:00
Petr Sumbera
fe5ce30f92 winsock.c Solaris build fixes 2015-05-21 13:24:03 -07:00
Norbert Federa
71a4349928 fixed multiple missing gdi return value checks
mainly gdi_Create* functions
2015-05-08 21:39:23 +02:00
Marc-André Moreau
70ecd9b619 Merge pull request #2589 from baruchsiach/fix-math
Don't use unavailable C99 long double math functions
2015-05-05 10:47:03 -04:00
MartinHaimberger
9a4f645f78 Merge pull request #2582 from nfedera/fix-2015-04-28-01
Fix unchecked CreateEvent calls and misc fixes
2015-05-04 10:14:27 +02:00
Baruch Siach
414663cc36 Don't use unavailable C99 long double math functions
uClibc variants do not provide the C99 long double math functions like ceill,
powl, etc.. For future compatibility use check_symbol_exists() to check
whether these functions are available, and keep the result in
HAVE_MATH_C99_LONG_DOUBLE. Use that instead of the fragile Cygwin version
check in triodef.h.

Fixes build failures under uClibc(-ng) like:

../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `powl'
../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `fmodl'
../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `ceill'
../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `log10l'
../../libwinpr/utils/libwinpr-utils.so.0.1.0: undefined reference to `floorl'
collect2: error: ld returned 1 exit status

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
2015-05-03 21:12:30 +03:00
Norbert Federa
7edb38df84 Increase API version to 1.2.3 2015-04-30 09:20:34 +02:00
Baruch Siach
3b7d3190a1 Fix build with newer uclibc versions
uClibc master branch, as well as uclibc-ng add eventfd_{read,write}
definitions. Instead of testing for __UCLIBC__, have cmake explicitly check
for the existence of eventfd_read and save the result in
WITH_EVENTFD_READ_WRITE.

Fixes build errors like:

.../winpr/libwinpr/synch/event.c:120:12: error: static declaration of 'eventfd_read' follows non-static declaration
 static int eventfd_read(int fd, eventfd_t* value)
            ^
In file included from .../winpr/libwinpr/synch/event.c:39:0:
.../usr/include/sys/eventfd.h:37:12: note: previous declaration of 'eventfd_read' was here
 extern int eventfd_read (int __fd, eventfd_t *__value);
            ^
.../winpr/libwinpr/synch/event.c:125:12: error: static declaration of 'eventfd_write' follows non-static declaration
 static int eventfd_write(int fd, eventfd_t value)
            ^
In file included from .../winpr/libwinpr/synch/event.c:39:0:
.../usr/include/sys/eventfd.h:40:12: note: previous declaration of 'eventfd_write' was here
 extern int eventfd_write (int __fd, eventfd_t __value);
2015-04-29 20:31:25 +03:00
Bryan Everly
18b335e2f2 Added support for manpage construction for OpenBSD 2015-04-24 08:38:35 -04:00
Bryan Everly
8f19bd1825 Moved declaration of OPENBSD to higher in the file to clean some things up. Also, removed -Wredundant-decls from OpenBSD because the OpenBSD standard include files have some redundant declarations that generate a large number of compiler warnings. 2015-04-22 09:19:04 -04:00