Commit Graph

657 Commits

Author SHA1 Message Date
akallabeth 615fcc4370 [cmake] prevent in source builds 2023-11-28 12:14:55 +01:00
Armin Novak 6547b2dfe7 started 3.0.0-dev6 cycle 2023-11-27 11:04:16 +01:00
Armin Novak e6fffdb7b0 release 3.0.0-rc0 2023-11-27 11:04:16 +01:00
Armin Novak e0e72f9c28 [cmake] use CMAKE_MSVC_RUNTIME_LIBRARY
* Increase required CMake version to 3.15 (windows only)
* Use
  https://cmake.org/cmake/help/latest/prop_tgt/MSVC_RUNTIME_LIBRARY.html#prop_tgt:MSVC_RUNTIME_LIBRARY
  to select windows runtime
2023-11-16 10:40:04 +01:00
Armin Novak e56fcb45cb [core,aad] move cJSON related parsing to core
hide cJSON parser from freerdp-client library, link privately
2023-11-02 11:30:55 +01:00
Armin Novak 1761edf2f8 [cmake] add default compiler flags 2023-10-16 15:10:13 +02:00
Armin Novak b72b4fecff [cJSON] add pkg-config fallback 2023-10-16 15:10:13 +02:00
akallabeth 33c1183fe1 [client,sdl] fixed tests and detection
* add a pkg-config fallback for SDL2_ttf, current ubuntu does not ship
  the cmake config
* deactivated SDL dialog test cases, now compiles properly
2023-10-10 22:59:53 +02:00
akallabeth 6da1cc6987 default WITH_AAD to cJSON_FOUND 2023-10-10 22:59:53 +02:00
akallabeth 822ba31c31 [bsd] clean up bsd related detections 2023-10-10 22:59:53 +02:00
akallabeth 0529658e75 [cmake] cleaned out unused cmake files 2023-10-10 22:59:53 +02:00
akallabeth 25f3633dc5 [systemd] moved detection to module 2023-10-10 22:59:53 +02:00
akallabeth f1eaa01de2 [oss] moved detection to module 2023-10-10 22:59:53 +02:00
akallabeth f977de89e3 [pulse] move detection to module 2023-10-10 22:59:53 +02:00
akallabeth f06c027824 [alsa] move detection to module 2023-10-10 22:59:53 +02:00
akallabeth 046767b195 [opensles] moved detection to modules
* Rename variables to match package name
* Move find_package to where it is actually used
2023-10-10 22:59:53 +02:00
akallabeth 2e7f387783 open 3.0.0-dev5 cycle 2023-09-21 13:57:48 +02:00
akallabeth 1f284d3af8 update version to 3.0.0-beta4 2023-09-21 13:57:48 +02:00
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