Commit Graph

121 Commits

Author SHA1 Message Date
akallabeth 52ee2e4668
[cmake] unify ffmpeg and swscale detection 2024-09-09 12:20:17 +02:00
akallabeth 56d660f258
[cmake] mark dependency includes SYSTEM
Mark all dependency include paths SYSTEM so warnings from system headers
are excluded from ci warning statistics
2024-08-26 11:10:49 +02:00
Armin Novak 99f504640c
[codec,dsp] add FDK-AAC support
Support fdk-aac library for sound encoding/decoding
Special thanks to myth0s who posted the working decoder configuration
sample on our matrix chat.
2024-07-10 17:04:26 +02:00
akallabeth b0f7ab7d16
[freerdp,cmake] fix linking of object library
do add to source files so that static linking does not look for a static
library once installed.
2024-06-25 15:44:57 +02:00
akallabeth 7abf5eb3a7
[cmake,codec] fix WITH_OPUS
detect Opus in libfreerdp directly.
The target definition is there and if we run detection in a subdirectory
the required symbols are not visible
2024-06-25 11:30:42 +02:00
akallabeth e8cca22d2a [cmake] refactor libfreerdp
* Move codec and primitives to own CMakeLists.txt
* Add freerdp_object_library_add
* add freerdp_compile_options_add
2024-06-11 09:44:05 +02:00
akallabeth 7aa72a7507
[core,settings] unify configuration paths
* Add new function freerdp_settings_get_config_path to get current
  user configuration directory
* Add CMake option WITH_FULL_CONFIG_PATH (default OFF): If defined, use
  <appdata>/Vendor/Product as config directory, otherwise use
  <appdata>/vendor (lowercase, only if vendor equal to product)
2024-06-06 11:31:22 +02:00
akallabeth aaded541d9
[core,client] replace cJSON with WinPR wrapper
use the new WinPR JSON wrapper API
2024-05-14 20:45:31 +02:00
akallabeth 0a0df77c39 [build,ipp] drop support for IPP
Intel Performance Primitives do not have a test setup in FreeRDP and
most likely no longer compile.
2024-04-16 12:44:38 +02:00
akallabeth 678ff144ab [cmake] unify windows resource file generation
* use a macro to add resource files for executables and shared libraries
* use that macro to declare targets
* use that macro to set library/binary versioning
* use that macro to set target output name
* use a macro to create manpages and names
2024-03-20 11:17:18 +01:00
Kai Pastor c8c70ad730 Don't remove duplicate link libs 2024-03-19 08:33:54 +01:00
akallabeth c591c2cd26 [pkg-config] add private optional link libraries 2024-03-14 10:35:03 +01:00
Kai Pastor 9a00f1ed4d Add Requires.private for libcjson and zlib 2024-03-14 10:13:14 +01:00
akallabeth 9a51830434 [codec,jpeg] use winpr image for jpeg 2024-02-07 10:04:08 +01:00
akallabeth 2cd64ba424 [cmake] fallback cJSON detection 2024-01-29 09:34:59 +01:00
akallabeth f6a208f75e [cmake] generate relative pkgconfig path
generate the relative pkgconfig path from the actual install locations.
fixes #9718
2024-01-05 14:19:34 +01:00
Armin Novak 9b7fa92521 [libfreerdp] prefer opus CMake file over pkg-config 2023-12-14 14:05:39 +01:00
akallabeth 84c3e5b027 [cmake] fix pkg-config check 2023-11-21 14:29:47 +01:00
akallabeth a232cec690 [codec,dsp] fix opus related code
* proper library detection
* default to NOT WITH_DSP_FFMPEG
* disable if WITH_DSP_FFMPEG
2023-11-21 14:29:47 +01:00
Pascal Nowack 330f7ae0a2 codec/dsp: Add support for decoding Opus encoded streams
The Opus codec is a modern free audio codec, that is also royalty-free.
Adding support for it will allow clients and servers supporting it to
transfer audio in similar efficient way like with AAC.
So, add support it.
2023-11-21 14:29:47 +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
akallabeth 89429885a0 [cmake] make generated pkg-config files relocatable
* new CMake option PKG_CONFIG_RELOCATABLE (default ON) allows generating
  traditional or relocatable pc files
2023-10-10 19:35:27 +02:00
akallabeth 539546a6be [cmake] correctly link WinPR to FreeRDP 2023-08-31 11:39:22 +02:00
Kai Pastor 5ecc011c13 Export interface include directories 2023-08-01 11:12:46 +02:00
akallabeth a0d38914d6 [core,aad] refactor use of cJSON
* link cJSON public to FreeRDP
* export compatibility functions for older versions of cJSON
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
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
Armin Novak f26dc59a9d [core,aad] make AAD optional
* make cJSON an optional dependency
* disable AAD if cJSON was not compiled in
2023-03-10 16:38:07 +01:00
Armin Novak a9c52e1c79 [cmake] manual cJSON detection
older builds do not ship the cmake files required for
find_package in their libcjson-dev package.
2023-03-10 16:38:07 +01:00
Armin Novak 8219c30eef [build] fixed cJSON dependency
need to find_package at top level so symbols are defined for add_library
and target_*
2023-03-10 16:38:07 +01:00
akallabeth d4808dd3e1 Fixed various compiler warnings 2022-12-09 15:58:26 +01:00
Armin Novak 6ab2cb6d99 Fixed mutially exclusive CAIRO and SWSCALE includes
When both are defined there was a build error due to missing
includes.
2022-10-19 20:31:53 +02:00
tianyuanzhonglu 0460215a24
Fix indentation issue (#8098)
Co-authored-by: wy <wy@local>
2022-07-29 12:07:25 +02:00
Armin Novak 3bedc1f92e Fixed swscale and cairo checks 2022-07-06 13:09:46 +00:00
akallabeth 7f0efb0e9f Fixed missing ffmpeg link to libfreerdp 2022-07-05 20:07:10 +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
David Fort 77413f49b2 winpr: rework alignment functions
_align_XXX functions aren't widely available depending on the C runtime. That causes
problems with mingw where we can easily have some runtime mixes (which lead to mysterious
segfaults most of the time). This patch introduce winpr_aligned_XXX functions that will
either use the function available, or use an emulation layer.
2022-05-12 11:36:01 +02:00
akallabeth 7f13ac17e2 Unified neon source options 2022-05-04 09:28:29 +02:00
akallabeth bba427e71a No longer export ncrush, xcrush and mppc codecs 2022-04-28 11:24:29 +02:00
akallabeth 0d999e9c99 Removed unused CMAKE_BUILD_TYPE c define 2022-03-03 11:26:48 +01:00
Armin Novak ac98dfa502 Fixed mediacodec backend
* Link directly, no runtime linking. (It is part of the NDK for API >=
  21)
* Fix problems with functions introduced with API 26 and 28
2022-02-24 12:06:06 +01:00
Armin Novak d3ae4cf26d Added code assertions, fixed loading order 2022-01-26 10:24:26 +01:00
Ely Ronnen 91540862df import libmediandk.so dynamically 2022-01-26 10:24:26 +01:00
Ely Ronnen 52202762e8 adding mediacodec h264 implementation using NDK 2022-01-26 10:24:26 +01:00
akallabeth 8c543b1de2 Added smartcard emulation layer 2022-01-11 12:34:43 +01:00
David Fort 67986ea298 Fix compilation with mingw
This patch addresses some issues when compiling against mingw. With these changes
FreeRDP can be compiled out-of-the box on a Ubuntu 20.04.
2021-11-15 09:23:16 +01:00
Armin Novak 6e075a6a7d Fixed #7158: detection of arm neon. 2021-07-08 07:54:26 +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 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