diff options
-rw-r--r-- | docs/markdown/MesonCI.md | 53 | ||||
-rw-r--r-- | docs/markdown/Syntax.md | 25 | ||||
-rw-r--r-- | docs/sitemap.txt | 1 |
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 |