|
3 | 3 |
|
4 | 4 | ## Rationale |
5 | 5 |
|
6 | | -Compiling large C++ applications is a complicated process with potentially many steps, |
7 | | -as every source file needs to be compiled to an object file before the collection of all |
8 | | -object files can be linked into a library or executable. |
| 6 | +Compiling large C++ applications is a complicated process with potentially many steps, as every source file needs to be compiled to an object file before the collection of all object files can be linked into a library or executable. |
9 | 7 |
|
10 | 8 | The command line utility `make` has been created to streamline this process. |
11 | | -Given instructions on how to build a project in the form of a `Makefile`, it only performs |
12 | | -the compilation steps that are necessary to bring the application to its most up-to-date state. |
| 9 | +Given instructions on how to build a project in the form of a `Makefile`, it only performs the compilation steps that are necessary to bring the application to its most up-to-date state. |
13 | 10 |
|
14 | | -But `Makefile`s are tedious to write by hand and difficult to write in a way that is |
15 | | -portable between different operating systems and computers. |
| 11 | +But `Makefile`s are tedious to write by hand and difficult to write in a way that is portable between different operating systems and computers. |
16 | 12 | This is where high-level build tools like CMake come into play. |
17 | | -They allow you to specify build instructions in a more abstract and powerful way. |
18 | | -CMake can then generate a `Makefile` on demand, or export your build instructions into |
19 | | -other formats, like those used by your IDE (CodeBlocks, Eclipse, XCode, ...). |
| 13 | +CMake allows you to specify build instructions in a more abstract and powerful way. |
| 14 | +It can then generate a `Makefile` on demand, or export your build instructions into other formats, like those used by your IDE (CodeBlocks, Eclipse, XCode, ...). |
20 | 15 |
|
21 | 16 | This CMake template should be well-suited for starting a new C++ project. |
22 | | -It is preconfigured to allow you to compile an executable or library from a collection |
23 | | -of source files in the `src` directory. |
| 17 | +It is preconfigured to allow you to compile an executable or library from a collection of source files in the `src` directory. |
24 | 18 |
|
25 | | -It also allows you to define and run automated tests of your code (with GTest), as well as generate |
26 | | -documentation from the source files (with Doxygen). |
| 19 | +It also allows you to define and run automated tests of your code (with [googletest](http://code.google.com/p/googletest/)), as well as generate documentation from the source files (with [Doxygen](http://www.stack.nl/~dimitri/doxygen/)). |
27 | 20 |
|
28 | 21 | ## Instructions |
29 | 22 |
|
@@ -57,17 +50,13 @@ If you have doxygen installed, simply execute |
57 | 50 | $ make doc |
58 | 51 |
|
59 | 52 | in the build directory to create the documentation for your project. |
60 | | -A tutorial on the doxygen syntax can be found here: |
61 | | - |
62 | | - [](http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html) |
| 53 | +A tutorial on the doxygen syntax can be found here: [](http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html) |
63 | 54 |
|
64 | 55 | ### GTest |
65 | 56 |
|
66 | 57 | You can also make use of the googletest library to write and execute tests. |
67 | 58 | Simply create new tests in the `test` directory. |
68 | 59 | They will be automatically compiled into an executable. |
69 | | -For an introduction to writing tests with googletest, follow this link: |
70 | | - |
71 | | - [](http://code.google.com/p/googletest/wiki/Primer) |
| 60 | +For an introduction to writing tests with googletest, follow this link: [](http://code.google.com/p/googletest/wiki/Primer) |
72 | 61 |
|
73 | 62 |
|
0 commit comments