Commit Graph

366 Commits

Author SHA1 Message Date
Moritz Bunkus
251780d9b2
require libEBML 2.0.0 & libMatroska 2.0.0 2022-10-03 12:18:02 +02:00
Moritz Bunkus
f0a8760e4a
build sys: require libEBML 1.4.3 & libMatroska 1.7.0 2022-09-30 12:22:49 +02:00
fauxpark
9a60f4be24 MSYS2 build: Qt 6 2022-07-30 22:40:22 +10:00
Moritz Bunkus
e35456a318
Merge remote-tracking branch 'fauxpark/msys2-docbook-root-prefix' 2022-07-26 11:22:46 +02:00
fauxpark
13578d21d4 MSYS2 build: respect MINGW_PREFIX when resolving DOCBOOK_ROOT 2022-07-26 16:51:23 +10:00
fauxpark
80bd29a189 Missed the dash 2022-07-26 15:58:55 +10:00
fauxpark
8a49ecfbe6 Fix typo in qmake6 version check 2022-07-26 15:56:20 +10:00
Moritz Bunkus
1c05841113
SVG icon theme: add SVG variants of most raster icons
Part of the fix of #3335.
2022-04-24 13:41:20 +02:00
Moritz Bunkus
9deee8e6a1
build system: Qt6: try to detect qtmultimedia for mingw, too 2022-04-09 11:42:42 +02:00
Moritz Bunkus
f0521d73c1
configure, GUI: fix detection of & compilation with Qt multimedia ≥ 6.2.0 2022-04-09 11:25:23 +02:00
Moritz Bunkus
a2f9467f9e
configure: report whether or not 'mkvtoolnix' will be built 2022-03-13 10:47:20 +01:00
Moritz Bunkus
873e9d6f4a
only build the mkvtoolnix wrapper binary if enabled via configure 2022-03-13 10:43:57 +01:00
Moritz Bunkus
9a4119c67b
configure: Qt6: detect if multimedia module is actually available 2022-03-02 19:26:12 +01:00
Moritz Bunkus
f73d30ac51
GUI: Qt6: actively check if QMediaPlayer is available instead of version check 2022-02-21 22:51:16 +01:00
Moritz Bunkus
b489d894fe
build system: Qt6: fix plugin detection for static mingw builds 2022-02-21 22:51:15 +01:00
Moritz Bunkus
ca6405324c
GUI: Windows: use native code for taskbar progress instead of Qt's QWinTaskbarProgress
The "Windows extras" module was removed in Qt6.
2022-02-20 16:29:00 +01:00
Moritz Bunkus
e65b7816fd
configure: preliminary support for Qt6 with MXE (mingw cross compiler) 2022-02-19 16:56:54 +01:00
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