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
Moritz Bunkus
a21ee36733
configure: fix name of PO4A_TRANSLATE override variable
2018-09-11 17:36:29 +02:00
Moritz Bunkus
4eefc50110
JSON identification: replace invalid UTF-8 bytes with placeholder characters
...
nlohmann's JSON libraries in version 2.x used to strip bytes that
aren't valid UTF-8 from strings (e.g. service/station names in MPEG
transport streams) before outputting the JSON data structures. With
MKVToolNix v24 that bundled library was updated to v3 which now throws
an exception on such invalid data.
Therefore mkvmerge now takes care of replacing invalid bytes with
placeholder characters itself before passing the strings to nlohmann's
JSON library.
Fixes #2327 .
2018-06-15 17:45:22 +02:00
Moritz Bunkus
471fc84ed2
nlohmann-json: update to v3.1.1 (git revision g183390c1)
2018-06-08 22:17:08 +02:00