Commit Graph

549 Commits

Author SHA1 Message Date
akallabeth
bc70bbd30e
[cmake] unify -fno-omit-frame-pointer 2024-11-08 09:01:25 +01:00
akallabeth
c43242fdde
[cmake,buildflags] replace CMAKE_SOURCE_DIR and CMAKE_BUILD_DIR
replace source and build directories with palceholders
2024-11-07 20:10:57 +01:00
akallabeth
ebcf4c44a9
[cmake,gcc,clang] use -fmacro-prefix-map and -ffile-prefix-map
Instead of some bash path substitution only working with Makefiles use
the compiler options to map source and build directories to some
defaults
2024-11-07 16:52:01 +01:00
Martin Fleisz
9a21b81422
Merge pull request #10465 from akallabeth/desktop-files
[client,common] add WITH_INSTALL_CLIENT_DESKTOP_FILES
2024-10-25 12:33:27 +02:00
akallabeth
c377b0ce86
[client,common] add WITH_INSTALL_CLIENT_DESKTOP_FILES
This new CMake option allows installing .desktop files and application
icons if turned on.
2024-10-25 12:11:54 +02:00
akallabeth
a27d9508e2
[cmake] unify CFLAGS to string
* move to common CMake function
* escape CFLAGS
2024-10-25 11:40:43 +02:00
akallabeth
a3aa01214c
[resource root] unify locations
unify resource locations in case WITH_BINARY_VERSIONING is set.
2024-10-25 11:40:40 +02:00
akallabeth
1675d926d2
Merge pull request #10776 from akallabeth/packaging-tests
[cmake] split tests
2024-10-24 11:26:17 +02:00
Armin Novak
527db6783b
[cmake] split tests
* Keep BUILD_TESTING, but only run tests compatible with API (for
  packaging)
* Add BUILD_TESTING_INTERNAL for all tests including internal function
  tests that modify API to be run on our CI
2024-10-24 09:45:44 +02:00
Armin Novak
0d7edfd884
[cmake] enforce a supported build type
We check for build types internally to enable/disable debug options.
Ensure the CMAKE_BUILD_TYPE is either not set or set to a supported
value.
2024-10-24 09:08:00 +02:00
akallabeth
575b926626
[cmake] disable -Wpre-c11-compat 2024-10-22 16:02:38 +02:00
akallabeth
57969939e3
[cmake] watch config files
As we do add configure_file output to clean target cmake configure must
be rerun. To trigger that add source and generated file to
CMAKE_CONFIGURE_DEPENDS
2024-10-17 22:27:45 +02:00
akallabeth
24954bf6ed
[cmake] make CMAKE_BUILD_TYPE selectable 2024-10-17 15:56:33 +02:00
Armin Novak
c3a5387187
[manpages] switch generation to pure CMake
* Ditch docbook/xmlto, use plain manpage files
* Add CMake functions to concatenate manpate sections
* Modify generate_argument_manpage helper tool to generate manpage
2024-10-09 21:41:14 +02:00
Armin Novak
8fcc59ed27
[ci] remove docbook and xml dependencies 2024-10-09 20:42:09 +02:00
Armin Novak
f72db3f9f7
[cmake] fix TODAY macro 2024-10-09 20:41:59 +02:00
Armin Novak
b73befd677
[cmake] reenable -Wlanguage-extension-token
since the offending macros are now silenced reenable the warning so we
are warned about unintentional use of extensions.
2024-10-09 10:09:49 +02:00
akallabeth
008de893fe [cmake,c++] define NOMINMAX
Windows header define min and max posing issues with c++ standard
library
https://stackoverflow.com/questions/4913922/possible-problems-with-nominmax-on-visual-c
2024-10-08 16:36:01 +02:00
akallabeth
cfc37caeb8
[cmake] cleaning_configure_file
add a wrapper to automatically add generated files to clean target
2024-10-02 23:28:08 +02:00
Armin Novak
0df01bcf8d
[cmake] Allow disabling AVX2 extensions 2024-10-02 15:14:29 +02:00
akallabeth
fe590801a1
[cmake] replace custom file2hex tool
Use CMake to read file and convert to C array of hex values
2024-09-30 10:50:36 +02:00
Armin Novak
9fc7e5bfd9
[cmake] default ENABLE_WARNING_VERBOSE=OFF 2024-09-25 10:28:49 +02:00
akallabeth
c766c13103
[cmake,ffmpeg] fix version detection
If not detected by pkg-config fall back on header file parsing to
extract the version of the FFmpeg component.
2024-09-24 09:47:46 +02:00
akallabeth
ed942f8c20
[warnings,c++] deactivate -Wexit-time-destructors
This warning can be ignored as on all supported platforms memory, file
and network resources are cleared up on program termination.
2024-09-20 17:35:52 +02:00
akallabeth
516cf54c75
[compiler,warnings] disable -Wlanguage-extension-token
Expression Statements are not supported by ISO C but we require it for
certain macros. Disable this warning as it just yields false positives.
2024-09-20 13:34:24 +02:00
Armin Novak
107a8d9f48
[compiler] disable C++ warnings
Projects are set to require C++ 17, so disable all warnings complaining
about compatibility with previous versions of the standard.
2024-09-20 09:17:22 +02:00
Armin Novak
c509aabc08
[cmake] disable -Wdisabled-macro-expansion
this warning does not yield useful results for FreeRDP, disable by
default.
2024-09-20 09:16:33 +02:00
Armin Novak
96052ca2fb
[build,c++] add CXXCompilerFlags to set warnings
Just like with the C components and CompilerFlags.cmake add a
configuration for C++ that disables specific warnings only found in C++
code.
2024-09-20 09:16:30 +02:00
akallabeth
2bcf2c50eb
[channels,rdpear] fix krb5 inclusion
* do not expose the krb5 include path in interface library, it is
  private to the object library
* fix include krb5.h instead of krb5/krb5.h
2024-09-14 21:29:18 +02:00
akallabeth
7ef9345743
Merge pull request #10549 from hardening/rcg2
core, channels: client-side remote credential guard
2024-09-13 08:24:14 +02:00
akallabeth
c427d0cfb2
[cmake] add helper to dump target properties 2024-09-11 20:48:32 +02:00
David Fort
a4bd5ba886 core, channels: client-side remote credential guard
This patch implements the client-side part of the remote credential guard feature
as described in MS-RDPEAR. The 2 main changes are: shipping the TSRemoteGuardaCreds in
NLA, and implement the rdpear channel that allows LSASS to remote all the calls to
our client. For now it's UNIX only as the windows implementation would be implemented
in a completely different way.
To test, you may establish you ccache and then connect with (RCG enabled on the server):
	xfreerdp /remoteGuard /u:<user> /d:<domain> /v<server>

That should log you in, and in the session you should not be asked for credentials when
doing mstsc /remoteGuard /v:<other server>.
2024-09-11 17:15:11 +02:00
akallabeth
9d10923524
Merge pull request #10580 from akallabeth/more-warn-fixes
More warn fixes
2024-09-10 17:07:12 +02:00
akallabeth
529ce7534b
[cmake,compiler] disable -Wswitch-enum warning
the warning is quite useless as we do not always list all enumerations
in a switch.
2024-09-10 14:42:44 +02:00
akallabeth
801c825e2b
update-doxyfile 2024-09-10 08:31:19 +02:00
akallabeth
52ee2e4668
[cmake] unify ffmpeg and swscale detection 2024-09-09 12:20:17 +02:00
akallabeth
073426d4c1
[cmake,ffmpeg] update CMake detection script 2024-09-09 08:52:11 +02:00
akallabeth
af813a0929
[cmake,clang-tidy] do not use explicit .clang-tidy
if not explicitly added the nearest .clang-tidy file to the compiled
source is used.
2024-08-29 11:18:36 +02:00
akallabeth
3b8dc5c183
[cmake] move WITH_VERBOSE_WINPR_ASSERT
Since the definition is common to FreeRDP and WinPR move it to
CommonConfigOptions
2024-08-29 08:44:39 +02:00
Armin Novak
d71af44bb1
[warnings] disable warnings for generated code
* Disable clang-tidy in test build directories
* Disable compiler warnings for test binary directories.

These contain generated code we can not change, so the warnings are just noise
2024-08-28 09:18:30 +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
44b07721ec
[client,X11] fix ActionScript
* Unify script calls
* Update documentation
* Fix home directory
2024-07-25 09:42:03 +02:00
akallabeth
b1355471c5
[cmake,intrinsics] fix NEON detection
* detect 32bit ARM architectures
* do not set -mfpu=neon for 64 bit architectures
2024-07-05 09:45:34 +02:00
Armin Novak
3c41de6382
[cmake] move intrinsic support to file
Create DetectIntrinsicSupport.cmake to unify intrinsic detection and use
2024-07-04 13:25:40 +02:00
akallabeth
26e570e9fe
[cmake] unify clang detection
* Move Clang detection to own CMake file
* Check for Clang and AppleClang
* Use CMAKE_COMPILER_IS_CLANG to check for Clang in code
2024-06-25 09:09:50 +02:00
akallabeth
3abd141451
[cmake] fix JSON detection 2024-06-19 14:28:34 +02:00
oleg0421
0af0f31e27 RDPECAM client: cmake FindV4L script 2024-06-10 14:48:31 +02:00
akallabeth
04e3fe0b06
[client,sdl] update manpages
* Respect default configuration directory depending on
  WITH_FULL_CONFIG_PATH
* Unify manpage files for SDL2 and SDL3
2024-06-06 11:42:09 +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
Armin Novak
e9296e1179
[client,sdl] fix architecture paths for WebView2 2024-06-05 14:54:27 +02:00