Commit Graph

268 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
240fbe5d33
ISO lists: use regular string literals
With C++20 the `u8` strings are based on `char8_t`, which is a totally
different type. This breaks pretty much everything, unfortunately.
2024-04-23 21:29:56 +02:00
Moritz Bunkus
2fe727f6a7
build system: implement adding new empty translation for man pages 2024-01-20 19:22:34 +01:00
Moritz Bunkus
d33e2a3e7c
always build the compilation database (compile_commands.json) 2023-06-08 14:54:54 +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
a4e294bab2
build system: use po4a directly instead of po4a-translate for each language 2022-11-01 17:01:41 +01:00
fauxpark
4e1f0c89b7 Refactor shell finding 2022-07-20 18:13:29 +10:00
fauxpark
09944359a3 Additionally fall back to "sh" in the unlikely event $SHELL is unset 2022-07-20 17:48:24 +10:00
fauxpark
679141faac Remove hardcoded RUBYSHELL fallback 2022-07-20 17:33:34 +10:00
fauxpark
22e0e3e8a6 Guard against missing pty module on MSYS2 2022-07-20 17:24:52 +10:00
Moritz Bunkus
e64e58c0a3
BCP47: only normalize DCNC tags really part of BCP47 "private use" range 2022-05-04 20:54:18 +02:00
Moritz Bunkus
5d20c60525
build system: don't update QRCs during normal builds, don't require rexml 2022-04-24 16:26:28 +02:00
Moritz Bunkus
36c4de0a8b
build system: fix running on older Ruby versions (e.g. 2.5 on Debian Buster) 2022-04-24 15:19:24 +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
3405d57ac3
SVG icon theme: load icons via a custom MKVToolNix GUI theme
Part of the fix of #3335.
2022-04-23 21:15:21 +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
ba13c0510e
tools: update element names from libEBML & libMatroska 2022-04-15 18:52:48 +02:00
Moritz Bunkus
023c44e478
tools: rake target for updating element names from libMatroska 2022-04-15 11:57:45 +02:00
Moritz Bunkus
5245f74b0e
Revert "build system: remove included drake"
This reverts commit 040c0fccf4.
2022-04-11 21:36:55 +02:00
Moritz Bunkus
8c3e827e2a
build system: fix OS-based file selection for non-Linux/macOS/Windows systems
Several files have OS-specific names like "…/windows.cpp", and they
should only be compiled when currently compiling for that OS. The
three main OS mentioned in the build system are Linux, macOS and
Windows. Other Unices like FreeBSD aren't mentioned explicitly and
should be treated the same as Linux (as the code in those
Linux-specific files is rather Unix-but-not-macOS-specific).

Fixes #3316.
2022-04-06 22:19:55 +02:00
Moritz Bunkus
c50e582fa4
GUI: BCP47: show warning if script should be suppressed
Part of the implementation of #3307.
2022-03-29 21:15:53 +02:00
Moritz Bunkus
d214fc30d0
build system: IANA updater: refactor to use ERB for cleaner code 2022-03-29 21:15:53 +02:00
Moritz Bunkus
14a0bec2cf
BCP47: normalize DCNC tags from BCP47 "private use" range to BCP47 equivalents
Replaces e.g. `QMS` with `cmn-Hans`.

Part of the implementation of #3307.
2022-03-28 18:46:09 +02:00
Moritz Bunkus
4ce17cfddb
BCP47: default to normalize to canonical form
Normalization can be turned off via the `--normalize-language-ietf
off` command line arguments.

Part of the implementation of #3307.
2022-03-28 18:46:09 +02:00
Moritz Bunkus
cc6a7b39ff
BCP47: support all language codes reserved for private/local use qaa–qtz
Part of the implementation of #3307.
2022-03-28 16:39:38 +02:00
Moritz Bunkus
6201411475
BCP47: languages: include fact whether entries are deprecated
Part of the implementation of #3307.
2022-03-26 13:40:09 +01:00
Moritz Bunkus
82658cf43d
BCP47: add languages present in IANA registry but not part of ISO 639
Part of the implementation of #3307.
2022-03-26 13:40:09 +01:00
Moritz Bunkus
09b6ebdf9c
BCP47: scripts: include fact whether entries are deprecated
Part of the implementation of #3307.
2022-03-26 13:40:09 +01:00
Moritz Bunkus
7767846416
BCP47: extlangs, variants: include fact whether entries are deprecated
Part of the implementation of #3307.
2022-03-26 13:40:09 +01:00
Moritz Bunkus
65752aedcc
BCP47: regions: include fact whether entries are deprecated
Part of the implementation of #3307.
2022-03-26 13:40:09 +01:00
Moritz Bunkus
ac49424ca7
BCP47: add scripts present in IANA registry but not part of ISO 15924
There actually are none, but it's good to have the code to do it in
case this ever happens.

Part of the implementation of #3307.
2022-03-26 13:40:09 +01:00
Moritz Bunkus
92ef8628f2
BCP47: add regions present in IANA registry but not part of ISO 3166/UN M.49
Part of the implementation of #3307.
2022-03-26 13:40:09 +01:00
Moritz Bunkus
37d48d5d2f
IANA registry parser: parse & format entries for mapping to preferred values
Part of the implementation of #3307.
2022-03-26 00:21:58 +01:00
Moritz Bunkus
c0e49abf8e
IANA registry parser: refactor lambdas to methods 2022-03-25 23:43:34 +01:00
Moritz Bunkus
06dce25865
BCP 47: add support for grandfathered language tags
Part of the implementation of #3307.
2022-03-24 22:39:32 +01:00
Moritz Bunkus
beedd3183d
build system: fix download location for ISO 15924 script code list 2022-03-24 21:39:23 +01:00
Moritz Bunkus
2278ae27b8
build system: only exclude OS-specific files starting with OS, e.g. windows.cpp
Otherwise p_video_for_windows.cpp, which must be compiled on all
OSses, would only be compiled on Windows.
2022-02-20 17:02:44 +01:00
Moritz Bunkus
0749f774c9
build system: exclude OS-specific files ending with e.g. …_windows.cpp 2022-02-20 12:34:17 +01:00
Moritz Bunkus
200bdaec05
ISO 639: provide name overrides for ancient & modern Greek
Makes them easier to find.
2021-12-26 11:27:51 +01:00
Moritz Bunkus
57422dc8e4
build system: adjust tx usage to new CLI client 2021-12-21 13:34:15 +01:00
Moritz Bunkus
1acd9a3497
BCP 47: add remaining ISO 639 languages 2021-10-10 12:33:54 +02:00
Moritz Bunkus
b9847f2bd6
build system: fix for rubyzip gem API changes in newer v2.x versions 2021-08-07 17:12:38 +02:00
Moritz Bunkus
2c5b3c27a8
IANA language subtag registry: fix reading continuation lines
Also shorten certain very long descriptions.
2021-08-04 22:47:48 +02:00
Moritz Bunkus
e3736e9def
ISO 639: add codes from 639-5 that aren't part of 639-2 2021-07-21 22:34:26 +02:00
Moritz Bunkus
7858db3ade
ISO 15924: added all private use entries, not just start & end 2021-07-19 14:32:12 +02:00
Moritz Bunkus
d2e0222418
ISO 3166: remove unused variable 2021-07-19 14:15:03 +02:00
Moritz Bunkus
5a353eba99
ISO 3166: update list of countries & regions from lists on the internet 2021-07-17 13:51:17 +02:00
Moritz Bunkus
f690be057b
build system: move HTML table data extraction to separate function 2021-07-17 13:51:17 +02:00