Commit Graph

563 Commits

Author SHA1 Message Date
akallabeth
9f02fb017f [cmake] case insensitive simd check 2024-12-13 23:25:27 +01:00
akallabeth
c48a89b1e3 [cmake] add script to dump variables 2024-12-10 15:09:44 +01:00
akallabeth
e16085762d [cmake,configure_file] fix change checks
* Create temporary configuration files in a different build directory
* Copy the currently required configuration file only if it is different
  from the currently set one
* Use copy_if_different for build target configuration update
2024-12-10 15:03:50 +01:00
akallabeth
81e06db035 [cmake,compiler] fix clang detection
clang is branded with various names, regex match them all
2024-12-09 07:31:34 +01:00
akallabeth
180a9d7d72 [cmake,flags] print all configuration flags
Since we do not know wich configuration will be build with
multiconfiguration generators print out all C_FLAGS_XXX and
CXX_FLAGS_XXX variables
2024-12-05 09:36:26 +01:00
akallabeth
ba8fd2ada5 [cmake] force configuration options
limit multiconfiguration options to supported types
2024-12-05 09:36:23 +01:00
akallabeth
b4976163cd [CMake,simd] unify WITH_SSE2, WITH_AVX2, WITH_NEON
* Add new CMake option WITH_SIMD to enable best available instruction
  type
* Unify simd related defines in single header
2024-12-03 11:54:36 +01:00
akallabeth
faae38120c [cmake,format] reformat all cmake files 2024-11-27 20:41:48 +01:00
akallabeth
baebc02881 [cmake,compiler] check for GCC/clang greater equal 10
for -fdebug-prefix-map et al check for compilers supporting it.
2024-11-21 15:05:18 +01:00
stephanebill
4f2afa8c47 spell check with codespell 2024-11-20 16:53:40 -05:00
akallabeth
6f3e9d3dfc Merge pull request #10850 from akallabeth/pragma-warn
Pragma warn
2024-11-14 15:01:07 +01:00
akallabeth
af7849b579 [cmake] use relative paths for debug symbols
When not building a Debug configuration use relative paths for __FILE__
et al in the debug symbol entries
2024-11-14 13:45:05 +01:00
akallabeth
8883ccc503 [cmake] remove GCC -Wunknown-pragmas workaround
The offending pragma definitions are now only defined for coverity
builds
2024-11-14 13:26:21 +01:00
akallabeth
16657adf60 [cmake] workaround for older GCC
To fix the missing pragma -Wunknown-pragmas support for older GCC
disable this warning altogether if such a compiler is detected
2024-11-13 20:21:33 +01:00
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