| # Using wraptool | |
| Wraptool is a subcommand of Meson that allows you to manage your | |
| source dependencies using the WrapDB database. It gives you all things | |
| you would expect, such as installing and updating dependencies. The | |
| wrap tool works on all platforms, the only limitation is that the wrap | |
| definition works on your target platform. If you find some Wraps that | |
| don't work, please file bugs or, even better, patches. | |
| All code examples here assume that you are running the commands in | |
| your top level source directory. Lines that start with the `$` mark | |
| are commands to type. | |
| ## Simple querying | |
| The simplest operation to do is to query the list of packages | |
| available. To list them all issue the following command: | |
| $ meson wrap list | |
| box2d | |
| enet | |
| gtest | |
| libjpeg | |
| liblzma | |
| libpng | |
| libxml2 | |
| lua | |
| ogg | |
| sqlite | |
| vorbis | |
| zlib | |
| Usually you want to search for a specific package. This can be done | |
| with the `search` command: | |
| $ meson wrap search jpeg | |
| libjpeg | |
| To determine which versions of libjpeg are available to install, issue | |
| the `info` command: | |
| $ meson wrap info libjpeg | |
| Available versions of libjpeg: | |
| 9a 2 | |
| The first number is the upstream release version, in this case | |
| `9a`. The second number is the Wrap revision number. They don't relate | |
| to anything in particular, but larger numbers imply newer | |
| releases. You should always use the newest available release. | |
| ## Installing dependencies | |
| Installing dependencies is just as straightforward. First just create | |
| the `subprojects` directory at the top of your source tree and issue | |
| the install command. | |
| $ meson wrap install libjpeg | |
| Installed libjpeg branch 9a revision 2 | |
| Now you can issue a `subproject('libjpeg')` in your `meson.build` file | |
| to use it. | |
| To check if your projects are up to date you can issue the `status` command. | |
| $ meson wrap status | |
| Subproject status | |
| libjpeg up to date. Branch 9a, revision 2. | |
| zlib not up to date. Have 1.2.8 2, but 1.2.8 4 is available. | |
| In this case `zlib` has a newer release available. Updating it is | |
| straightforward: | |
| $ meson wrap update zlib | |
| Updated zlib to branch 1.2.8 revision 4 | |
| Wraptool can do other things besides these. Documentation for these | |
| can be found in the command line help, which can be accessed by | |
| `meson wrap --help`. |