[vlc-commits] [Git][videolan/vlc][3.0.x] 3 commits: extras: tools: update Kitware ninja to 1.13.2
Steve Lhomme (@robUx4)
gitlab at videolan.org
Tue Aug 25 06:29:56 UTC 2026
Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC
Commits:
caefea9b by Steve Lhomme at 2026-08-25T06:35:26+02:00
extras: tools: update Kitware ninja to 1.13.2
It is used when GNU make 4.4+ is not found to share jobs properly with make
when building contribs.
- - - - -
575cb910 by Steve Lhomme at 2026-08-25T06:56:43+02:00
extras: tools: build ninja with CMake
It's a C++ project, it should not require python.
And it enables LTO when possible, unlike the python script.
- - - - -
02731dc5 by Steve Lhomme at 2026-08-25T07:13:52+02:00
extras: tools: use the original ninja Kitware tarball name
So we don't mix up the official version tarball and the kitware one.
- - - - -
7 changed files:
- Makefile.am
- − extras/tools/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch
- − extras/tools/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch
- extras/tools/SHA512SUMS
- − extras/tools/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch
- extras/tools/packages.mak
- extras/tools/tools.mak
Changes:
=====================================
Makefile.am
=====================================
@@ -66,9 +66,6 @@ EXTRA_DIST += \
extras/tools/libtool-2.6.2-embed-bitcode.patch \
extras/tools/libtool-2.5.4-ltmain.in-reference-MAGIC_EXE-in-the-main.patch \
extras/tools/libtool-2.5.4-libtool.m4-respect-the-provided-LTCFLAGS-LTCC-during.patch \
- extras/tools/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch \
- extras/tools/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch \
- extras/tools/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch \
extras/tools/pkg-config-stdc23-port.patch
###############################################################################
=====================================
extras/tools/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch deleted
=====================================
@@ -1,424 +0,0 @@
-From 9941df614f2c08093eb76f5cfa402afbd7475a39 Mon Sep 17 00:00:00 2001
-From: David 'Digit' Turner <digit at google.com>
-Date: Mon, 4 Dec 2023 22:47:37 +0100
-Subject: [PATCH 1/2] CanonicalizePath: Remove kMaxComponents limit
-
-This patch refactors the CanonicalizePath() to fix
-two issues and improve performance. This is achieved
-through the following:
-
-- Remove the kMaxPathComponents limit entirely,
- which fixes ninja-build#1732, by dropping the
- `components` array entirely, in favor of
- back-tracking the destination pointer.
-
-- Properly handle '/' and '\' which were incorrectly
- converted into an empty string. This fixes
- ninja-build#2008.
-
-- Skip initial '../' components in relative paths,
- as these are common when referencing source files
- in build plans, and doing so make the loop after
- this step run faster in practice since most
- source files do not need adjustments.
-
-- Simplify the inner loop logic by handling the
- last component (which is not followed by a
- trailing directory separator) separately.
-
- This noticeably improves performance because
- the inner loop becomes smaller with less branch
- mis-predictions in the general case.
-
-- Never access or copy the caharacter after the
- end of the input string.
-
-- Use memchr() to find the next '/' on Posix, which
- allows the use of SIMD implementations provided by
- the C runtime (e.g. through IFUNC functions on Linux),
- resulting in very noticeable speedup. This is also
- why a statically Ninja executable will be slower
- than one that links to the C library dynamically :-/
-
-- Avoid performing any writes when the input path
- doesn't need any adjustment, which is also quite
- common.
-
-Note that this patch does _not_ remove the 64-bit
-limit for the `slash_bits` value, which is only
-used on Win32.
-
-Benchmarking was done in several ways:
-
-- On Linux, running `hyperfine canon-perftest` to run the
- canonicalization benchmark program and measure its total
- running time. Three compilers were used to generate
- dynamically-linked executables.
-
- ```
- BEFORE (ms) AFTER (ms)
-
- GCC 13.2.0 651 369
- Clang 14.0 591 402
- Clang 18,0 653 400
- ```
-
-- On Windows, running `canon-perftest` 5 times and keeping
- the best reported average result. The number are slower
- since they only measure the benched function.
-
- ```
- BEFORE (ms) AFTER (ms)
-
- Mingw64 GCC 12 246 195
- ```
-
-- On Linux, run `hyperfine ninja -C out/default -n --quiet`
- on a large Fuchsia build plan, once with 70000+ pending
- commands, and once after the build (i.e. `ninja: no work to do`).
-
- ````
- BEFORE (s) AFTER (s)
-
- pre_build 8.789 8.647
- post_build 6.703 6.590
- ```
----
- src/util.cc | 149 +++++++++++++++++++++++++++++++++++------------
- src/util_test.cc | 101 ++++++++++++++++++++++++++++++--
- 2 files changed, 208 insertions(+), 42 deletions(-)
-
-diff --git a/src/util.cc b/src/util.cc
-index ef5f103..dcb6abc 100644
---- a/src/util.cc
-+++ b/src/util.cc
-@@ -143,20 +143,19 @@ void CanonicalizePath(char* path, size_t* len, uint64_t* slash_bits) {
- return;
- }
-
-- const int kMaxPathComponents = 60;
-- char* components[kMaxPathComponents];
-- int component_count = 0;
--
- char* start = path;
- char* dst = start;
-+ char* dst_start = dst;
- const char* src = start;
- const char* end = start + *len;
-+ const char* src_next;
-
-+ // For absolute paths, skip the leading directory separator
-+ // as this one should never be removed from the result.
- if (IsPathSeparator(*src)) {
- #ifdef _WIN32
--
-- // network path starts with //
-- if (*len > 1 && IsPathSeparator(*(src + 1))) {
-+ // Windows network path starts with //
-+ if (src + 2 <= end && IsPathSeparator(src[1])) {
- src += 2;
- dst += 2;
- } else {
-@@ -167,50 +166,126 @@ void CanonicalizePath(char* path, size_t* len, uint64_t* slash_bits) {
- ++src;
- ++dst;
- #endif
-+ dst_start = dst;
-+ } else {
-+ // For relative paths, skip any leading ../ as these are quite common
-+ // to reference source files in build plans, and doing this here makes
-+ // the loop work below faster in general.
-+ while (src + 3 <= end && src[0] == '.' && src[1] == '.' &&
-+ IsPathSeparator(src[2])) {
-+ src += 3;
-+ dst += 3;
-+ }
- }
-
-- while (src < end) {
-- if (*src == '.') {
-- if (src + 1 == end || IsPathSeparator(src[1])) {
-- // '.' component; eliminate.
-- src += 2;
-- continue;
-- } else if (src[1] == '.' && (src + 2 == end || IsPathSeparator(src[2]))) {
-- // '..' component. Back up if possible.
-+ // Loop over all components of the paths _except_ the last one, in
-+ // order to simplify the loop's code and make it faster.
-+ int component_count = 0;
-+ char* dst0 = dst;
-+ for (; src < end; src = src_next) {
-+#ifndef _WIN32
-+ // Use memchr() for faster lookups thanks to optimized C library
-+ // implementation. `hyperfine canon_perftest` shows a significant
-+ // difference (e,g, 484ms vs 437ms).
-+ const char* next_sep =
-+ static_cast<const char*>(::memchr(src, '/', end - src));
-+ if (!next_sep) {
-+ // This is the last component, will be handled out of the loop.
-+ break;
-+ }
-+#else
-+ // Need to check for both '/' and '\\' so do not use memchr().
-+ // Cannot use strpbrk() because end[0] can be \0 or something else!
-+ const char* next_sep = src;
-+ while (next_sep != end && !IsPathSeparator(*next_sep))
-+ ++next_sep;
-+ if (next_sep == end) {
-+ // This is the last component, will be handled out of the loop.
-+ break;
-+ }
-+#endif
-+ // Position for next loop iteration.
-+ src_next = next_sep + 1;
-+ // Length of the component, excluding trailing directory.
-+ size_t component_len = next_sep - src;
-+
-+ if (component_len <= 2) {
-+ if (component_len == 0) {
-+ continue; // Ignore empty component, e.g. 'foo//bar' -> 'foo/bar'.
-+ }
-+ if (src[0] == '.') {
-+ if (component_len == 1) {
-+ continue; // Ignore '.' component, e.g. './foo' -> 'foo'.
-+ } else if (src[1] == '.') {
-+ // Process the '..' component if found. Back up if possible.
-+ if (component_count > 0) {
-+ // Move back to start of previous component.
-+ --component_count;
-+ while (--dst > dst0 && !IsPathSeparator(dst[-1])) {
-+ // nothing to do here, decrement happens before condition check.
-+ }
-+ } else {
-+ dst[0] = '.';
-+ dst[1] = '.';
-+ dst[2] = src[2];
-+ dst += 3;
-+ }
-+ continue;
-+ }
-+ }
-+ }
-+ ++component_count;
-+
-+ // Copy or skip component, including trailing directory separator.
-+ if (dst != src) {
-+ ::memmove(dst, src, src_next - src);
-+ }
-+ dst += src_next - src;
-+ }
-+
-+ // Handling the last component that does not have a trailing separator.
-+ // The logic here is _slightly_ different since there is no trailing
-+ // directory separator.
-+ size_t component_len = end - src;
-+ do {
-+ if (component_len == 0)
-+ break; // Ignore empty component (e.g. 'foo//' -> 'foo/')
-+ if (src[0] == '.') {
-+ if (component_len == 1)
-+ break; // Ignore trailing '.' (e.g. 'foo/.' -> 'foo/')
-+ if (src[1] == '.') {
-+ // Handle '..'. Back up if possible.
- if (component_count > 0) {
-- dst = components[component_count - 1];
-- src += 3;
-- --component_count;
-+ while (--dst > dst0 && !IsPathSeparator(dst[-1])) {
-+ // nothing to do here, decrement happens before condition check.
-+ }
- } else {
-- *dst++ = *src++;
-- *dst++ = *src++;
-- *dst++ = *src++;
-+ dst[0] = '.';
-+ dst[1] = '.';
-+ dst += 2;
-+ // No separator to add here.
- }
-- continue;
-+ break;
- }
- }
--
-- if (IsPathSeparator(*src)) {
-- src++;
-- continue;
-+ // Skip or copy last component, no trailing separator.
-+ if (dst != src) {
-+ ::memmove(dst, src, component_len);
- }
-+ dst += component_len;
-+ } while (0);
-
-- if (component_count == kMaxPathComponents)
-- Fatal("path has too many components : %s", path);
-- components[component_count] = dst;
-- ++component_count;
--
-- while (src != end && !IsPathSeparator(*src))
-- *dst++ = *src++;
-- *dst++ = *src++; // Copy '/' or final \0 character as well.
-- }
-+ // Remove trailing path separator if any, but keep the initial
-+ // path separator(s) if there was one (or two on Windows).
-+ if (dst > dst_start && IsPathSeparator(dst[-1]))
-+ dst--;
-
- if (dst == start) {
-+ // Handle special cases like "aa/.." -> "."
- *dst++ = '.';
-- *dst++ = '\0';
- }
-
-- *len = dst - start - 1;
-+ *len = dst - start; // dst points after the trailing char here.
- #ifdef _WIN32
- uint64_t bits = 0;
- uint64_t bits_mask = 1;
-diff --git a/src/util_test.cc b/src/util_test.cc
-index d58b170..8467e2a 100644
---- a/src/util_test.cc
-+++ b/src/util_test.cc
-@@ -89,13 +89,57 @@ TEST(CanonicalizePath, PathSamples) {
- EXPECT_EQ("/foo", path);
- #endif
-
-+ path = "..";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("..", path);
-+
-+ path = "../";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("..", path);
-+
-+ path = "../foo";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("../foo", path);
-+
-+ path = "../foo/";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("../foo", path);
-+
-+ path = "../..";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("../..", path);
-+
-+ path = "../../";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("../..", path);
-+
-+ path = "./../";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("..", path);
-+
-+ path = "/..";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("/..", path);
-+
-+ path = "/../";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("/..", path);
-+
-+ path = "/../..";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("/../..", path);
-+
-+ path = "/../../";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("/../..", path);
-+
- path = "/";
- CanonicalizePath(&path);
-- EXPECT_EQ("", path);
-+ EXPECT_EQ("/", path);
-
- path = "/foo/..";
- CanonicalizePath(&path);
-- EXPECT_EQ("", path);
-+ EXPECT_EQ("/", path);
-
- path = ".";
- CanonicalizePath(&path);
-@@ -171,7 +215,7 @@ TEST(CanonicalizePath, PathSamplesWindows) {
-
- path = "\\";
- CanonicalizePath(&path);
-- EXPECT_EQ("", path);
-+ EXPECT_EQ("/", path);
- }
-
- TEST(CanonicalizePath, SlashTracking) {
-@@ -321,8 +365,53 @@ TEST(CanonicalizePath, TooManyComponents) {
- EXPECT_EQ(58, std::count(path.begin(), path.end(), '\\'));
- CanonicalizePath(&path, &slash_bits);
- EXPECT_EQ(slash_bits, 0x3ffffffffffffff);
-+
-+ // More than 60 components is now completely ok too.
-+ path =
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\a\\"
-+ "a\\a\\a\\a\\a\\a\\a\\a\\a\\x\\y.h";
-+ EXPECT_EQ(218, std::count(path.begin(), path.end(), '\\'));
-+ CanonicalizePath(&path, &slash_bits);
-+ EXPECT_EQ(slash_bits, 0xffffffffffffffff);
- }
--#endif
-+#else // !_WIN32
-+TEST(CanonicalizePath, TooManyComponents) {
-+ string path;
-+ uint64_t slash_bits;
-+
-+ // More than 60 components is now completely ok.
-+ path =
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/"
-+ "a/a/a/a/a/a/a/a/a/x/y.h";
-+ EXPECT_EQ(218, std::count(path.begin(), path.end(), '/'));
-+ CanonicalizePath(&path, &slash_bits);
-+ EXPECT_EQ(slash_bits, 0x0);
-+}
-+#endif // !_WIN32
-
- TEST(CanonicalizePath, UpDir) {
- string path, err;
-@@ -353,11 +442,13 @@ TEST(CanonicalizePath, NotNullTerminated) {
- EXPECT_EQ(strlen("foo"), len);
- EXPECT_EQ("foo/. bar/.", string(path));
-
-+ // Verify that foo/..file gets canonicalized to 'file' without
-+ // touching the rest of the string.
- path = "foo/../file bar/.";
- len = strlen("foo/../file");
- CanonicalizePath(&path[0], &len, &unused);
- EXPECT_EQ(strlen("file"), len);
-- EXPECT_EQ("file ./file bar/.", string(path));
-+ EXPECT_EQ("file../file bar/.", string(path));
- }
-
- TEST(PathEscaping, TortureTest) {
---
-2.45.0.windows.1
-
=====================================
extras/tools/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch deleted
=====================================
@@ -1,42 +0,0 @@
-From 02c738a767bb837acb8d0366ace09804120283e6 Mon Sep 17 00:00:00 2001
-From: Pavel Boldin <pboldin at cloudlinux.com>
-Date: Fri, 15 Mar 2024 15:21:16 +0000
-Subject: [PATCH 2/2] CanonicalizePath: fix 'a/b/.._foo' -> 'a' replacement
-
-Signed-off-by: Pavel Boldin <pboldin at cloudlinux.com>
----
- src/util.cc | 2 +-
- src/util_test.cc | 4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/util.cc b/src/util.cc
-index dcb6abc..ff624ba 100644
---- a/src/util.cc
-+++ b/src/util.cc
-@@ -253,7 +253,7 @@ void CanonicalizePath(char* path, size_t* len, uint64_t* slash_bits) {
- if (src[0] == '.') {
- if (component_len == 1)
- break; // Ignore trailing '.' (e.g. 'foo/.' -> 'foo/')
-- if (src[1] == '.') {
-+ if (component_len == 2 && src[1] == '.') {
- // Handle '..'. Back up if possible.
- if (component_count > 0) {
- while (--dst > dst0 && !IsPathSeparator(dst[-1])) {
-diff --git a/src/util_test.cc b/src/util_test.cc
-index 8467e2a..d76954c 100644
---- a/src/util_test.cc
-+++ b/src/util_test.cc
-@@ -152,6 +152,10 @@ TEST(CanonicalizePath, PathSamples) {
- path = "foo/..";
- CanonicalizePath(&path);
- EXPECT_EQ(".", path);
-+
-+ path = "foo/.._bar";
-+ CanonicalizePath(&path);
-+ EXPECT_EQ("foo/.._bar", path);
- }
-
- #ifdef _WIN32
---
-2.45.0.windows.1
-
=====================================
extras/tools/SHA512SUMS
=====================================
@@ -14,7 +14,7 @@ e9785f3d620a204b7d20222888917dc065c2036cae28667065bf7862dfa1b25235095a12fd04efdb
ef6c3b9edc7d69c3847324134630a4fb4316e394fa3e38effb8ef3d0c03e48574d43cadf06a774355d7e43a4d7a70e4760c5242807cf4e67331af70d205b9cb0 nasm-2.16.03.tar.gz
e2a58dde1cae3e6b79c03e7ef3d888f7577c1f4cba283b3b0f31123ceea8c33d7c9700e83de57104644de23e5f5c374868caa0e091f9c45edbbe87b98ee51c04 gettext-0.22.tar.gz
d24849b93de58b20f518c071687e7bfa653a96600382f36c4cf7fc1047656458f75f093b911b786b18b6931b2453cb60868ecbe07cc7d2984e5981a874b34942 help2man-1.47.6.tar.xz
-37b3a421419b16930e53181c431fe3b4afd55ac54733a5df08376641fd2fb88eeb73ee7abe3788f3e491e7c1b215c7f35aefa66f44b09008ad22b76ab2998830 ninja-1.11.1.tar.gz
+f5aeb32ec007c31663488516765b6b37df472eee85047592e111914599b32003376a56bf79f501b14a0b317bb94e6c510d889dccf1aa76b5b057a277c719e859 ninja-1.13.2.g7659b.kitware.jobserver-pipe-1.tar.gz
4e6ad56e18c7d5b244b94b99c7e42489b8d4e79634abb97607c3f277f74b0c3c1cb043ba48816f444d2960fe96dc38459c404207e415a1401f5fad7c6f5d60e5 meson-1.10.0.tar.gz
e4e4df9f191152241c813e3f79f6afdc4b8a0a6d9e94d76f2b9fbea6ab98a9f5280376ec34325b5a08bc93e5b702fb2e7183488294457ee8bed33e1ec8aa4a35 libtool-2.6.2.tar.gz
b4de208f179b68d4c6454139ca60d66ed3ef3893a560d6159a056640f83d3ee67cdf6ffb88971cdba35449dba4b597eaa8b4ae908127ef7fd58c89f40bf9a705 zstd-1.5.7.tar.gz
=====================================
extras/tools/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch deleted
=====================================
@@ -1,36 +0,0 @@
-From 9cf13cd1ecb7ae649394f4133d121a01e191560b Mon Sep 17 00:00:00 2001
-From: Byoungchan Lee <byoungchan.lee at gmx.com>
-Date: Mon, 9 Oct 2023 20:13:20 +0900
-Subject: [PATCH] Replace pipes.quote with shlex.quote in configure.py
-
-Python 3.12 deprecated the pipes module and it will be removed
-in Python 3.13. In configure.py, I have replaced the usage of pipes.quote
-with shlex.quote, which is the exactly same function as pipes.quote.
-
-For more details, refer to PEP 0594: https://peps.python.org/pep-0594
----
- configure.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.py b/configure.py
-index 588250aa8a..c6973cd1a5 100755
---- a/configure.py
-+++ b/configure.py
-@@ -21,7 +21,7 @@
-
- from optparse import OptionParser
- import os
--import pipes
-+import shlex
- import string
- import subprocess
- import sys
-@@ -262,7 +262,7 @@ def _run_command(self, cmdline):
- env_keys = set(['CXX', 'AR', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS'])
- configure_env = dict((k, os.environ[k]) for k in os.environ if k in env_keys)
- if configure_env:
-- config_str = ' '.join([k + '=' + pipes.quote(configure_env[k])
-+ config_str = ' '.join([k + '=' + shlex.quote(configure_env[k])
- for k in configure_env])
- n.variable('configure_env', config_str + '$ ')
- n.newline()
=====================================
extras/tools/packages.mak
=====================================
@@ -58,8 +58,8 @@ HELP2MAN_URL=$(GNU)/help2man/help2man-$(HELP2MAN_VERSION).tar.xz
MESON_VERSION=1.10.0
MESON_URL=https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)/meson-$(MESON_VERSION).tar.gz
-NINJA_VERSION=1.11.1
-NINJA_BUILD_NAME=$(NINJA_VERSION).g95dee.kitware.jobserver-1
+NINJA_VERSION=1.13.2
+NINJA_BUILD_NAME=$(NINJA_VERSION).g7659b.kitware.jobserver-pipe-1
NINJA_URL=https://github.com/Kitware/ninja/archive/refs/tags/v$(NINJA_BUILD_NAME).tar.gz
ZSTD_VERSION=1.5.7
=====================================
extras/tools/tools.mak
=====================================
@@ -484,24 +484,24 @@ CLEAN_FILE += .buildmeson
# ninja build
#
-ninja-$(NINJA_VERSION).tar.gz:
+ninja-$(NINJA_BUILD_NAME).tar.gz:
$(call download_pkg,$(NINJA_URL),ninja)
+ninja: .cmake
ninja: UNPACK_DIR=ninja-$(NINJA_BUILD_NAME)
-.getninja: ninja-$(NINJA_VERSION).tar.gz
-ninja: ninja-$(NINJA_VERSION).tar.gz
+.getninja: ninja-$(NINJA_BUILD_NAME).tar.gz
+ninja: ninja-$(NINJA_BUILD_NAME).tar.gz
$(UNPACK)
- $(APPLY) $(TOOLS)/ninja-1.11.1-replace-pipes-quote-with-shlex-quote.patch
- $(APPLY) $(TOOLS)/0001-CanonicalizePath-Remove-kMaxComponents-limit.patch
- $(APPLY) $(TOOLS)/0002-CanonicalizePath-fix-a-b-._foo-a-replacement.patch
$(MOVE)
.buildninja: ninja
- (cd $<; python3 ./configure.py --bootstrap && mv ninja $(PREFIX)/bin/)
+ cmake -S $< -B $</vlc_build -DCMAKE_INSTALL_PREFIX:STRING=$(PREFIX) -DBUILD_TESTING=OFF
+ +cmake --build $</vlc_build
+ +cmake --install $</vlc_build
touch $@
CLEAN_PKG += ninja
-DISTCLEAN_PKG += ninja-$(NINJA_VERSION).tar.gz
+DISTCLEAN_PKG += ninja-$(NINJA_BUILD_NAME).tar.gz
CLEAN_FILE += .buildninja
#
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/73d9faf6a1cb16fed564d56fb799de8a48c49b6b...02731dc585060aa258490f3b748d374be0d2906a
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/73d9faf6a1cb16fed564d56fb799de8a48c49b6b...02731dc585060aa258490f3b748d374be0d2906a
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help
More information about the vlc-commits
mailing list