aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown/SimpleStart.md
blob: b446aed8c1f0ab0b35f24ff0e3363c7a859e6050 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---
short-description: Simple getting started guide
...

# The Absolute Beginner's Guide to Installing and Using Meson

This page is meant for people who are new to using Meson and possibly
even to compiling C and/or C++ code in general. It is meant to contain
one simple way of getting your build environment up and running. If
you are more experienced and have your own preferred way of installing
and using development software, feel free to use that instead. This
guide only deals with Linux, Windows and macOS platforms. If you use
some other platform, such as one of the BSDs, you probably already
know how to install development tools on it (probably better than we
do, even).

There are three phases to getting a development environment running.

1. Installing a compiler toolchain
2. Installing Meson
3. Creating a project and building it

## Installing a compiler toolchain

### Linux

All Linux distributions provide easy access to development tools.
Typically you need to open a terminal and execute one command, which
depends on your distro.

 - Debian, Ubuntu and derivatives: `sudo apt install build-essential`
 - Fedora, Centos, RHEL and derivatives: `sudo dnf install gcc-c++`
 - Arch: `sudo pacman -S ?????`

### Windows

The most common development toolchain on Windows is Visual Studio,
which can be downloaded from [the Visual Studio web
site](https://visualstudio.microsoft.com/). Select the Community
version unless you have bought a license.

![Download page of Visual Studio](images/win_dlvs.png)

Download the installer and run it. When you are given a list of things
to install, select *Desktop development with C++*. This installs both
a C and a C++ compiler.

![Installing the Visual Studio compilers](images/win_installvs.png)

Once the installer finishes the compiler toolchain is ready to use.

### macOS

On macOS the development toolchain must be installed via the Mac app
store. Search for an app called XCode and install it.

![App store page for XCode](images/osx_xcode.png)

*Note:* Installing XCode is not sufficient by itself. You also need to
start XCode' GUI application once. This will make XCode download and
install more files that are needed for compilation.

## Installing Meson

### Linux

Installing Meson is just as simple as installing the compiler toolchain.

 - Debian, Ubuntu and derivatives: `sudo apt install meson ninja-build`
 - Fedora, Centos, RHEL and derivatives: `sudo dnf install meson ninja-build`
 - Arch: `sudo pacman -S ?????`

### Windows

Meson provides a standard Windows `.msi` installer that can be
downloaded from [the Releases
page](https://github.com/mesonbuild/meson/releases).

![Meson installed download](images/win_downloadmeson.png)

Download and run it to install all the necessary bits. You can verify
that your installation is working by running the Visual Studio
developer tools command prompt that can be found in the start menu.

![Devtool prompt](images/win_vstoolsprompt.png)

You should be able to run both `meson` and `ninja` and query their
versions.

![A working Windows install](images/win_working.png)

### macOS

Due to the way Apple has set things up, getting macOS working is a bit
more complicated. The first thing you need to do is to install the
newest version of Python 3 [from the project's web
site](https://www.python.org/downloads/mac-osx/).

![Downloading the Python for macOS installer](images/osx_download.png)

Once you have a working Python you can install the necessary bits
using Python's Pip package manager.

    pip install --user meson ninja

This will install the necessary files in your home directory, but
sadly they are not directly usable. You need to add the directory they
are written to in the system's `PATH` environment variable so the
programs can be used directly from the terminal. This requires editing
a text configuration file.

The correct file to edit depends on which shell you are currently
using. If you have an old macOS install it is probably Bash and the
file you need to edit is `.bash_profile`. If, on the other hand, you
have a new macOS install then you are probably using Zsh and the file
to edit is `.zshrc`. In either case the file should be in your home
directory.

For Bash the line you need to add is this:

    PATH=$PATH:/Users/username/Library/Python/3.9/bin

whereas for Zsh it is this:

    export PATH=$PATH:/Users/username/Library/Python/3.9/bin

In both case you need to change the values for `username` and `3.9`.
The former needs to be substituted with your Unix username while the
latter needs to contain the actual Python version you installed.

Once this is done close the terminal application and start it again.
Now you should be able to run the `meson` command.

![A working macOS install](images/osx_working.png)

## Running Meson

Start a terminal application. On Windows you have to use the Visual
Studio Developer Tools Command Prompt as discussed above, because the
compilers are only available in that terminal. You also need to change
into your home directory (Linux and macOS terminals start in the home
directory by default).

    cd \users\username

Create a new directory to hold your project.

    mkdir testproject
    cd testproject

Use Meson to create and build a new sample project.

    meson init --name testproject --build

This will create a project skeleton for you and compile it. The result
is put in the `build` subdirectory and can be run directly from there.

    build/testproject

![All finished and ready to go](images/linux_alldone.png)

The project is now ready for development. You can edit the code with
any editor and it is rebuilt by going in the `build` subdirectory and
executing the `meson compile` command.