aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/markdown/MesonCI.md53
-rw-r--r--docs/markdown/Syntax.md25
-rw-r--r--docs/sitemap.txt1
3 files changed, 76 insertions, 3 deletions
diff --git a/docs/markdown/MesonCI.md b/docs/markdown/MesonCI.md
new file mode 100644
index 0000000..73b979b
--- /dev/null
+++ b/docs/markdown/MesonCI.md
@@ -0,0 +1,53 @@
+# Meson CI setup
+
+This document is aimed for Meson contributors and documents
+the CI setup used for testing Meson itself. The Meson
+project uses multiple CI platforms for covering a wide
+range of target systems.
+
+## Travis CI
+
+The travis configuration file is the `.travis.yml` in the
+the project root. This platform tests cross compilation and
+unity builds on a [linux docker image](#docker-images) and
+on OSX.
+
+## GitHub actions
+
+The configuration files for GitHub actions are located in
+`.github/workflows`. Here, all [images](#docker-images)
+are tested with the full `run_tests.py` run. Additionally,
+some other, smaller, tests are run.
+
+## Docker images
+
+The Linux docker images are automatically built and
+uploaded by GitHub actions. An image rebuild is triggerd
+when any of the image definition files are changed (in
+`ci/ciimage`) in the master branch. Additionally, the
+images are also updated weekly.
+
+Each docker image has one corresponding dirctory in
+`ci/ciimage` with an `image.json` and an `install.sh`.
+
+### Image generation
+
+There are no manual Dockerfiles. Instead the Dockerfile is
+automatically generated by the `build.py` script. This is
+done to ensure that all images have the same layout and can
+all be built and tested automatically.
+
+The Dockerfile is generated from the `image.json` file and
+basically only adds a few common files and runs the
+`install.sh` script which should contain all distribution
+specific setup steps. The `common.sh` can be sourced via
+`source /ci/common.sh` to access some shared functionalety.
+
+To generate the image run `build.py -t build <image>`. A
+generated image can be tested with `build.py -t test <image>`.
+
+### Common image setup
+
+Each docker image has a `/ci` directory with an
+`env_vars.sh` script. This script has to be sourced before
+running the meson test suite.
diff --git a/docs/markdown/Syntax.md b/docs/markdown/Syntax.md
index 666d50e..8db7bb3 100644
--- a/docs/markdown/Syntax.md
+++ b/docs/markdown/Syntax.md
@@ -16,9 +16,10 @@ statements* and *includes*.
Usually one Meson statement takes just one line. There is no way to
have multiple statements on one line as in e.g. *C*. Function and
method calls' argument lists can be split over multiple lines. Meson
-will autodetect this case and do the right thing. In other cases you
-can get multi-line statements by ending the line with a `\`. Apart
-from line ending whitespace has no syntactic meaning.
+will autodetect this case and do the right thing.
+
+In other cases, *(added 0.50)* you can get multi-line statements by ending the
+line with a `\`. Apart from line ending whitespace has no syntactic meaning.
Variables
--
@@ -136,6 +137,24 @@ str2 = 'xyz'
combined = str1 + '_' + str2 # combined is now abc_xyz
```
+#### String path building
+
+*(Added 0.49)*
+
+You can concatenate any two strings using `/` as an operator to build paths.
+This will always use `/` as the path separator on all platforms.
+
+```meson
+joined = '/usr/share' / 'projectname' # => /usr/share/projectname
+joined = '/usr/local' / '/etc/name' # => /etc/name
+
+joined = 'C:\\foo\\bar' / 'builddir' # => C:/foo/bar/builddir
+joined = 'C:\\foo\\bar' / 'D:\\builddir' # => D:/builddir
+```
+
+Note that this is equivalent to using [`join_paths()`](Reference-manual.md#join_paths),
+which was obsoleted by this operator.
+
#### Strings running over multiple lines
Strings running over multiple lines can be declared with three single
diff --git a/docs/sitemap.txt b/docs/sitemap.txt
index 1aef1c1..be1d908 100644
--- a/docs/sitemap.txt
+++ b/docs/sitemap.txt
@@ -118,5 +118,6 @@ index.md
Using-multiple-build-directories.md
Vs-External.md
Contributing.md
+ MesonCI.md
legal.md
Videos.md