From 8512d17b83aba565d50e5ccd3920e41a4833beb5 Mon Sep 17 00:00:00 2001 From: Larpon Date: Wed, 26 Jul 2023 23:47:08 +0200 Subject: [PATCH] docs: add example + .vsh script with auto detection of SDL2 version (#516) * docs: add example with auto detection of SDL2 version * add setup.vsh, to make matching the installed SDL version easier for users Add a script to ease the post installation setup of SDL for end users. * Update README.md * insert 2.0.8 master at the start of supported_versions * Update setup.vsh --------- Co-authored-by: Delyan Angelov --- README.md | 9 +++++++++ setup.vsh | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 setup.vsh diff --git a/README.md b/README.md index 9d625c23..8f4bb6a4 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,15 @@ v install sdl If you want to use another version of SDL2 you will, currently, have to install it via `git` or by manual download. +An example of installing the system provided version of SDL2 via `git`: +```bash +git clone https://github.com/vlang/sdl.git ~/.vmodules +v ~/.vmodules/sdl/setup.vsh +``` + +Should `sdl2-config` be absent on your system you can try the following instead, +by providing the version manually: + An example of installing SDL2 `v2.0.12` via `git`: ```bash git clone https://github.com/vlang/sdl.git ~/.vmodules diff --git a/setup.vsh b/setup.vsh new file mode 100644 index 00000000..06e80346 --- /dev/null +++ b/setup.vsh @@ -0,0 +1,36 @@ +import os + +os.chdir(os.dir(os.executable()))! + +res := os.execute('sdl2-config --version') +if res.exit_code != 0 { + println('sdl2-config is missing') + exit(1) +} +system_version := res.output.trim_space() +println('Your version is ${system_version}') + +remotes := os.execute('git branch -r --list') +if remotes.exit_code != 0 { + println('git is missing') + exit(1) +} +mut supported_versions := remotes.output.split_into_lines().map(it.trim_space()).filter(it.starts_with('origin/2')).map(it.all_after('origin/')) +supported_versions.insert(0, '2.0.8') // master +println('The SDL module officially supports these versions of SDL:\n ${supported_versions}') + +if system_version == '2.0.8' { + println('Setting up the repository to branch master, that exactly matches your system SDL version 2.0.8') + os.system('git checkout master') + exit(0) +} + +if system_version in supported_versions { + println('Setting up the repository to branch ${system_version} that exactly matches your system SDL version') + os.system('git checkout ${system_version}') + exit(0) +} + +base_version := '${system_version.all_before_last('.')}.0' +println('Setting up the repository to branch ${base_version}, that best matches the system SDL version: ${system_version} ...') +os.system('git checkout ${base_version}')