From 85f2cb577024a6eb27c2dd156d3f655d27a65728 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sun, 18 Dec 2022 22:09:50 +0530 Subject: [PATCH] README: Several updates to sync with status quo Part-of: --- README.md | 134 ++++++++++++++++------------- data/images/vs-2019-dev-prompt.png | Bin 50695 -> 0 bytes 2 files changed, 74 insertions(+), 60 deletions(-) delete mode 100644 data/images/vs-2019-dev-prompt.png diff --git a/README.md b/README.md index e68a51521c..9097ef7cbc 100644 --- a/README.md +++ b/README.md @@ -29,16 +29,17 @@ community which can be found in the `subprojects/` directory. ## Getting started -### Install git and python 3.5+ +### Install git and python 3.8+ -If you're on Linux, you probably already have these. On macOS, you can use the +If you're on Linux, you probably already have these. On macOS, new versions of +Xcode ship Python 3 already. If you're on an older Xcode, you can use the [official Python installer](https://www.python.org/downloads/mac-osx/). You can find [instructions for Windows below](#windows-prerequisites-setup). ### Install meson and ninja -Meson 0.59 or newer is required. +Meson 0.62 or newer is required. On Linux and macOS you can get meson through your package manager or using: @@ -54,8 +55,9 @@ binary in your PATH. You can find [instructions for Windows below](#windows-prerequisites-setup). -On macOS, you might need to execute "Install Certificates.command" from the -Python folder in the user Applications folder: +If you used the official Python installer on macOS instead of the Python +3 shipped with Xcode, you might need to execute "Install Certificates.command" +from the Python folder in the user Applications folder: ``` $ /Applications/Python\ 3.*/Install\ Certificates.command @@ -72,15 +74,16 @@ urllib.error.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificat You can get all GStreamer built running: ``` -meson builddir -ninja -C builddir +meson setup builddir +meson compile -C builddir ``` -This will automatically create the `build` directory and build everything +This will automatically create the `builddir` directory and build everything inside it. -NOTE: On Windows, you *must* run this from [inside the Visual Studio command -prompt](#running-meson-on-windows) of the appropriate architecture and version. +NOTE: On Windows, meson will automatically detect and use the latest Visual +Studio if GCC, clang, etc are not available in `PATH`. Use the `--vsenv` +argument to force the use of Visual Studio. ### External dependencies @@ -229,10 +232,10 @@ the documentation, first ensure that `hotdoc` is installed and `doc` option is enabled. For API documentation, gobject introspection must also be enabled. The special target `gst-doc` can then be used to (re)generate the documentation. -``` -pip install hotdoc -meson setup -Ddoc=enabled -Dintrospection=enabled builddir -ninja -C builddir gst-doc +```sh +$ pip install hotdoc +$ meson setup -Ddoc=enabled -Dintrospection=enabled builddir +$ meson compile -C builddir gst-doc ``` NOTE: To visualize the documentation, `devhelp` can be run inside the development @@ -242,21 +245,32 @@ environment (see below). ## Development environment target -GStreamer also contains a special `devenv` target that lets you enter an -development environment where you will be able to work on GStreamer -easily. You can get into that environment running: +GStreamer ships a script that drops you into a development environment where +all the plugins, libraries, and tools you just built are available: ``` -ninja -C builddir devenv +./gst-env.py ``` -If your operating system handles symlinks, built modules source code will be -available at the root for example GStreamer core will be in -`gstreamer/`. Otherwise they will be present in `subprojects/`. You can simply -hack in there and to rebuild you just need to rerun `ninja -C builddir`. +Or with a custom builddir (i.e., not `build`, `_build` or `builddir`): -NOTE: In the development environment, a fully usable prefix is also configured -in `gstreamer/prefix` where you can install any extra dependency/project. +``` +./gst-env.py --builddir +``` + +You can also use `ninja devenv` inside your build directory to achieve the same +effect. However, this may not work on Windows if meson has auto-detected the +visual studio environment. + +Alternatively, if you'd rather not start a shell in your workflow, you +can mutate the current environment into a suitable state like so: + +``` +./gst-env.py --only-environment +``` + +This will print output suitable for an sh-compatible `eval` function, +just like `ssh-agent -s`. An external script can be run in development environment with: @@ -264,23 +278,26 @@ An external script can be run in development environment with: ./gst-env.py external_script.sh ``` +NOTE: In the development environment, a fully usable prefix is also configured +in `gstreamer/prefix` where you can install any extra dependency/project. + For more extensive documentation about the development environment go to [the documentation](https://gstreamer.freedesktop.org/documentation/installing/building-from-source-using-meson.html). ## Custom subprojects We also added a meson option, `custom_subprojects`, that allows the user -to provide a comma-separated list of subprojects that should be built +to provide a comma-separated list of meson subprojects that should be built alongside the default ones. To use it: -``` -cd subprojects -git clone my_subproject -cd ../build -rm -rf * && meson .. -Dcustom_subprojects=my_subproject -ninja +```sh +# Clone into the subprojects directory +$ git -C subprojects clone my_subproject +# Wipe dependency detection state, in case you have an existing build dir +$ meson setup --wipe builddir -Dcustom_subprojects=my_subproject +$ meson compile -C builddir ``` ## Run tests @@ -321,8 +338,8 @@ You can also install everything that is built into a predetermined prefix like so: ``` -meson --prefix=/path/to/install/prefix builddir -ninja -C builddir +meson setup --prefix=/path/to/install/prefix builddir +meson compile -C builddir meson install -C builddir ``` @@ -379,7 +396,7 @@ following option: ![Select "Git from the command line and also from 3rd-party software"](/data/images/git-installer-PATH.png) -### Python 3.5+ on Windows +### Python 3.8+ on Windows Use the [official Python installer](https://www.python.org/downloads/windows/). You must ensure that Python is installed into `PATH`: @@ -391,16 +408,18 @@ a system-wide location such as `C:\PythonXY`, but this is not required. ### Ninja on Windows -The easiest way to install Ninja on Windows is with `pip3`, which will download -the compiled binary and place it into the `Scripts` directory inside your -Python installation: +If you are using Visual Studio 2019 or newer, Ninja is already provided. + +In other cases, the easiest way to install Ninja on Windows is with `pip3`, +which will download the compiled binary and place it into the `Scripts` +directory inside your Python installation: ``` pip3 install ninja ``` You can also download the [official release](https://github.com/ninja-build/ninja/releases) -and place it into `PATH`. +and place it into `PATH`, or use MSYS2. ### Meson on Windows @@ -419,16 +438,13 @@ use the latest master branch for some reason. ### Running Meson on Windows -At present, to build with Visual Studio, you need to run Meson from inside the -VS 2019 command prompt. Press `Start`, and search for `VS 2019`, and click on -`x64 Native Tools Command Prompt for VS 2019`, or a prompt named similar to -that: +Since version 0.59.0, Meson automatically activates the Visual Studio +environment on Windows if no other compilers (gcc, clang, etc) are found. To +force the use of Visual Studio in such cases, you can use: -![x64 Native Tools Command Prompt for VS 2019](/data/images/vs-2019-dev-prompt.png) - -**ARM64 native only**: Since Visual Studio might not install dedicated command -prompt for native ARM64 build, you might need to run `vcvarsx86_arm64.bat` on CMD. -Please refer to [this document](https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=vs-2019#developer_command_file_locations) +``` +meson setup --vsenv builddir +``` ### Setup a mingw/wine based development environment on linux @@ -462,25 +478,23 @@ meson/meson.py install -C $BUILDDIR/ ``` > __NOTE__: You should use `meson install -C $BUILDDIR` each time you make a change -> instead of the usual `ninja -C build` as this is not in the development environment. +> instead of the usual `meson compile -C $BUILDDIR` as this is not in the +> development environment. -#### The development environment +Alternatively, you can also use `mingw64-meson` on Fedora, which is a wrapper +script that sets things up to use Fedora's cross files and settings. However, +the wrapper script can be buggy in some cases. -You can get into the development environment the usual way: +#### cross-mingw development environment + +You can get into the development environment as usual with the gst-env.py +script: ``` -ninja -C $BUILDDIR/ devenv +./gst-env.py ``` -Alternatively, if you'd rather not start a shell in your workflow, you -can mutate the current environment into a suitable state like so: - -``` -gst-env.py --only-environment -``` - -This will print output suitable for an sh-compatible `eval` function, -just like `ssh-agent -s`. +See [above](#development-environment) for more details. After setting up [binfmt] to use wine for windows binaries, you can run GStreamer tools under wine by running: diff --git a/data/images/vs-2019-dev-prompt.png b/data/images/vs-2019-dev-prompt.png deleted file mode 100644 index 766fa6273becb2cd2458a226981a87c2044322f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50695 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 a$Gp0u_43NIG!6tH80eUsA)I!&@qYkoP($(n