Commit Graph

349 Commits

Author SHA1 Message Date
Moritz Bunkus
18c0dc6e70
build system: always build all tools 2021-09-05 11:01:18 +02:00
John Einar Reitan
d70bf97e8f Only check for Qt GUI modules if building the GUI 2021-08-13 14:00:40 +02:00
Alex James
8c91bf668a
Qt 6 check: remove $(EXPORT_ARCH_ARGS) from CFLAGS
This fixes compilation with Qt 6 on macOS.
2021-07-11 15:18:13 -05:00
Moritz Bunkus
2f22fecc6d
use boost::multiprecision for rationals instead of boost::rational 2021-07-04 12:44:36 +02:00
Moritz Bunkus
213ed8514a
use gmp backend for Boost Multiprecision 2021-07-04 12:44:36 +02:00
Moritz Bunkus
a8b1eab3dc
remove remaining occurrences of PCRE2 & JPCRE2 2021-06-27 12:53:38 +02:00
Moritz Bunkus
701c0541af
fix compilation with fmt v8
fmt v8 currently contains a bug that causes compilation to fail if
`FMT_USE_USER_DEFINED_LITERALS` is defined to 0. This is a regression
from earlier versions. A bug has been filed against fmt:

https://github.com/fmtlib/fmt/issues/2384

MKVToolNix defined this to 0 as earlier fmt versions caused warnings
in their code dealing with user-defined literals with
`-Wpedantic`. Luckily those warnings do not occur with v8 anymore.

The fix is to test in `configure` if the fmt version we're compiling
with is v8 or older, and only to define
`FMT_USE_USER_DEFINED_LITERALS` to 0 for earlier versions.

Fixes #3151.
2021-06-25 10:40:18 +02:00
Moritz Bunkus
3174f70f76
configure: remove --enable-appimage & auto-detect location of locale dir
Part of the fix of #3137.
2021-06-16 16:42:25 +02:00
Moritz Bunkus
80cbad698d
remove usage of the magic library
Part of the fix of #3137.
2021-06-16 16:42:01 +02:00
Moritz Bunkus
783229560f
configure: require Qt 5 or 6; add --disable-gui for disabling the GUI
This is in preparation of fixing #3137. The plan is not to use
libfile's MIME type detection but Qt's. As both mkvmerge and the GUI
need to auto-detect the MIME type, this means that the command line
applications will have to be linked against Qt's core library (but not
the GUI libraries).
2021-06-15 22:39:33 +02:00
Moritz Bunkus
2d618205bd
configure: fix libmagic linking on mingw with file pkg-config 2021-05-31 12:25:43 +02:00
Moritz Bunkus
62de6d53a2
configure: fix libmagic test if it isn't found via pkg-config
Sigh… My previous fix broke more than it fixed.
2021-05-30 23:03:26 +02:00
Moritz Bunkus
54b3ab315f
configure: fix defining HAVE_MAGIC_H when detecting via pkg-config
Otherwise MKVToolNix is actually built without support for libmagic
even if it was found.
2021-05-30 22:36:40 +02:00
Moritz Bunkus
7be2231690
Qt 6 check: add missing "Checking for Qt 6" message 2021-05-30 14:33:05 +02:00
Moritz Bunkus
5df94b0387
Boost: test for multi-precision library; require at least v1.66.0
I know compilation fails in the multi-precision library with 1.60.0,
the previous requirement. The oldest OS I still support is CentOS 7,
which has 1.69 via EPEL. CentOS 8 is next which comes with 1.66.0, and
that compiles fine. So let's take that as the new baseline.
2021-05-30 14:24:21 +02:00
Moritz Bunkus
8cf8251d6b
Qt 6 detection: try compiling & linking a test program
Prevents using the system qmake6 in cross-compilation situations.

Also cleans up the paths to `lconvert`, `moc`, `rcc` and `uic` from
the Qt 6 detection so that Qt 5 can detect their own version.

Part of the implementation of #3115.
2021-05-24 21:12:39 +02:00
Moritz Bunkus
2848178815
configure: detect & use Qt 6 if present, prefer over Qt 5
Qt 6

`configure` will look for Qt 6 first and only continue looking for Qt
5 if Qt 6 isn't found or disabled via `--disable-qt6`.

Qt 6 detection works by first looking for the `qmake6` binary. Its location
can be specified with the `--with-qmake6=…` option.

All other Qt 6 related facts (such as compiler & linker flags or the
position of the other required tools such as `lconvert`, `moc`, `rcc` and
`uic`) will be derived from the output generated by `qmake6`.

Note that at this point Qt 6 is not yet supported for the cross-compilation
build to Windows, nor is a static Qt 6 build supported yet.

Note that the command line options `--enable-static-qt`,
`--with-qt-pkg-config-modules` and `--without-qt-pkg-config` only apply to
the Qt 5 and have no effect on Qt 6.

Qt 5

The options for specifying the position of the tools (`--with-moc=…`,
`--with-rcc=…` and `--with-uic=…`) have been removed. Their position
will now be derived from the output generated by `qmake`.

General

Completely disabling the GUI now requires passing both `--disable-qt6`
and `--disable-qt` options.

Part of the implementation of #3115.
2021-05-24 20:53:09 +02:00
Moritz Bunkus
c84dff0086
configure: Qt 5: remove old and not used anymore variable enable_gui 2021-05-24 20:42:08 +02:00
Down Thomas
99d08b6908 Update magic.m4 2021-05-01 22:35:11 +00:00
Down Thomas
9dd67dd05a Update magic.m4 for pkg-config support. 2021-04-24 22:23:05 +00:00
Moritz Bunkus
438df0f4f5
configure: fix --enable-ubsan which didn't actually enable anything 2021-04-08 00:06:17 +02:00
Moritz Bunkus
709c61dbba
add MSIX packaging 2021-03-20 13:56:55 +01:00
Moritz Bunkus
9903d78310
configure: remove check for PRI[du]64 printf format specifiers
Those haven't been used in MKVToolNix for years now.
2021-03-20 13:15:44 +01:00
Moritz Bunkus
5eb1658287
configure: remove check for vsscanf which isn't used anymore 2021-03-14 13:01:25 +01:00
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