Commit Graph

325 Commits

Author SHA1 Message Date
Moritz Bunkus
b57f01b297
remove compatibility code wrt. presence of FindNextChild in libEBML
The version number requirement/check suffices.
2021-02-22 16:53:49 +01:00
Moritz Bunkus
79bcf14c8f
only link against libstdc++fs if it's actually available
It's neither available nor required on macOS.
2021-02-20 00:43:48 +01:00
Moritz Bunkus
a16392cf7b
README, configure: adjust minimum compiler versions wrt. std::filesystem 2021-02-19 22:17:54 +01:00
Moritz Bunkus
752f66db45
switch from boost::filesystem to std::filesystem 2021-02-19 21:28:23 +01:00
Moritz Bunkus
77c5262da3
build system: require libEBML v1.4.2 2021-02-18 12:57:02 +01:00
Moritz Bunkus
eccff4a9cb
build system: require libMatroska 1.6.3 2021-01-31 19:46:49 +01:00
Moritz Bunkus
49be444a61
build system: require libEBML v1.4.1 or newer
libEBML < v1.4.1 contains a bug that leads to use-after-free access in
all of MKVToolNix's programs.

Part of the fix of #2989.
2021-01-04 17:08:59 +01:00
Moritz Bunkus
926301bfd4
fmt.m4: fix wrong name in comment 2020-09-30 17:19:32 +02:00
Moritz Bunkus
f588ebbe32
configure: check for system-wide installed jpcre2.hpp & use if new enough
Implements #2929.
2020-09-30 17:19:02 +02:00
Moritz Bunkus
941e47d97c
build system: look for & require the PCRE2 library 2020-08-20 13:29:29 +02:00
Moritz Bunkus
91579569b5
build system: require libMatroska v1.6.1 2020-08-02 14:08:17 +02:00
Moritz Bunkus
dd8a03a909
fix detection of QtDBus
Fixes #2886.
2020-07-30 13:34:06 +02:00
Moritz Bunkus
28608963d3
require libEBML 1.4.0, libMatroska 1.6.0 2020-06-22 12:47:37 +02:00
Moritz Bunkus
34b4ef1fbd
fmtlib: require at least 6.1.0 2020-05-15 10:33:12 +02:00
Moritz Bunkus
afa1d1437f
configure: add check for fmt::to_string function
That function is part of fmtlib v4 or newer. Use bundled copy if not
found.
2020-05-15 08:36:48 +02:00
Moritz Bunkus
540ba7f122
configure: remove tests for C++11 & C++14 features & corresponding -std= flags
The compilers that I support that implement the required C++17
functionality also implement the full C++11 and C++14 specifications.
2020-05-13 16:37:44 +02:00
Moritz Bunkus
f13c9c83fe
configure: add test for C++17 feature "constexpr if" 2020-05-13 16:34:17 +02:00
Moritz Bunkus
6570d48c53
use std::istringstream instead of boost::lexical_cast for parsing numbers 2020-05-12 22:04:42 +02:00
Moritz Bunkus
75cd193bea
use std::variant instead of boost::variant 2020-05-12 21:12:50 +02:00
Moritz Bunkus
debdc919d2
use std::gcd instead of boost::gcd 2020-05-12 19:01:56 +02:00
Moritz Bunkus
9cd9542ab5
use std::optional<bool> instead of boost::logic::tribool 2020-05-12 14:30:22 +02:00
Moritz Bunkus
b26288eb3b
use stdlib instead of Boost's Range & Adaptors libraries 2020-05-11 21:09:51 +02:00
Moritz Bunkus
067722bc96
switch from Boost's Date/Time library to std::chrono 2020-05-11 21:09:51 +02:00
Moritz Bunkus
77f686c15c
configure: fix --without-dvdread so that HAVE_DVDREAD isn't defined 2020-05-05 17:33:06 +02:00
Moritz Bunkus
c41e75013e
configure: add option for disabling building with libdvdread 2020-05-05 14:06:39 +02:00
Moritz Bunkus
a8139750c5
build system: look for and use libdvdread if found
This library is required for reading chapters from DVDs.

Part of the implementation of #2808.
2020-05-03 11:53:20 +02:00
Moritz Bunkus
9eb4a11b35
build system: run xsltproc with higher maximum recursion depth
On macOS the default `xsltproc` installation has the same limit (3000)
as on Linux, but for some reason it exceeds that limit on
macOS. Bumping it to 10000 lets builds succeed on macOS, too.

Fixes #2754.
2020-04-07 18:35:17 +02:00
Moritz Bunkus
ce3bdf3c9d
macOS: require 10.14 or newer
Several functions of `std::optional` are only available
on Mojave (10.14) and newer, unfortunately.
2019-12-31 16:08:55 +01:00
Moritz Bunkus
080dfeda57
source: use std::regex instead of boost::regex 2019-12-31 15:53:03 +01:00
Moritz Bunkus
ebf0ba5b6a
source: use std::optional instead of boost::optional 2019-12-30 21:37:46 +01:00
Moritz Bunkus
8630264aaa
GUI: require Qt ≥ 5.9.0; remove compatibility code for older versions 2019-11-07 21:28:34 +01:00
Moritz Bunkus
1a7b9ad4da
build system: require Boost 1.60.0 or newer 2019-11-03 14:30:34 +01:00
Moritz Bunkus
68d1f155e5
build system: require C++17 feature "nested namespace definition" 2019-10-31 18:34:04 +01:00
Moritz Bunkus
ff761e44c4
build system: require several C++17 features
* `[[maybe_unused]]` attribute
* structured bindings
2019-10-13 13:40:19 +02:00
Moritz Bunkus
8b078cb297
build system: fix configure handling of undefined behavior sanitizer arguments 2019-10-08 19:45:03 +02:00
Moritz Bunkus
0d962e30c4
build system: move flag generation to Rakefile for several features
Features include debuging, profiling, optimizations & sanitizers. The
flags don't depend on something that's actually tested, but only on
which features are enabled and which compiler & compiler version is
used. Therefore doing it in Ruby instead of sh is easier.
2019-10-08 00:44:08 +02:00
Moritz Bunkus
a47add8196
version_number_t: provide all comparison operators via Boost::Operators 2019-09-11 20:54:41 +02:00
Moritz Bunkus
598fe5e69e
configure: fix detection of libebml::FindNextChild
The internal libEBML was updated to v1.3.9. That version contains
changes to cmake to build an additional header file, ebml_export.h. In
MKVToolNix, which isn't cmake-based, that file has to be created
manually, and the Rakefile does so.

However, when configure runs the file doesn't exist yet. This means
that any attempt to compile a test program with the internal libebml
will fail due to the header not being found. configure's compilation
checks will therefore fail.

For the detection of libebml::FindNextChild doing a compilation check
against the internal libebml isn't really needed as we know that the
version does include it. So just hardcode that knowledge and avoid the
compilation check.
2019-05-25 17:48:24 +02:00
Moritz Bunkus
1e7a6b6e31
build system: test for and use -std=c++17 compiler flag if supported 2019-05-18 17:12:27 +02:00
Moritz Bunkus
3e8fa4b95e
build system: Docbook: look for & prefer -nons XSL stylesheets 2019-04-16 10:37:57 +02:00
Moritz Bunkus
218a6d71b4
build system: require libMatroska 1.5.0 2019-03-12 21:02:44 +01:00
Moritz Bunkus
82b8b1ba86
build system: require libEBML v1.3.7
This pulls the fixes for handling Unicode code points >
U+FFFF.

Part of the fix of #2516.
2019-03-06 22:41:03 +01:00
Moritz Bunkus
3cbd95b003
build system: move compiler flag determination to Rakefile
Logic's more straight forward to implement there instead of having to
check in `configure`, adding a variable to `build-local.in` and using
that variable later on. The logic's the same in both places anyway.
2019-02-23 21:11:19 +01:00
Moritz Bunkus
00468a549b
macOS build: move certain compiler & linker flags to build system
That way they don't have to be set manually before running `configure`.

Fixes #2485.
2019-01-26 12:02:55 +01:00
Moritz Bunkus
8cde39725e
build system: update Qt requirement to 5.4.0 or newer 2019-01-06 15:29:33 +01:00
Moritz Bunkus
b71b2b27c1
configure: there's only one GUI left, so talk about its name, not "GUIs" 2018-12-12 09:15:47 +01:00
Moritz Bunkus
6e7f04a142
fmt conversion: integrate bundled fmt into build system 2018-11-20 21:30:27 +01:00
Moritz Bunkus
3ee0b9276e
GUI: don't compile logind sleep inhibitor if QtDBus isn't available 2018-11-05 09:08:47 +01:00
Moritz Bunkus
1ebbb284bd
GUI: inhibit sleep via logind while the job queue is running
This method works for systems where a logind-compatible D-Bus
interface is available for inhibiting sleep & idle states. Requires
Qt's D-Bus library.

Part of the implementation of #2411.
2018-11-04 18:58:06 +01:00
Moritz Bunkus
7f3d89d9e6
build system: optionally link against Dr. MinGW's crash backtrace library 2018-09-11 19:13:31 +02:00