Commit Graph

407 Commits

Author SHA1 Message Date
Moritz Bunkus
5430290cf1
configure: query pkg-config for flags & libraries for gtest
See #3696
2024-05-04 21:50:01 +02:00
Moritz Bunkus
29279fe348
build process: recognize FY, FNY for gettext translation 2024-04-27 21:40:51 +02:00
Moritz Bunkus
4d684e2759
build system: add title for development.html 2024-01-20 19:22:34 +01:00
Moritz Bunkus
40e95e4a30
build system: ignore warnings from Docbook about unsupported localizations 2024-01-20 19:22:34 +01:00
Moritz Bunkus
2fe727f6a7
build system: implement adding new empty translation for man pages 2024-01-20 19:22:34 +01:00
Moritz Bunkus
f7b282b6ff
add tool for dumping Dolby Vision decoder configuration records 2023-11-21 00:46:45 +01:00
Moritz Bunkus
d87bafe3dc
rename xvc_dump to xyzvc_dump
XVC is an abbreviation for an existing video codec (Extreme Video
Coding). This tool has nothing to do with that codec.
2023-11-20 11:41:17 +01:00
Moritz Bunkus
3378bd896f
Rakefile: remove deprecated xgettext option --sort-output 2023-07-27 13:22:12 +02:00
Moritz Bunkus
212d04d4e4
Rakefile: fix string interpolation in translations:update:manpages 2023-05-20 14:58:09 +02:00
Moritz Bunkus
605d866d39
build system: delete all unit test apps on clean target 2023-05-18 22:29:30 +02:00
Moritz Bunkus
1c68a5841f
GUI: use external resource file for Qt resources
The resource file has reached a size at which the C++ compiler
exhausts available virtual memory on some 32-bit architectures.

On Windows & macOS the GUI will look for the file in
`<folder_with_executables>/data/qt_resources.rcc`, and in the
directory set with `configure`'s `--datadir` parameter on other
systems (which usually means `/usr/share/mkvtoolnix`). The `install`
build system commands installs it into that folder.
2023-05-18 21:37:34 +02:00
Moritz Bunkus
e90f7d6043
build system: normalize man page po files after running po4a 2023-04-03 19:46:31 +02:00
Moritz Bunkus
8a2da1a252
all: switch back to requiring & using Boost's file system library
gcc's implementation of the C++17 file system library doesn't support
UNC paths of style `\\?\…` on Windows. There doesn't seem to be any
progress towards implementing support for it.

Fixes #3058. See also #2916.
2023-01-14 17:49:45 +01:00
Moritz Bunkus
ab6455f68c
build system: fix compatibility with Ruby 3.2.0
Several deprecated functions were removed: `Dir.exists?`,
`File.exists?` & `FileTest.exists?`.  Instead of those
`FileTest.exist?` must be used (without the `s`). See the release
notes for Ruby 3.2.0 as well as the issue for removing the functions:

https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/
https://bugs.ruby-lang.org/issues/17391
2023-01-02 22:57:21 +01:00
Moritz Bunkus
a9c7243e65
configure: FLAC: use pkg-config for libFLAC detection
Newer libFLAC in MXE require a preprocessor definition of
`FLAC__NO_DLL` to signal that libFLAC wasn't built as a DLL. Otherwise
the linker will look for the wrong symbol names.
2022-11-05 19:36:16 +01:00
Moritz Bunkus
0cd6f01878
build system: disable stringop-overflow warning
…due to too many false positives with libfmt. See
https://github.com/fmtlib/fmt/pull/2442#issuecomment-891263411
and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88443
2022-11-03 21:16:13 +01:00
Moritz Bunkus
dd268f145f
build system: only build translated man pages that should & can be built
…that fulfill the following two criteria:

1. corresponding program is built
2. po4a configuration has translations for it enabled
2022-11-01 20:54:43 +01:00
Moritz Bunkus
a4e294bab2
build system: use po4a directly instead of po4a-translate for each language 2022-11-01 17:01:41 +01:00
Moritz Bunkus
f17dbd5a94
build system: fix removing all programs, even if not currently built 2022-11-01 17:01:14 +01:00
fauxpark
13578d21d4 MSYS2 build: respect MINGW_PREFIX when resolving DOCBOOK_ROOT 2022-07-26 16:51:23 +10:00
fauxpark
fb81fb52d2 Add ole32 and uuid libs unconditionally for mkvtoolnix-gui 2022-07-20 17:27:52 +10:00
Moritz Bunkus
2ada7d6dd2
build system: only build benchmarks if Google benchmark library is present 2022-04-24 15:10:14 +02:00
Moritz Bunkus
62acb29b61
SVG icon theme: rename scalable icon directory to oxygen
Part of the fix of #3335.
2022-04-24 13:41:20 +02: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
39529c226b
languages/scripts/regions/IANA lists: use different method of initialization
The prior method was to generate one line of
`g_container.emplace_back(…)` per entry in the list & letting the
compiler chew on that. Each string argument in that call was done was
`u8"Some Name"s`, meaning as a std::string instance.

Drawbacks:

• takes the compiler ages to compile, even forcing me to drop all
  optimizations for the ISO-639 language list file

• even smaller files such as the IANA language subtag registry lists
  take more than 30s to compile

• due to no optimizations initialization is actually not as fast as
  could be

The new method uses a plain C-style array of structs with `char
const *` entries for the initial list. The initialization method then
copies the entries from that list to the actual container, again using
`std::emplace_back(…)`.

This yields sub-1s compilation times even with the longest file, the
ISO-639 language list, and the runtime initialization is actually
faster.
2022-04-23 00:00:15 +02:00
Moritz Bunkus
4f95d68e5c
build system: convert to one exe per benchmark file 2022-04-22 21:31:37 +02:00
Moritz Bunkus
023c44e478
tools: rake target for updating element names from libMatroska 2022-04-15 11:57:45 +02:00
Moritz Bunkus
286c1b7861
Rakefile: force parallel processing for rake
For some stupid reason plain old rake doesn't parallelize task
execution properly (at all?) if there's only one top level
target (e.g. "default"), no matter how high `-j` is set to. drake does
much better.
2022-04-11 21:36:55 +02:00
Moritz Bunkus
47bb257707
propedit: move globals to separate file to facilitate linking the tests 2022-03-20 17:32:03 +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
ad60962bca
add wrapper/entrypoint executable named 'mkvtoolnix' 2022-03-12 22:04:37 +01:00
Moritz Bunkus
0398b02eea
add dts_dump, a tool for dumping frame info from DTS elementary streams 2021-11-15 17:00:56 +01:00
Moritz Bunkus
18c0dc6e70
build system: always build all tools 2021-09-05 11:01:18 +02:00
Moritz Bunkus
f0e75b492d
HEVC dump: rename to xvc_dump & extend to cover AVC/H.264 2021-08-25 20:27:51 +02:00
Moritz Bunkus
3c1b472ea9
build system: fix descriptions of language list generation tasks 2021-08-07 17:12:38 +02:00
Moritz Bunkus
20437cb0f6
build system: move file download handling to dedicated module 2021-07-17 12:26:48 +02:00
Alex James
a202ad95a0
build system: avoid using LLD on macOS
LLD on macOS cannot successfully link MKVToolNix.
2021-07-11 15:53:15 -05: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
360e40b157
fmt: update bundled version to v8.0.0
See #3151.
2021-06-25 10:40:18 +02:00
Moritz Bunkus
34d5becc1b
GUI: include versions of all libraries in system information 2021-06-16 19:57:00 +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
3caf7deabf
build system: link command line applications against Qt's core library
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:40 +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
cc87a2e577
configure: properly leave spaces before flags for moc
Part of the implementation of #3115.
2021-05-24 21:17:32 +02:00
Moritz Bunkus
11046de86a
source code: add compatibility code for building with Qt 6
Currently this still requires patching `build-config` after having run
`configure` and providing the correct values for `QT_CFLAGS`/`QT_LIBS`
manually.

Part of the implementation of #3115.
2021-05-24 20:53:08 +02:00
Moritz Bunkus
ba6db89e24
Rakefile: improve filtering optimization flags for iso639_language_list.cpp
The old regular expression did not filter out non-numeric optimization
levels options such as `-Os`, nor did it filter the option out if it
was at the end of the flags string.

See 3105 for context.
2021-05-22 19:47:09 +02:00
Moritz Bunkus
709c61dbba
add MSIX packaging 2021-03-20 13:56:55 +01:00
Moritz Bunkus
76f7246087
build system: avoid warnings about files without symbols on macOS 2021-03-14 13:01:03 +01:00