build: remove gst-indent as a subproject

gst-indent is now installable with pip. Remove it as
a subproject and update the documentation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8402>
This commit is contained in:
Andoni Morales Alastruey 2025-02-04 20:45:05 +01:00 committed by GStreamer Marge Bot
parent d0ab931628
commit bc5e1eeb16
8 changed files with 7 additions and 66 deletions

View File

@ -9,7 +9,7 @@ variables:
DEBIAN_TAG: '2025-01-11.0' DEBIAN_TAG: '2025-01-11.0'
CHECKS_TAG: '2025-01-22.0' CHECKS_TAG: '2025-02-04.0'
ABI_CHECK_TAG: '2025-01-29.0' ABI_CHECK_TAG: '2025-01-29.0'

View File

@ -18,45 +18,12 @@ apt install -y dotnet-sdk-7.0
dotnet tool install --global dotnet-format dotnet tool install --global dotnet-format
ln -s ~/.dotnet/tools/dotnet-format /usr/local/bin/dotnet-format ln -s ~/.dotnet/tools/dotnet-format /usr/local/bin/dotnet-format
# Build and install gst-indent-1.0 # Install build dependencies
echo "deb-src http://deb.debian.org/debian/ bookworm main" >> /etc/apt/sources.list echo "deb-src http://deb.debian.org/debian/ bookworm main" >> /etc/apt/sources.list
apt update apt update
apt-get install --assume-yes devscripts build-essential dpkg-dev wget meson ninja-build pkg-config libssl-dev apt-get install --assume-yes devscripts build-essential dpkg-dev wget meson ninja-build pkg-config libssl-dev
apt-get build-dep --assume-yes indent
git clone https://gitlab.freedesktop.org/gstreamer/gst-indent.git
cd gst-indent
meson setup --prefix=/usr _build
meson install -C _build
# Try it
wget -O gstbayer2rgb.c "https://gitlab.freedesktop.org/gstreamer/gstreamer/-/raw/main/subprojects/gst-plugins-bad/gst/bayer/gstbayer2rgb.c?inline=false"
for i in 1 2; do
gst-indent-1.0 \
--braces-on-if-line \
--case-brace-indentation0 \
--case-indentation2 \
--braces-after-struct-decl-line \
--line-length80 \
--no-tabs \
--cuddle-else \
--dont-line-up-parentheses \
--continuation-indentation4 \
--honour-newlines \
--tab-size8 \
--indent-level2 \
--leave-preprocessor-space \
gstbayer2rgb.c
done;
# Clean up gst-indent
cd ..
rm -rf gst-indent
export PIP_BREAK_SYSTEM_PACKAGES=1 export PIP_BREAK_SYSTEM_PACKAGES=1
# Install pre-commit # Install pre-commit
python3 -m pip install --upgrade pip python3 -m pip install --upgrade pip

View File

@ -322,14 +322,6 @@ def get_subprocess_env(options, gst_version):
prepend_env_var(env, "PKG_CONFIG_PATH", os.path.join(PREFIX_DIR, 'lib', 'pkgconfig'), prepend_env_var(env, "PKG_CONFIG_PATH", os.path.join(PREFIX_DIR, 'lib', 'pkgconfig'),
options.sysroot) options.sysroot)
# gst-indent-1.0
prepend_env_var(env, "PATH", os.path.join(options.builddir, 'subprojects',
'gst-indent', 'src'),
options.sysroot)
# gst-indent (FIXME: remove or move into gst-indent module)
prepend_env_var(env, "PATH", os.path.join(SCRIPTDIR, 'scripts'),
options.sysroot)
# tools: gst-launch-1.0, gst-inspect-1.0 # tools: gst-launch-1.0, gst-inspect-1.0
prepend_env_var(env, "PATH", os.path.join(options.builddir, 'subprojects', prepend_env_var(env, "PATH", os.path.join(options.builddir, 'subprojects',
'gstreamer', 'tools'), 'gstreamer', 'tools'),

View File

@ -686,8 +686,6 @@ if dotnet_format.found()
) )
endif endif
indent = find_program('gst-indent-1.0', native: true, required: get_option('gst-indent').allowed())
summary({ summary({
'gstreamer-full library': building_full, 'gstreamer-full library': building_full,
'gstreamer-full target type': get_option('gst-full-target-type'), 'gstreamer-full target type': get_option('gst-full-target-type'),

View File

@ -45,7 +45,6 @@ option('gst-full-target-type', type : 'combo', value : 'shared_library', choices
option('orc-source', type: 'combo', choices: ['system', 'subproject', 'auto'], value: 'subproject') option('orc-source', type: 'combo', choices: ['system', 'subproject', 'auto'], value: 'subproject')
option('build-tools-source', type: 'combo', choices: ['system', 'subproject'], value: 'subproject') option('build-tools-source', type: 'combo', choices: ['system', 'subproject'], value: 'subproject')
option('virtme_kernel_image', type: 'string', value: '', description: 'Path to a Linux kernel image to be used for virtme testing') option('virtme_kernel_image', type: 'string', value: '', description: 'Path to a Linux kernel image to be used for virtme testing')
option('gst-indent', type: 'feature', value: 'auto', description: 'Whether to build the gst-indent tool')
# License-related feature options # License-related feature options
option('gpl', type: 'feature', value: 'disabled', option('gpl', type: 'feature', value: 'disabled',

View File

@ -427,8 +427,8 @@ In the simplest case, you might be able to get away with just doing a `git pull
#### Coding Style #### Coding Style
Try to stick to the GStreamer indentation and coding style. There is an Try to stick to the GStreamer indentation and coding style. There is an
application called [`gst-indent-1.0`][gst-indent] which should be available application called [`gst-indent-1.0`][gst-indent] that can be installed
in a GStreamer development environment and which you can run over your `.c` or with `pip install gst-indent`. You can run it over your `.c` or
`.cpp` files if you want your code auto-indented before making the patch. `.cpp` files if you want your code auto-indented before making the patch.
Please do _not_ run `gst-indent-1.0` on header files, our header file Please do _not_ run `gst-indent-1.0` on header files, our header file
@ -439,13 +439,6 @@ checks if your commit conforms to the required style. You can bypass that local
indentation check hook by using `git commit -n`, but it will still be checked indentation check hook by using `git commit -n`, but it will still be checked
again later on the CI when you submit your changes through GitLab for merging. again later on the CI when you submit your changes through GitLab for merging.
If `gst-indent-1.0` is not found on your system at setup time, it will be
supplied from the Meson wrap in the main project; you must build GStreamer
once, and that will make `gst-indent-1.0` available to the developer
environment.
We are working on making this less hasslesome.
Compiler requirements: Compiler requirements:
- we are targetting the C99 compiler and preprocesser feature subset - we are targetting the C99 compiler and preprocesser feature subset
supported by gcc 5.4, clang and vs2017. Newer features can be supported by gcc 5.4, clang and vs2017. Newer features can be

View File

@ -120,9 +120,9 @@ Rust source files (.rs files) are indented with the standard `rustfmt`.
One way to make sure you are following our coding style is to run your code One way to make sure you are following our coding style is to run your code
(remember, only the `*.c` files, not the headers) through the `gst-indent-1.0` (remember, only the `*.c` files, not the headers) through the `gst-indent-1.0`
tool, which should be available in the uninstalled GStreamer development tool, which can be installed with `pip install gst-indent`.
environment from version 1.23.1 onwards. Alternatively you can also get the Alternatively you can also get the tool from the
tool from the [gst-indent repository](https://gitlab.freedesktop.org/gstreamer/gst-indent/) [gst-indent repository](https://gitlab.freedesktop.org/gstreamer/gst-indent/)
and build it yourself. and build it yourself.
The easiest way to get the indenting right is probably to develop against a git The easiest way to get the indenting right is probably to develop against a git

View File

@ -1,8 +0,0 @@
[wrap-git]
directory=gst-indent
url=https://gitlab.freedesktop.org/gstreamer/gst-indent.git
push-url=git@gitlab.freedesktop.org:gstreamer/gst-indent.git
revision=main
[provide]
program_names = gst-indent-1.0