The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.0 KiB
99 lines
3.0 KiB
# 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`. |
|
|
|
## Promoting dependencies |
|
|
|
Meson will only search for subprojects from the top level |
|
`subprojects` directory. If you have subprojects that themselves have |
|
subprojects, you must transfer them to the top level. This can be done |
|
by going to your source root and issuing a promotion command. |
|
|
|
meson wrap promote projname |
|
|
|
This will cause Meson to go through your entire project tree, find an |
|
embedded subproject and copy it to the top level. |
|
|
|
If there are multiple embedded copies of a subproject, Meson will not |
|
try to guess which one you want. Instead it will print all the |
|
possibilities. You can then manually select which one to promote by |
|
writing it out fully. |
|
|
|
meson wrap promote subprojects/s1/subprojects/projname |
|
|
|
This functionality was added in Meson release 0.45.0.
|
|
|