summaryrefslogtreecommitdiffstats
path: root/INSTALL.md
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-08-22 12:16:52 -0400
committerDavid Robillard <d@drobilla.net>2022-08-22 12:16:52 -0400
commit1c83dccf62f0bf39a8f772e8d6056220a6ce0a7f (patch)
treeb5240a075b389bd92681a5a0f54a34fefe1dbdd8 /INSTALL.md
parent79693e0ed6fc5c221ee15ab4523d4cf03f9454f9 (diff)
downloadingen-1c83dccf62f0bf39a8f772e8d6056220a6ce0a7f.tar.gz
ingen-1c83dccf62f0bf39a8f772e8d6056220a6ce0a7f.tar.bz2
ingen-1c83dccf62f0bf39a8f772e8d6056220a6ce0a7f.zip
Update INSTALL.md for meson
Diffstat (limited to 'INSTALL.md')
-rw-r--r--INSTALL.md74
1 files changed, 74 insertions, 0 deletions
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 00000000..96c4a60a
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,74 @@
+Installation Instructions
+=========================
+
+Prerequisites
+-------------
+
+To build from source, you will need:
+
+ * A relatively modern C++ compiler (GCC, Clang, and MSVC are known to work).
+
+ * [Meson](http://mesonbuild.com/), which depends on
+ [Python](http://python.org/).
+
+This is a brief overview of building this project with meson. See the meson
+documentation for more detailed information.
+
+Configuration
+-------------
+
+The build is configured with the `setup` command, which creates a new build
+directory with the given name:
+
+ meson setup build
+
+Some environment variables are read during `setup` and stored with the
+configuration:
+
+ * `CXX`: Path to C++ compiler.
+ * `CXXFLAGS`: C++ compiler options.
+ * `LDFLAGS`: Linker options.
+
+However, it is better to use meson options for configuration. All options can
+be inspected with the `configure` command from within the build directory:
+
+ cd build
+ meson configure
+
+Options can be set by passing C-style "define" options to `configure`:
+
+ meson configure -Dcpp_args="-march=native" -Dprefix="/opt/mypackage/"
+
+Note that some options, such as `strict` and `werror` are for
+developer/maintainer use only. Please don't file issues about anything that
+happens when they are enabled.
+
+Building
+--------
+
+From within a configured build directory, everything can be built with the
+`compile` command:
+
+ meson compile
+
+Similarly, tests can be run with the `test` command:
+
+ meson test
+
+Meson can also generate a project for several popular IDEs, see the `backend`
+option for details.
+
+Installation
+------------
+
+A compiled project can be installed with the `install` command:
+
+ meson install
+
+You may need to acquire root permissions to install to a system-wide prefix.
+For packaging, the installation may be staged to a directory using the
+`DESTDIR` environment variable or the `--destdir` option:
+
+ DESTDIR=/tmp/mypackage/ meson install
+
+ meson install --destdir=/tmp/mypackage/