[vlc-commits] [Git][videolan/vlc][master] 4 commits: tools: bootstrap: regroup the minimum versions to the top

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Oct 23 14:23:58 UTC 2025



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
9f72482f by Steve Lhomme at 2025-10-23T13:20:21+00:00
tools: bootstrap: regroup the minimum versions to the top

- - - - -
6ecda79f by Steve Lhomme at 2025-10-23T13:20:21+00:00
tools: bootstrap: allow requiring a higher version of a tool

For example we may require a newer version of CMake for some targets (iOS, Android)
when the other targets can use a much older version.

This allow keeping required values low while allowing upgrades in some cases.

- - - - -
f6499e6d by Steve Lhomme at 2025-10-23T13:20:21+00:00
package/apple: require CMake 3.28 for vision OS

Otherwise use whatever default value is.
It the default value becomes higher than 3.28 that value will be used.

- - - - -
05ceba2f by Steve Lhomme at 2025-10-23T13:20:21+00:00
tools: lower the CMake requirement to 3.21

Only visionOS requires 3.28.

- - - - -


2 changed files:

- extras/package/apple/build.sh
- extras/tools/bootstrap


Changes:

=====================================
extras/package/apple/build.sh
=====================================
@@ -621,8 +621,13 @@ APPL_LIBTOOL=$(xcrun -f libtool) \
 
 echo "Building needed tools (if missing)"
 
+TOOLS_BOOTSTRAP=
+if [ "$VLC_HOST_OS" = "xros" ]; then
+    TOOLS_BOOTSTRAP="$TOOLS_BOOTSTRAP --min-cmake=3.28.0"
+fi
+
 cd "$VLC_SRC_DIR/extras/tools" || abort_err "Failed cd to tools dir"
-./bootstrap || abort_err "Bootstrapping tools failed"
+./bootstrap $TOOLS_BOOTSTRAP || abort_err "Bootstrapping tools failed"
 $MAKE || abort_err "Building tools failed"
 echo ""
 


=====================================
extras/tools/bootstrap
=====================================
@@ -15,9 +15,25 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
 
+MIN_AUTOCONF=2.69
+MIN_AUTOMAKE=1.15
+MIN_BISON=3.0.0
+MIN_CMAKE=3.21.0
+MIN_CONFIGGUESS=2025.07.10
+MIN_LIBTOOL=2.4
+MIN_M4=1.4.16
+MIN_MESON=1.2.3
+MIN_NASM=2.14
+
 export LC_ALL=
 FOUND=
 
+usage()
+{
+    echo "Usage: $0 [--min-NAME=VERSION]"
+    echo "  --min-NAME=VERSION set NAME tool minimum version to VERSION"
+}
+
 check_version() {
     gotver=$2
     gotmajor=`echo $gotver|cut -d. -f1`
@@ -57,6 +73,45 @@ check_version_majmin() {
 
 }
 
+while test -n "$1"
+do
+    case "$1" in
+        --min-*=*)
+            NAMEVER="${1#--min-}"
+            TOOLNAME=$(echo "$NAMEVER" | cut -d "=" -f 1 | tr '[:lower:]' '[:upper:]')
+            TVERSION=$(echo "$NAMEVER" | cut -d "=" -f 2)
+            eval "MIN_ORIGINAL_=\$MIN_${TOOLNAME}"
+
+            gotmajor=$(echo $TVERSION|cut -d. -f1)
+            gotminor=$(echo $TVERSION|cut -d. -f2)
+            gotmicro=$(echo $TVERSION|cut -d. -f3|tr -c -d '[:digit:]')
+            [ -z "$gotmicro" ] && gotmicro=0
+            needmajor=$(echo $MIN_ORIGINAL_|cut -d. -f1)
+            needminor=$(echo $MIN_ORIGINAL_|cut -d. -f2)
+            needmicro=$(echo $MIN_ORIGINAL_|cut -d. -f3)
+            [ -z "$needmicro" ] && needmicro=0
+
+            if [ "$needmajor" -lt "$gotmajor" ] ||
+               [ "$needmajor" -eq "$gotmajor" -a "$needminor" -lt "$gotminor" ] ||
+               [ "$needmajor" -eq "$gotmajor" -a "$needminor" -eq "$gotminor" -a "$needmicro" -lt "$gotmicro" ];
+            then
+                # echo "using $TVERSION for $TOOLNAME"
+                eval "MIN_$TOOLNAME=${TVERSION}"
+            fi
+            ;;
+        --help|-h)
+            usage
+            exit 0
+            ;;
+        *)
+            echo "Unrecognized options $1"
+            usage
+            exit 1
+            ;;
+    esac
+    shift
+done
+
 check_tar() {
 if ! tar PcJ /dev/null >/dev/null 2>&1 && ! tar PcJf /dev/null /dev/null 2>&1
 then
@@ -150,23 +205,23 @@ check_config() {
 # done
 }
 
-check_config 2024.01.01
-check autoconf 2.69
-check automake 1.15
-check m4 1.4.16
-check libtool 2.4
+check_config $MIN_CONFIGGUESS
+check autoconf $MIN_AUTOCONF
+check automake $MIN_AUTOMAKE
+check m4 $MIN_M4
+check libtool $MIN_LIBTOOL
 check pkg-config
-check cmake 3.28.0
+check cmake $MIN_CMAKE
 check_tar
 check_sed
 check ant
 check xz
-check bison 3.0.0
+check bison $MIN_BISON
 check flex
-check_nasm 2.14
+check_nasm $MIN_NASM
 check gettext
 check help2man
-check meson 1.2.3
+check meson $MIN_MESON
 check_ninja
 check gperf
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ef1d401dd84c70da1bea3edf7e9da571bc7f8586...05ceba2f37b945f51472ee5254b7f7a4f6a02a73

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/ef1d401dd84c70da1bea3edf7e9da571bc7f8586...05ceba2f37b945f51472ee5254b7f7a4f6a02a73
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list