Peter Keresztes Schmidt
7d501a6585
Remove libavresample support
...
libavresample hasn't been maintained for a long time by FFmpeg since libswresample superseded it.
In 2018 it was officially deprecated [1].
Let's remove the support for it since there is no need to maintain this option further.
[1] https://patchwork.ffmpeg.org/project/ffmpeg/patch/20171225175335.18183-1-atomnuker@gmail.com/
2021-06-04 23:46:58 +02:00
Peter Keresztes Schmidt
db9b739562
Build: Add CMake package module for FFmpeg
2021-06-04 23:18:30 +02:00
Peter Keresztes Schmidt
e724a93395
Build: Remove in-tree version of CheckPrototypeDefinition
...
We currently don't use the module and all supported CMake versions ship this module if needed.
2021-06-01 08:41:44 +02:00
Peter Keresztes Schmidt
45654cb514
Build: Make the JWT backend selectable
...
Introduce the -DZM_JWT_BACKEND CMake option through which the JWT backend can be selected.
Supported values: jwt_cpp (default; in-tree) and libjwt
When libjwt is chosen ZM_CRYPTO_BACKEND is taken into account to select the corresponding flavour of libjwt.
2021-05-29 21:37:30 +02:00
Peter Keresztes Schmidt
e8adf5d331
Build: Enable std::vector ASAN annotation in libstdc++
...
By defining _GLIBCXX_SANITIZE_VECTOR when ASAN is enabled `std::vector` operations
will be annotated so ASAN can detect invalid accesses.
See https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html
2021-05-29 19:55:17 +02:00
Peter Keresztes Schmidt
8379ab70be
Build: Disable Wstringop-truncation in GCC ASAN builds
...
These two options don't work well together and lead to false positives.
Follow-up on e5cac38521
2021-05-28 00:08:46 +02:00
Peter Keresztes Schmidt
e232b5d1a7
Build: Disable Wmissing-field-initializers on older GCC versions
...
GCC 5.1 corrected the behaviour in regard that the C++11 initialisation behaviour is respected.
2021-05-24 01:15:00 +02:00
Peter Keresztes Schmidt
c8f2a813e3
Build: Enable VLA warnings
...
VLAs (variable-length arrays) are a C99 feature and were never standardised for C++.
There are better alternatives in C++ (mainly std::vector). Enable the warnings
so no new ones can be introduced.
2021-05-17 22:12:04 +02:00
Peter Keresztes Schmidt
bf08502b9c
Build: Add CMake option to enable Werror
...
With -DENABLE_WERROR the -Werror flag will be passed to the compiler failing the build if a warning is emitted.
2021-05-01 00:07:12 +02:00
Isaac Connor
03b8a98bae
xenial has cmake 3.5.1. VERSION_LESS_EQUAL was introduced in 3.7. So lets use VERSION_LESS,11 instead
2021-04-19 17:06:54 -04:00
Peter Keresztes Schmidt
0676f71cd6
Build/GCC: Suppress -Wclobbered warnings on older compilers
...
There were a high number of false positives with old compilers. Suppress these warnings on them.
2021-04-12 08:58:57 +02:00
Peter Keresztes Schmidt
b93d5556b2
Build: Re-enable Wtype-limits on GCC
2021-04-12 00:25:04 +02:00
Peter Keresztes Schmidt
e8565b0704
Build: Enable implicit fallthrough warnings on clang
2021-04-11 23:39:35 +02:00
Peter Keresztes Schmidt
0ab6b04fa1
build: Enable Woverloaded-virtual on GCC
2021-04-11 01:28:23 +02:00
Andrew Bauer
663c7f51f5
don't set -Wconditionally-supported on older gcc
2021-04-07 10:01:46 -05:00
Peter Keresztes Schmidt
d1bbfdaf6b
Build: Enable -Wconditionally-supported on GCC
...
We want to have warnings if we use some implementation-specific features of GCC
to be able to keep compatibility with clang.
2021-03-18 20:02:23 +01:00
Isaac Connor
0da9ee2e4c
Remove live555 detection
2021-03-11 08:08:01 -05:00
Peter Keresztes Schmidt
0796a2262e
Utils: Replace stringtf with a type-safe version that can't overflow
2021-03-06 00:12:18 +01:00
Peter Keresztes Schmidt
b0f0731b47
build: Add base target for dependencies
...
The zm-dependency-interface target sets compiler flags in a way suitable for external dependencies.
This means mainly to disable compile warnings since they concern upstream and not us.
2021-02-27 15:40:38 +01:00
Peter Keresztes Schmidt
6e2f8bfedb
build: Enable Wextra with some exceptions
...
-Wno-cast-function-type:
Signal handler code relies on this.
-Wno-type-limits:
Some of the color space conversion code in zm_image throws this warning. To not break anything let's ignore this warning for the time being.
Note that clang enables -Woverloaded-virtual with -Wextra. To not flood the GCC build log with warnings let's not enable this at the moment.
This will be done in a second step, when the currently throwing code will be cleaned up.
2021-02-27 02:08:14 +01:00
Peter Keresztes Schmidt
4c07bf5aae
Build: Add ThreadSanitizer (TSan) support
...
Enable it by setting -DTSAN=1
This setting is mutually exclusive with -DASAN
2021-02-11 00:38:31 +01:00
Peter Keresztes Schmidt
4ebfbdef5d
Build: Work around CMake version on Xenial not supporting cxx_std_* flags
...
Closes #3146
2021-02-09 13:20:27 +01:00
Peter Keresztes Schmidt
424e6e14f6
Build: Add -DASAN option to build with AddressSanitizer support
...
Use this option only for debugging purposes.
2021-02-08 23:13:31 +01:00
Peter Keresztes Schmidt
825ca07561
Build: Use zm-* interfaces to set cxx standard and warning flags
2021-02-08 23:08:22 +01:00
Peter Keresztes Schmidt
44be2ccf6c
Build: Add a set of interface targets which can be used to set compilation options
...
zm-compile-option-interface:
Use to set various compiler/linker flags
zm-feature-interface:
Use to set required compiler features.
See https://cmake.org/cmake/help/latest/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
zm-warning-interface:
Use to set compiler warning flags. If need be a zm-no-warning-interface can be added which suppresses all warning for targets linked against it. Useful for in-tree dependencies from which we don't want compiler warnings.
zm-core-interface:
That's the interface one should normally link against to get all the options.
2021-02-08 23:08:22 +01:00
Peter Keresztes Schmidt
407ea70991
Build: Add support for compiler detection
...
Using this system we can separate settings for different compilers nicely.
2021-02-08 23:08:22 +01:00
Peter Keresztes Schmidt
36253048f5
Build: Move platform detection to its own module
2021-02-08 23:08:22 +01:00
Isaac Connor
d571b2dd98
Add live555 detection and HAVE_RTSP_SERVER config
2020-12-08 15:59:06 -05:00
Andrew Bauer
92cc03dbe8
fix pod2man out-of-source builds
2020-08-04 21:07:49 -05:00
hax0kartik
2091ad8c92
Add libjwt and remove gnutls-openssl wrapper
2020-03-05 09:29:27 -08:00
Andrew Bauer
08899b69c3
update ENDMACRO
2018-12-08 12:04:57 -06:00
Andrew Bauer
db81465fa2
allow one to set manpage destination
2018-12-07 09:47:00 -06:00
Isaac Connor
f5a29bb679
Revert "add recipes to detect libv4l2"
...
This reverts commit d67cb0d0df
.
2016-09-29 09:29:57 -04:00
Isaac Connor
d67cb0d0df
add recipes to detect libv4l2
2016-09-28 09:14:44 -04:00
Isaac Connor
58448adb51
Merge pull request #896 from knnniggett/pod2man
...
Generate man pages for perl scripts & C Binaries in the bin folder
2015-07-03 11:40:24 -04:00
Andrew Bauer
005d880453
typo
2015-06-25 08:07:31 -05:00
Andrew Bauer
3f6333a33d
modify polkit checks & move host os check
2015-06-25 08:01:24 -05:00
Andrew Bauer
fd239f6545
Generate man pages for perl scripts in the bin folder
2015-06-20 15:22:11 -05:00
Isaac Connor
199c94e7db
Add Sendfile checks for cmake
2015-03-31 23:07:19 -04:00
Andrew Bauer
1e8e710f5a
full systemd support
2014-08-10 08:47:11 -05:00
Kfir Itzhak
f5f573af93
Added an uninstall target to cmake and few text corrections to the INSTALL file
2013-10-21 16:11:37 +03:00
Kfir Itzhak
b558d42cdc
Improvements to cmake: Better support for CMAKE_PREFIX_PATH enviroment variable (and similar ones), added ZM_PERL_SUBPREFIX and ZM_PERL_USE_PATH options and improved detection of libraries and headers
2013-10-09 15:41:14 +03:00
mastertheknife
48f11a8064
Add cmake to zoneminder
2013-09-28 12:59:50 +03:00