Commit Graph

624 Commits

Author SHA1 Message Date
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
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