[vlc-commits] [Git][videolan/vlc][master] 5 commits: extras/tools: boostrap: add a minimum version to Ninja

Steve Lhomme (@robUx4) gitlab at videolan.org
Tue Jun 16 20:48:32 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
2904248d by Steve Lhomme at 2026-06-16T20:16:06+00:00
extras/tools: boostrap: add a minimum version to Ninja

Otherwise check_ninja() was using a parameter than doesn't exit.

Ninja 1.13.0 is the first official version that supports jobserver [^1].
For now we still require a kitware version with jobserver support.

[^1]: https://github.com/ninja-build/ninja/releases/tag/v1.13.0

- - - - -
8e94b1a9 by Steve Lhomme at 2026-06-16T20:16:06+00:00
extras/tools: boostrap: put the regular check first

So that others may call it.

No functional changes.

- - - - -
13111792 by Steve Lhomme at 2026-06-16T20:16:06+00:00
extras/tools: boostrap: check ninja has the minimum version when combined with GNU make 4.4+

Starting with version 1.13.0 ninja can support jobserver with GNU make 4.4+.
If we have a matching version we don't need to use the kitware version of ninja.

- - - - -
3affb189 by Steve Lhomme at 2026-06-16T20:16:06+00:00
extras/tools: boostrap: fix indentation

- - - - -
294353e9 by Steve Lhomme at 2026-06-16T20:16:06+00:00
CI: do not force build meson in vlc-debian-unstable

It's already found in the Docker image and we use a minimum version to check
we have a valid/supported version.

- - - - -


2 changed files:

- extras/ci/gitlab-ci.yml
- extras/tools/bootstrap


Changes:

=====================================
extras/ci/gitlab-ci.yml
=====================================
@@ -357,8 +357,6 @@ debian-meson:
             echo -e "\e[0Ksection_start:$(date +%s):build_tools_section\r\e[0KTools build"
             # Build tools
             ( cd extras/tools && ./bootstrap && make -j$NCPU --output-sync=recurse )
-            # Build meson from extras/tool explicitly
-            ( cd extras/tools && make -j$NCPU .buildmeson )
             export PATH="$(pwd)/extras/tools/build/bin:$PATH"
             echo -e "\e[0Ksection_end:$(date +%s):build_tools_section\r\e[0K"
         - |


=====================================
extras/tools/bootstrap
=====================================
@@ -24,6 +24,7 @@ MIN_LIBTOOL=2.4
 MIN_M4=1.4.16
 MIN_MESON=1.10.0
 MIN_NASM=2.15
+MIN_NINJA=1.13.0
 
 export LC_ALL=
 FOUND=
@@ -112,6 +113,22 @@ do
     shift
 done
 
+check() {
+if ! $1 --version >/dev/null 2>&1 && ! $1 -version >/dev/null 2>&1
+then
+    echo "$1 not found"
+    NEEDED="$NEEDED $1"
+else
+    # found, need to check version ?
+    if [ -z "$2" ];then
+        FOUND="$FOUND $1"
+    else
+        gotver=`$1 --version | head -1 | grep -o '[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?' | head -1`
+        check_version $1 $gotver $2
+    fi
+fi
+}
+
 check_tar() {
 if ! tar PcJ /dev/null >/dev/null 2>&1 && ! tar PcJf /dev/null /dev/null 2>&1
 then
@@ -152,43 +169,39 @@ fi
 }
 
 check_ninja() {
-if ! ninja --version >/dev/null 2>&1
+# with GNU make 4.4 we should use ninja 1.13.x and above
+# otherwise we must use the patched version from kitware
+
+isgnu=$(make -v | head -1 | cut -d ' ' -f 1)
+if [ "$isgnu" = "GNU" ];
+then
+    gotver=$(make -v | head -1 | cut -d ' ' -f 3)
+    gotmajor=$(echo $gotver|cut -d. -f1)
+    gotminor=$(echo $gotver|cut -d. -f2)
+fi
+if [ 4 -lt $gotmajor ] ||
+   [ 4 -eq $gotmajor ] && [ 4 -le $gotminor ];
 then
-    echo "ninja not found"
-    NEEDED="$NEEDED ninja"
+    # GNU Make 4.4+
+    check ninja $1
 else
-    jobserver=`ninja --version | head -1 | grep .jobserver`
-    if [ -z "$jobserver" ]; then
-        echo "ninja missing jobserver support"
+    if ! ninja --version >/dev/null 2>&1
+    then
+        echo "ninja not found"
         NEEDED="$NEEDED ninja"
     else
-        # found, need to check version ?
-        if [ -z "$1" ];then
-            FOUND="$FOUND ninja"
+        jobserver=$(ninja --version | head -1 | grep .jobserver)
+        if [ -z "$jobserver" ]; then
+            echo "ninja missing jobserver support"
+            NEEDED="$NEEDED ninja"
         else
-            gotver=`ninja --version | head -1 | sed s/'.* '//`
-            check_version ninja $gotver $1
+            # check the known working jobserver kitware version
+            check ninja 1.11.1
         fi
     fi
 fi
 }
 
-check() {
-if ! $1 --version >/dev/null 2>&1 && ! $1 -version >/dev/null 2>&1
-then
-    echo "$1 not found"
-    NEEDED="$NEEDED $1"
-else
-    # found, need to check version ?
-    if [ -z "$2" ];then
-        FOUND="$FOUND $1"
-    else
-        gotver=`$1 --version | head -1 | grep -o '[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?' | head -1`
-        check_version $1 $gotver $2
-    fi
-fi
-}
-
 check_config() {
     # always install it for now as we need the arm64_32 patch
     NEEDED="$NEEDED configguess"
@@ -222,7 +235,7 @@ check_nasm $MIN_NASM
 check gettext
 check help2man
 check meson $MIN_MESON
-check_ninja
+check_ninja $MIN_NINJA
 check gperf
 
 DEPS_ONLY="help2man"



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6805e4584e6bafa77dd22f26049ea0cd49a7c17a...294353e9cd0308ecb8aca9edd4503eb28baee008

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/6805e4584e6bafa77dd22f26049ea0cd49a7c17a...294353e9cd0308ecb8aca9edd4503eb28baee008
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