docs: Fix markdown in 'design rationale' page

pull/2315/merge
Luis Menina 7 years ago committed by Jussi Pakkanen
parent e43332318b
commit be36b05544
  1. 16
      docs/markdown/Design-rationale.md

@ -67,7 +67,7 @@ need to solve? What sort of solutions would be the most appropriate?
To get things started, here is a list of requirements any modern cross-platform build system needs to provide.
###1. Must be simple to use###
### 1. Must be simple to use
One of the great virtues of Python is the fact that it is very
readable. It is easy to see what a given block of code does. It is
@ -76,7 +76,7 @@ be syntactically and semantically clean. Side effects, global state
and interrelations must be kept at a minimum or, if possible,
eliminated entirely.
###2. Must do the right thing by default###
### 2. Must do the right thing by default
Most builds are done by developers working on the code. Therefore the
defaults must be tailored towards that use case. As an example the
@ -85,7 +85,7 @@ information. It shall make binaries that can be run directly from the
build directory without linker tricks, shell scripts or magic
environment variables.
###3. Must enforce established best practices###
### 3. Must enforce established best practices
There really is no reason to compile source code without the
equivalent of `-Wall`. So enable it by default. A different kind of
@ -94,7 +94,7 @@ directories. All build artifacts must be stored in the build
directory. Writing stray files in the source directory is not
permitted under any circumstances.
###4. Must have native support for platforms that are in common use###
### 4. Must have native support for platforms that are in common use
A lot of free software projects can be used on non-free platforms such
as Windows or OSX. The system must provide native support for the
@ -102,7 +102,7 @@ tools of choice on those platforms. In practice this means native
support for Visual Studio and XCode. Having said IDEs invoke external
builder binaries does not count as native support.
###5. Must not add complexity due to obsolete platforms###
### 5. Must not add complexity due to obsolete platforms
Work on this build system started during the Christmas holidays of
2012. This provides a natural hard cutoff line of 2012/12/24. Any
@ -113,20 +113,20 @@ and so on. If these old versions happen to work, great. If they don't,
not a single line of code will be added to the system to work around
their bugs.
###6. Must be fast###
### 6. Must be fast
Running the configuration step on a moderate sized project must not
take more than five seconds. Running the compile command on a fully up
to date tree of 1000 source files must not take more than 0.1 seconds.
###7. Must provide easy to use support for modern sw development features###
### 7. Must provide easy to use support for modern sw development features
An example is precompiled headers. Currently no free software build
system provides native support for them. Other examples could include
easy integration of Valgrind and unit tests, test coverage reporting
and so on.
###8. Must allow override of default values###
### 8. Must allow override of default values
Sometimes you just have to compile files with only given compiler
flags and no others, or install files in weird places. The system must

Loading…
Cancel
Save