docs: Markdown headers don't need trailing hash signs

This is a cosmetic change because github seems to interpret those
correctly. Nonetheless, it adds unnecessary noise and makes people
modifying the pages think it might be needed.

See syntax guide at https://guides.github.com/features/mastering-markdown/
pull/2315/merge
Luis Menina 7 years ago committed by Jussi Pakkanen
parent be36b05544
commit 36eb7bf0aa
  1. 26
      docs/markdown/Comparisons.md
  2. 2
      docs/markdown/Custom-build-targets.md
  3. 8
      docs/markdown/Dependencies.md
  4. 2
      docs/markdown/FAQ.md
  5. 4
      docs/markdown/Installing.md
  6. 4
      docs/markdown/Using-multiple-build-directories.md
  7. 2
      docs/markdown/Wrap-review-guidelines.md
  8. 2
      docs/markdown/howtox.md

@ -2,7 +2,7 @@
title: Comparisons title: Comparisons
... ...
# Comparing Meson with other build systems # # Comparing Meson with other build systems
A common question is *Why should I choose Meson over a different build A common question is *Why should I choose Meson over a different build
system X?* There is no one true answer to this as it depends on the system X?* There is no one true answer to this as it depends on the
@ -11,37 +11,37 @@ to build medium-to-large projects so the decision is usually made on
other points. Here we list some pros and cons of various build systems other points. Here we list some pros and cons of various build systems
to help you do the decision yourself. to help you do the decision yourself.
## GNU Autotools ## ## GNU Autotools
### Pros ### ### Pros
Excellent support for legacy Unix platforms, large selection of Excellent support for legacy Unix platforms, large selection of
existing modules. existing modules.
### Cons ### ### Cons
Needlessly slow, complicated, hard to use correctly, unreliable, Needlessly slow, complicated, hard to use correctly, unreliable,
painful to debug, incomprehensible for most people, poor support for painful to debug, incomprehensible for most people, poor support for
non-Unix platforms (especially Windows). non-Unix platforms (especially Windows).
## CMake ## ## CMake
### Pros ### ### Pros
Great support for multiple backends (Visual Studio, XCode, etc). Great support for multiple backends (Visual Studio, XCode, etc).
### Cons ### ### Cons
The scripting language is cumbersome to work with. Some simple things The scripting language is cumbersome to work with. Some simple things
are more complicated than necessary. are more complicated than necessary.
## SCons ## ## SCons
### Pros ### ### Pros
Full power of Python available for defining your build. Full power of Python available for defining your build.
### Cons ### ### Cons
Slow. Requires you to pass your configuration settings on every Slow. Requires you to pass your configuration settings on every
invocation. That is, if you do `scons OPT1 OPT2` and then just invocation. That is, if you do `scons OPT1 OPT2` and then just
@ -61,9 +61,9 @@ Implemented in Java. Poor Windows support. Heavily focused on Google's
way of doing things (which may be a good or a bad thing). Contributing way of doing things (which may be a good or a bad thing). Contributing
code requires [signing a CLA](https://bazel.build/contributing.html). code requires [signing a CLA](https://bazel.build/contributing.html).
## Meson ## ## Meson
### Pros ### ### Pros
The fastest build system [see The fastest build system [see
measurements](Performance-comparison.md), user friendly, designed to measurements](Performance-comparison.md), user friendly, designed to
@ -71,7 +71,7 @@ be as invisible to the developer as possible, native support for
modern tools (precompiled headers, coverage, Valgrind etc). Not Turing modern tools (precompiled headers, coverage, Valgrind etc). Not Turing
complete so build definition files are easy to read and understand. complete so build definition files are easy to read and understand.
### Cons ### ### Cons
Relatively new so it does not have a large user base yet, and may thus Relatively new so it does not have a large user base yet, and may thus
contain some unknown bugs. Visual Studio and XCode backends not as contain some unknown bugs. Visual Studio and XCode backends not as

@ -27,7 +27,7 @@ This would generate the binary `output.bin` and install it to
`${prefix}/subdir/output.bin`. Variable substitution works just like `${prefix}/subdir/output.bin`. Variable substitution works just like
it does for source generation. it does for source generation.
## Details on compiler invocations ## ## Details on compiler invocations
Meson only permits you to specify one command to run. This is by Meson only permits you to specify one command to run. This is by
design as writing shell pipelines into build definition files leads to design as writing shell pipelines into build definition files leads to

@ -47,7 +47,7 @@ The dependency detector works with all libraries that provide a
`pkg-config` file. Unfortunately several packages don't provide `pkg-config` file. Unfortunately several packages don't provide
pkg-config files. Meson has autodetection support for some of these. pkg-config files. Meson has autodetection support for some of these.
## Boost ## ## Boost
Boost is not a single dependency but rather a group of different Boost is not a single dependency but rather a group of different
libraries. To use Boost headers-only libraries, simply add Boost as a libraries. To use Boost headers-only libraries, simply add Boost as a
@ -76,7 +76,7 @@ environment variables.
You can set the argument `threading` to `single` to use boost libraries that You can set the argument `threading` to `single` to use boost libraries that
has been compiled for single-threaded use instead. has been compiled for single-threaded use instead.
## GTest and GMock ## ## GTest and GMock
GTest and GMock come as sources that must be compiled as part of your GTest and GMock come as sources that must be compiled as part of your
project. With Meson you don't have to care about the details, just project. With Meson you don't have to care about the details, just
@ -84,7 +84,7 @@ pass `gtest` or `gmock` to `dependency` and it will do everything for
you. If you want to use GMock, it is recommended to use GTest as well, you. If you want to use GMock, it is recommended to use GTest as well,
as getting it to work standalone is tricky. as getting it to work standalone is tricky.
## MPI ## ## MPI
MPI is supported for C, C++ and Fortran. Because dependencies are MPI is supported for C, C++ and Fortran. Because dependencies are
language-specific, you must specify the requested language using the language-specific, you must specify the requested language using the
@ -100,7 +100,7 @@ are not in your path, they can be specified by setting the standard
environment variables `MPICC`, `MPICXX`, `MPIFC`, `MPIF90`, or environment variables `MPICC`, `MPICXX`, `MPIFC`, `MPIF90`, or
`MPIF77`, during configuration. `MPIF77`, during configuration.
## Qt5 ## ## Qt5
Meson has native Qt5 support. Its usage is best demonstrated with an Meson has native Qt5 support. Its usage is best demonstrated with an
example. example.

@ -98,7 +98,7 @@ The only reason why one would use Make instead of Ninja is working on a platform
Just use Ninja, you'll be happier that way. I guarantee it. Just use Ninja, you'll be happier that way. I guarantee it.
## Why is Meson not just a Python module so I could code my build setup in Python? ## ## Why is Meson not just a Python module so I could code my build setup in Python?
A related question to this is *Why is Meson's configuration language not Turing-complete?* A related question to this is *Why is Meson's configuration language not Turing-complete?*

@ -44,7 +44,7 @@ giving an absolute install path.
install_data(sources : 'foo.dat', install_dir : '/etc') # -> /etc/foo.dat install_data(sources : 'foo.dat', install_dir : '/etc') # -> /etc/foo.dat
``` ```
## Custom install behavior ## ## Custom install behavior
Sometimes you need to do more than just install basic targets. Meson makes this easy by allowing you to specify a custom script to execute at install time. As an example, here is a script that generates an empty file in a custom directory. Sometimes you need to do more than just install basic targets. Meson makes this easy by allowing you to specify a custom script to execute at install time. As an example, here is a script that generates an empty file in a custom directory.
@ -65,7 +65,7 @@ meson.add_install_script('myscript.sh')
The argument is the name of the script file relative to the current subdirectory. The argument is the name of the script file relative to the current subdirectory.
## DESTDIR support ## ## DESTDIR support
Sometimes you need to install to a different directory than the install prefix. This is most common when building rpm or deb packages. This is done with the `DESTDIR` environment variable and it is used just like with other build systems: Sometimes you need to install to a different directory than the install prefix. This is most common when building rpm or deb packages. This is done with the `DESTDIR` environment variable and it is used just like with other build systems:

@ -8,7 +8,7 @@ Secondly this makes it very easy to clean your projects: just delete the build s
The true benefit comes from somewhere else, though. The true benefit comes from somewhere else, though.
## Multiple build directories for the same source tree ## ## Multiple build directories for the same source tree
Since a build directory is fully self contained and treats the source tree as a read-only piece of data, it follows that you can have arbitrarily many build trees for any source tree at the same time. Since all build trees can have different configuration, this is extremely powerful. Now you might be wondering why one would want to have multiple build setups at the same time. Let's examine this by setting up a hypothetical project. Since a build directory is fully self contained and treats the source tree as a read-only piece of data, it follows that you can have arbitrarily many build trees for any source tree at the same time. Since all build trees can have different configuration, this is extremely powerful. Now you might be wondering why one would want to have multiple build setups at the same time. Let's examine this by setting up a hypothetical project.
@ -36,7 +36,7 @@ The cross compilation file sets up Wine so that not only can you compile your ap
To compile any of these build types, just cd into the corresponding build directory and run `ninja` or instruct your IDE to do the same. Note that once you have set up your build directory once, you can just run Ninja and Meson will ensure that the resulting build is fully up to date according to the source. Even if you have not touched one of the directories in weeks and have done major changes to your build configuration, Meson will detect this and bring the build directory up to date (or print an error if it can't do that). This allows you to do most of your work in the default directory and use the others every now and then without having to babysit your build directories. To compile any of these build types, just cd into the corresponding build directory and run `ninja` or instruct your IDE to do the same. Note that once you have set up your build directory once, you can just run Ninja and Meson will ensure that the resulting build is fully up to date according to the source. Even if you have not touched one of the directories in weeks and have done major changes to your build configuration, Meson will detect this and bring the build directory up to date (or print an error if it can't do that). This allows you to do most of your work in the default directory and use the others every now and then without having to babysit your build directories.
## Specialized uses ## ## Specialized uses
Separate build directories allows easy integration for various different kinds of tools. As an example, Clang comes with a static analyzer. It is meant to be run from scratch on a given source tree. The steps to run it with Meson are very simple. Separate build directories allows easy integration for various different kinds of tools. As an example, Clang comes with a static analyzer. It is meant to be run from scratch on a given source tree. The steps to run it with Meson are very simple.

@ -7,7 +7,7 @@ package is rejected. What should be done will be determined on a
case-by-case basis. Similarly meeting all these requirements does not case-by-case basis. Similarly meeting all these requirements does not
guarantee that the package will get accepted. Use common sense. guarantee that the package will get accepted. Use common sense.
## Checklist ## ## Checklist
Reviewer: copy-paste this to MR discussion box and tick all boxes that apply. Reviewer: copy-paste this to MR discussion box and tick all boxes that apply.

@ -97,7 +97,7 @@ $ ninja coverage-html (or coverage-xml)
The coverage report can be found in the meson-logs subdirectory. The coverage report can be found in the meson-logs subdirectory.
## Add some optimization to debug builds ## ## Add some optimization to debug builds
By default the debug build does not use any optimizations. This is the desired approach most of the time. However some projects benefit from having some minor optimizations enabled. GCC even has a specific compiler flag `-Og` for this. To enable its use, just issue the following command. By default the debug build does not use any optimizations. This is the desired approach most of the time. However some projects benefit from having some minor optimizations enabled. GCC even has a specific compiler flag `-Og` for this. To enable its use, just issue the following command.

Loading…
Cancel
Save