aboutsummaryrefslogtreecommitdiffstats
path: root/meson/docs/markdown/Shipping-prebuilt-binaries-as-wraps.md
diff options
context:
space:
mode:
Diffstat (limited to 'meson/docs/markdown/Shipping-prebuilt-binaries-as-wraps.md')
-rw-r--r--meson/docs/markdown/Shipping-prebuilt-binaries-as-wraps.md36
1 files changed, 36 insertions, 0 deletions
diff --git a/meson/docs/markdown/Shipping-prebuilt-binaries-as-wraps.md b/meson/docs/markdown/Shipping-prebuilt-binaries-as-wraps.md
new file mode 100644
index 000000000..73cf48b08
--- /dev/null
+++ b/meson/docs/markdown/Shipping-prebuilt-binaries-as-wraps.md
@@ -0,0 +1,36 @@
+# Shipping prebuilt binaries as wraps
+
+A common dependency case, especially on Windows, is the need to
+provide dependencies as prebuilt binaries rather than Meson projects
+that you build from scratch. Common reasons include not having access
+to source code, not having the time and effort to rewrite a legacy
+system's build definitions to Meson or just the fact that compiling
+the dependency projects takes too long.
+
+Packaging a project is straightforward. As an example let's look at a
+case where the project consists of one static library called `bob` and
+some headers. To create a binary dependency project we put the static
+library at the top level and headers in a subdirectory called
+`include`. The Meson build definition would look like the following.
+
+```meson
+project('binary dep', 'c')
+
+cc = meson.get_compiler('c')
+bin_dep = declare_dependency(
+ dependencies : cc.find_library('bob', dirs : meson.current_source_dir()),
+ include_directories : include_directories('include'))
+```
+
+Now you can use this subproject as if it was a Meson project:
+
+```meson
+project('using dep', 'c')
+bob_dep = subproject('bob').get_variable('bin_dep')
+executable('prog', 'prog.c', dependencies : bob_dep)
+```
+
+Note that often libraries compiled with different compilers (or even
+compiler flags) might not be compatible. If you do this, then you are
+responsible for verifying that your libraries are compatible, Meson
+will not check things for you.