Peter Keresztes Schmidt
8129600a37
Build: Cleanup gnutls/openssl defines
...
We only need HAVE_LIBGNUTLS and HAVE_LIBOPENSSL to compile the right crypto backend.
2021-05-30 22:56:21 +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
caadc41bfd
Build: Make the crypto backend selectable
...
Introduce the -DZM_CRYPTO_BACKEND CMake option through which the crypto backend can be selected.
Supported values: openssl (default) and gnutls
This commit makes OpenSSL or GnuTLS a requirement to compile/run ZoneMinder.
Following restriction applies:
* If libjwt is not found we fall back to jwt-cpp which only supports OpenSSL
2021-05-29 21:37:30 +02:00
Peter Keresztes Schmidt
b81689aa3f
Remove libgcrypt as dependency
...
GnuTLS used gcrypt as backend but switched in ~2011 to nettle.
Thus we don't need to/shouldn't depend on it.
2021-05-29 21:37:30 +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
Peter Keresztes Schmidt
3b705c15fe
build: Store all generated sources in CMAKE_BINARY_DIR
...
config.h is already generated there so move zm_config_data.h and zm_config_define.h
there as well. Also limit the scope of CMAKE_BINARY_DIR as include directory to the zm target.
All in all this makes zm_config_data and zm_config_define available when building the tests target.
2021-04-11 01:28:23 +02:00
Isaac Connor
0da9ee2e4c
Remove live555 detection
2021-03-11 08:08:01 -05:00
Peter Keresztes Schmidt
1a6b26f2ab
build: Add fmt as a required dependency
2021-03-01 22:43:02 +01:00
Peter Keresztes Schmidt
c33b5a4393
Move in-tree dependencies to their own folder
...
src/ should only contain our code. Move the in-tree dependencies to dep/
This allows us (if necessary) to e.g. exclude that part of the tree from being analyzed by
various tools or mark it as external code in IDEs.
2021-02-28 02:12:07 +01:00
Peter Keresztes Schmidt
866bcc9518
build: Cleanup CMakeLists.txt of libbcrypt
...
Remove unnecessary cruft and make sure it uses our compile options as dictated by zm-dependency-interface.
An additional step towards a warning-free compile.
Define __SKIP_GNU on BSD since they have their own bcrypt implementation.
2021-02-28 02:12:07 +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
426cace32e
Build: Raise required CMake version to 3.5.0
...
This is the version found in Xenial which is the oldest we support.
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
36253048f5
Build: Move platform detection to its own module
2021-02-08 23:08:22 +01:00
Isaac Connor
8f9637f21a
Merge pull request #3129 from Carbenium/cmake-reformat
...
Build: Reindent the CMakeLists
2021-02-04 17:20:34 -05:00
Peter Keresztes Schmidt
6c9983155c
Build: Reindent the CMakeLists
...
Indent with 2 spaces
Also remove expressions form closing tags. They have been made optional a while ago since they make reading rather more difficult.
2021-02-04 22:00:56 +01:00
Peter Keresztes Schmidt
dd527f0888
Consolidate __STDC_FORMAT_MACROS and __STDC_CONSTANT_MACROS definition
...
Move the definitions to zm_define.h and include the header at the appropriate locations.
These macros have not been adopted by the C++11 standard.
However glibc 2.17 (CentOS 7) still depends on them to provide the macros which are guarded by these defines.
2021-02-04 19:58:29 +01:00
Isaac Connor
c57c50fd4a
Merge pull request #3123 from Carbenium/catch2
...
[RFC] Add Catch2 as C++ test framework and some exemplary tests
2021-02-04 12:57:04 -05:00
Peter Keresztes Schmidt
bef4e4032f
Add Catch2 as C++ test framework
...
Use -DCMAKE_BUILD_TEST_SUITE=1 during CMake invocation to activate building the tests.
The 'tests' target builds the unit tests which can then be executed using the 'test' target.
We depend on the Catch2 version of the system.
Since development normally takes place on current OSs, this shouldn't pose a problem.
2021-02-04 18:53:54 +01:00
Isaac Connor
513739aeb5
Merge pull request #3127 from Carbenium/header-cleanup
...
Cleanup and reorganize includes
2021-02-04 12:52:04 -05:00
Peter Keresztes Schmidt
21fdb1f345
Build: Add libLive555 to optlibsnotfound if not found
2021-02-04 18:02:08 +01:00
Peter Keresztes Schmidt
4db0dea1f2
Build: Make building man pages optional (enabled by default)
...
Add a new CMake option (-DBUILD_MAN) which can be used
to deactivate the man page build steps.
This is especially useful in a development situation where "make all"
is needlessly slowed down by these build steps.
2021-02-03 21:22:28 +01:00
Isaac Connor
d0f307101b
Report on finding live555 libs
2021-01-29 15:49:40 -05:00
Isaac Connor
f9e003de22
Remove mp4v2 and libx264 from cmake
2021-01-28 09:07:54 -05:00
Isaac Connor
70bef9f22a
put back c++11 as the c std
2021-01-26 15:43:29 -05:00
Isaac Connor
284b9f963f
Merge branch 'master' into zma_to_thread
2020-12-29 12:18:26 -05:00
Isaac Connor
d571b2dd98
Add live555 detection and HAVE_RTSP_SERVER config
2020-12-08 15:59:06 -05:00
Isaac Connor
b261fbb397
Merge branch 'master' into zma_to_thread
2020-12-07 16:26:26 -05:00
Isaac Connor
7326af95a9
Add ZM_FONTDIR as a place to store fonts for timestamping
2020-12-01 09:21:25 -05:00
Isaac Connor
2eda49333f
Merge branch 'master' into zma_to_thread
2020-10-20 16:20:29 -04:00
Isaac Connor
7f06920f4a
convert polkit FATAL_ERROR to a WARNING so that codeQL will build
2020-10-02 10:33:42 -04:00
Isaac Connor
06519895d4
FATAL_ERROR to WARNING. The purpose is to allow codeQL to build cpp even though the perl deps havn't been installed.
2020-10-02 09:04:03 -04:00
Isaac Connor
5fb56c9f57
Merge branch 'master' into zma_to_thread
2020-08-07 17:52:43 -04:00
Andrew Bauer
92cc03dbe8
fix pod2man out-of-source builds
2020-08-04 21:07:49 -05:00
Isaac Connor
869860bb26
Merge branch 'master' into zma_to_thread
2020-07-21 17:49:39 -04:00
Isaac Connor
7575afc8d5
Merge branch 'master' into zma_to_thread
2020-07-21 17:38:32 -04:00
Isaac Connor
dd25cb3b4e
We always build onvif
2020-05-09 17:34:15 -04:00
Isaac Connor
75082064fd
Merge branch 'master' of github.com:zoneminder/ZoneMinder into onvif_updated_to_upstream
2020-05-09 16:40:17 -04:00
Isaac Connor
732bb5416f
Merge branch 'master' into onvif_updated
2020-05-09 16:26:29 -04:00
Isaac Connor
4ff341a0f5
Merge branch 'master' into zma_to_thread
2020-05-02 18:03:42 -04:00
Isaac Connor
ed7c0815de
Merge branch 'release-1.34'
2020-04-24 17:05:32 -04:00
Isaac Connor
e79a9d5abf
Can't set this policy yet as we havn't deprecate trusty for 1.34
2020-04-23 18:33:58 -04:00
Isaac Connor
01a2880100
fix build outside of build directory
2020-04-23 18:18:04 -04:00
hax0kartik
32c137bb8e
Do not look for gnutls if libjwt is not found
2020-04-23 18:00:00 -04:00
Isaac Connor
4b53c7660e
Merge pull request #2911 from hax0kartik/dl-curl
...
Dynamically load libcurl, libvlc and libvnc
2020-04-22 09:49:37 -04:00
Isaac Connor
89b199625a
Add Optimised setting to use -O3
2020-04-14 16:59:22 -04:00
hax0kartik
f15ffee043
Do not include the static libvnc library
2020-04-14 03:11:28 +05:30
hax0kartik
640dfdd4a0
Dynamically load libvnc at runtime
2020-04-14 02:46:01 +05:30
hax0kartik
1c4e4abbab
Do not look for gnutls if libjwt is not found
2020-04-14 00:40:47 +05:30
hax0kartik
143ad394a9
Dynamically load libvlc
2020-04-14 00:15:06 +05:30
hax0kartik
3a8b931cda
Fix stuff
2020-04-08 12:52:09 -04:00
hax0kartik
64f57aa373
Dynamically load libcurl at runtime
2020-04-08 05:18:16 -04:00
Isaac Connor
14c28715d8
Fix warnings about hashed authentication not being available when using gnutls. Also set cmake_policy(SET CMP0054 NEW) to quiet warnings
2020-04-05 13:36:20 -04:00
Isaac Connor
2d5d87839f
Fix warnings about hashed authentication not being available when using gnutls. Also set cmake_policy(SET CMP0054 NEW) to quiet warnings
2020-04-05 13:35:21 -04:00
Isaac Connor
72ba972a2a
whitespace
2020-04-05 13:23:36 -04:00
hax0kartik
eed45ae66c
Fix 2892
2020-03-26 12:08:44 -04:00
hax0kartik
5b1409d8df
Add cmake rules to check for libvnc
2020-03-25 23:29:22 -07:00
hax0kartik
a70ab85407
Fix 2892
2020-03-24 09:29:19 -07:00
Isaac Connor
bb72e3000c
Merge pull request #2867 from veprbl/pr/cmake_install_full
...
cmake: use CMAKE_INSTALL_FULL_
2020-03-06 15:05:50 -05:00
Isaac Connor
3a129a8818
Merge pull request #2874 from hax0kartik/2810-libjwt
...
Add libjwt and remove gnutls-openssl wrapper
2020-03-06 14:48:45 -05:00
Isaac Connor
835966eb24
Merge pull request #2874 from hax0kartik/2810-libjwt
...
Add libjwt and remove gnutls-openssl wrapper
2020-03-05 15:30:27 -05:00
hax0kartik
2091ad8c92
Add libjwt and remove gnutls-openssl wrapper
2020-03-05 09:29:27 -08:00
Isaac Connor
444c6fd372
Revert "Add libjwt as a optional library"
2020-03-04 13:57:27 -05:00
Isaac Connor
641b191c34
Merge pull request #2867 from veprbl/pr/cmake_install_full
...
cmake: use CMAKE_INSTALL_FULL_
2020-03-04 12:00:11 -05:00
Isaac Connor
5443e6385b
Merge pull request #2844 from hax0kartik/2810-libjwt
...
Add libjwt as a optional library
2020-03-04 11:58:27 -05:00
hax0kartik
1dd8a71b52
Fix conditionals for when to look for openssl
2020-03-03 09:16:24 -08:00
hax0kartik
c048590b49
Look for openssl when libjwt is not found
2020-03-03 08:54:00 -08:00
hax0kartik
60d3243e69
Look for openssl as well when gnutls-openssl wrapper is not found
2020-03-03 08:35:24 -08:00
hax0kartik
ef3d7497d0
Only look for libjwt-gnutls and look for openssl only if gnutls is not found
2020-03-03 07:39:29 -08:00
Dmitry Kalinkin
a703d96c13
cmake: use CMAKE_INSTALL_FULL_
...
CMAKE_INSTALL_FULL_ is to be used as a definition of the full path.
https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
2020-03-03 08:41:53 -05:00
hax0kartik
cfcaf0fb81
Change how cmake looks for gnutls and gnutls-openssl
2020-03-01 08:42:39 -08:00
hax0kartik
70ef3d0eba
Look for gnutls-openssl and gnutls separately
2020-03-01 08:33:56 -08:00
Isaac Connor
40627ab102
fix build outside of build directory
2020-02-27 12:00:09 -05:00
Isaac Connor
40742503b9
Add a warning when there is no AVCODEC
2020-02-27 11:56:49 -05:00
hax0kartik
b1ce0ec0e8
Fix cmake
2020-02-23 06:18:32 -08:00
hax0kartik
46d77ee849
Add libjwt as a optional library
2020-02-20 07:55:59 -08:00
Isaac Connor
396be10d6f
Merge branch 'master' into zma_to_thread
2019-08-22 12:57:00 -04:00
Andrew Bauer
82672d9b86
stop bcrypt files from installing with zm
2019-06-23 13:20:08 -05:00
Andrew Bauer
00183b535a
rename bcrypt to libbcrypt to reflect name of the project
2019-06-23 12:56:04 -05:00
Andrew Bauer
8b37c0e9b0
remove bcrypt & jwt-cpp as submodules, bring in statically under src
2019-06-23 12:12:12 -05:00
Isaac Connor
c4d76f03c9
Introduce ZM_PATH_SHUTDOWN to cmake config
2019-05-27 12:09:32 -04:00
Pliable Pixels
d252a8ba30
build bcrypt as static
2019-05-02 10:52:21 -04:00
Pliable Pixels
65a57feedb
absolute path
2019-05-01 14:30:00 -04:00
Pliable Pixels
c663246f0a
try add_library instead
2019-05-01 14:22:10 -04:00
Pliable Pixels
a5de45419f
added sha1 and bcrypt submodules
2019-05-01 13:08:52 -04:00
Isaac Connor
a9e2011727
Merge branch 'storageareas' into zma_to_thread
2019-02-13 12:24:38 -05:00
Andrew Bauer
3258d8e590
remove ZM_DIR_IMAGES ( #2374 )
2018-12-29 09:52:58 -05:00
Andrew Bauer
893048c306
remove option to build with no ffmpeg ( #2365 )
2018-12-28 10:46:27 -05:00
Isaac Connor
28dafd5931
Merge branch 'storageareas' into zma_to_thread
2018-12-26 12:02:00 -05:00
Isaac Connor
6ee72aa2d9
Implement libswresample support as an alternative to libavresample, which is deprecated
2018-12-20 14:06:56 -05:00
Isaac Connor
53c66e44db
Implement libswresample in place of libavresample which is deprecated
2018-12-20 13:38:24 -05:00
Isaac Connor
3a068ae6a3
Merge branch 'master' into swresample
2018-12-16 16:15:28 -05:00
Andrew Bauer
db81465fa2
allow one to set manpage destination
2018-12-07 09:47:00 -06:00
Isaac Connor
1fa13e5757
Add SWRESAMPLE libs
2018-10-24 13:10:54 -04:00
Isaac Connor
979b31ffc3
Merge branch 'storageareas' into zma_to_thread
2018-08-11 10:08:30 -04:00
Andrew Bauer
18c3618e28
Arp tool ( #2155 )
...
* let cmake set path to arp
* declare cameras array
* fix probeV4L function
* typo
* fix another typo - my machine is possessed.
* update redhat, debian, ubuntu build dependencies
2018-07-11 15:43:59 -04:00
Isaac Connor
f6139d33ed
Merge branch 'storageareas' into zma_to_thread
2018-05-05 12:25:11 -04:00
Andy Bauer
02f8493b39
rpm packaging - remove support for sysvinit aka el6
2018-04-22 07:25:06 -05:00