diff --git a/HACKING.md b/HACKING.md index 36f1a953b..21580f15d 100644 --- a/HACKING.md +++ b/HACKING.md @@ -10,7 +10,7 @@ Hacking Zrythm ├── CONTRIBUTOR_CERTIFICATE_OF_ORIGIN # Certificate for contributing ├── COPYING # Main license ├── COPYING.* # Other licenses - ├── INSTALL.md # Installation instructions + ├── INSTALL.rst # Installation instructions ├── PACKAGING.md # Information for packagers ├── README.md # Main README file ├── THANKS # Thanks notice diff --git a/INSTALL.md b/INSTALL.md deleted file mode 100644 index 8d0485f94..000000000 --- a/INSTALL.md +++ /dev/null @@ -1,123 +0,0 @@ -Installation Instructions -========================= - -# Building - -The project uses [meson](https://mesonbuild.com), so -the steps to configure and build are - - meson build - meson compile -C build - -To pass options, use the following syntax - - meson build -Doption_name=value - -To see all available options, type the following -after the build directory is initialized, or look -inside [meson_options.txt](meson_options.txt). -Built-in meson options can be found -[here](https://mesonbuild.com/Builtin-options.html). - - meson configure build - -To change an option after configuration, use - - meson configure build -Doption_name=value - -To clean the build directory while keeping the -current configuration, use - - meson compile --clean -C build - -To change environment variables (such as `CC` and -`CXX`) while keeping the current configuration, use - - MY_ENV_VARIABLE=myvalue meson build --wipe - -To start from scratch, remove the `build` directory - - rm -rf build - -*Hint: If your distro's meson package is too old, -you can either install meson from -[pip](https://pypi.org/project/pip/) or run -`meson.py` directly from -[meson's source code](https://github.com/mesonbuild/meson).* - -## Optimization - -The default build type is `debugoptmized`, which -is equivalent to `-Ddebug=true -Doptimization=2` -(`-O2 -g`). This works well in most cases. For -extremely optimized builds, we suggest building with - - meson build -Ddebug=true -Doptimization=3 -Dextra_optimizations=true -Dnative_build=true - -We suggest always keeping `-Ddebug=true` to assist -with meaningful stack traces and bug reports. - -## Dependencies -### Required -- breeze-icons (LGPLv3+): -- carla (GPLv2+): -- fftw (GPLv2+): -- gtk4 (LGPLv2.1+): -- gtksourceview (LGPLv2.1+): -- guile (GPLv3+): -- json-glib (LGPLv2.1+): -- libadwaita (LGPLv2.1+): -- libaudec (AGPLv3+): -- libbacktrace (3-Clause BSD): -- libcyaml (ISC): -- lilv (ISC): -- pcre2 (3-Clause BSD): -- reproc (Expat): -- vamp-plugin-sdk (X11): -- xxhash (2-Clause BSD): -- zstd (3-Clause BSD): - -### Recommended -- jack (LGPLv2.1+): -- lsp-dsp-lib (LGPLv3+): - -### Optional -- graphviz (EPLv1.0): -- rtaudio (Expat): -- rtmidi (Expat): -- SDL2 (zlib): - -*Tip: dependency package names for various distros -can be found [here](https://git.sr.ht/~alextee/zrythm-builds/tree/master/item/.builds) -and [here](https://git.sr.ht/~alextee/zrythm-builds2/tree/master/item/.builds)* - -## Installation -Once the program is built, it will need to be -installed the first time before it can run (to -install the [GSettings](https://developer.gnome.org/gio/stable/GSettings.html) among other things). - - meson install -C build - -If you don't want to install anything permanent on -your system, you can install it somewhere -temporary by configuring with -`meson build --prefix=/tmp/zrythm` for example, and -then you can run it with -`/tmp/zrythm/bin/zrythm_launch`. - -## Running - -When running Zrythm from the command line, it is -recommended to use `zrythm_launch` instead of -running the `zrythm` binary directly. This takes -care of using the correct GSettings schemas and -other resources in the installed prefix. - ----- - -Copyright (C) 2019-2021 Alexandros Theodotou - -Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. This file is offered as-is, -without any warranty. diff --git a/INSTALL.rst b/INSTALL.rst new file mode 100644 index 000000000..1f7e3b7f0 --- /dev/null +++ b/INSTALL.rst @@ -0,0 +1,188 @@ +Installation Instructions +========================= + +Prerequisites +------------- + +You will need the GNU toolchain, a C/C++ compiler +and the following + +`meson (Apache-2.0) `_ + Build system + +`guile (GPLv3+) `_ + Used in various build scripts + +`sassc (Expat) `_ + CSS compilation + +If your meson version is too old, you can either +install meson from +`pip `_ +or run ``meson.py`` directly from +`meson's source code `_. + +Building +-------- + +To configure and build, use:: + + meson build + meson compile -C build + +To pass options, use the following syntax:: + + meson build -Doption_name=value + +To see all available options, type the following +after the build directory is initialized, or look +inside `meson_options.txt `_. +Built-in meson options can be found +`here `_:: + + meson configure build + +To change an option after configuration, use:: + + meson configure build -Doption_name=value + +To clean the build directory while keeping the +current configuration, use:: + + meson compile --clean -C build + +To change environment variables (such as ``CC`` and +``CXX``) while keeping the current configuration, use:: + + MY_ENV_VARIABLE=myvalue meson build --wipe + +To start from scratch, remove the ``build`` directory:: + + rm -rf build + +Optimization +~~~~~~~~~~~~ + +The default build type is ``debugoptmized``, which +is equivalent to ``-Ddebug=true -Doptimization=2`` +(``-O2 -g``). This works well in most cases. For +extremely optimized builds, we suggest building with:: + + meson build -Ddebug=true -Doptimization=3 -Dextra_optimizations=true -Dnative_build=true + +We suggest always keeping ``-Ddebug=true`` to assist +with meaningful stack traces and bug reports. + +Dependencies +~~~~~~~~~~~~ +Required +++++++++ +`breeze-icons (LGPLv3+) `_ + Various icons + +`carla (GPLv2+) `_ + Support for various plugin formats + +`fftw (GPLv2+) `_ + Threaded fftw for plugins + +`gtk4 (LGPLv2.1+) `_ + GUI toolkit + +`gtksourceview (LGPLv2.1+) `_ + Source code editor widget + +`json-glib (LGPLv2.1+) `_ + JSON manipulation + +`libadwaita (LGPLv2.1+) `_ + Additional widgets + +`libaudec (AGPLv3+) `_ + Audio file loading + +`libbacktrace (3-Clause BSD) `_ + Backtraces + +`libcyaml (ISC) `_ + Serialization into YAML + +`lilv (ISC) `_ + LV2 host support + +`pcre2 (3-Clause BSD) `_ + Regex + +`reproc (Expat) `_ + Process launching + +`vamp-plugin-sdk (X11) `_ + Audio analysis + +`xxhash (2-Clause BSD) `_ + Hashing + +`zstd (3-Clause BSD) `_ + Compression + +Recommended ++++++++++++ + +`jack (LGPLv2.1+) `_ + Low latency audio/MIDI backend + +`lsp-dsp-lib (LGPLv3+) `_ + SIMD-optimized signal processing + +`libguile (GPLv3+) `_ + Scripting support + +Optional +++++++++ + +`graphviz (EPLv1.0) `_ + Process graph export + +`rtaudio (Expat) `_ + Various audio backends + +`rtmidi (Expat) `_ + Various MIDI backends + +`SDL2 (zlib) `_ + Audio backend + +Dependency package names for various distros +can be found `here `_ +and `here `_ + +Installation +------------ +Once the program is built, it will need to be +installed the first time before it can run (to +install the `GSettings `_ among other things):: + + meson install -C build + +If you don't want to install anything permanent on +your system, you can install it somewhere +temporary by configuring with +``meson build --prefix=/tmp/zrythm`` for example, and +then you can run it with +``/tmp/zrythm/bin/zrythm_launch``. + +Running +------- + +When running Zrythm from the command line, it is +recommended to use ``zrythm_launch`` instead of +running the ``zrythm`` binary directly. This takes +care of using the correct GSettings schemas and +other resources in the installed prefix. + +.. Copyright (C) 2019-2022 Alexandros Theodotou + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. This file is offered as-is, + without any warranty. diff --git a/README.md b/README.md index aa4d3f510..e3a97548e 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ towards a stable release. - GNU/Linux, FreeBSD, Windows, MacOS ## Building and Installation -See [INSTALL.md](INSTALL.md) for build instructions. +See [INSTALL.rst](INSTALL.rst) for build instructions. Prebuilt packages/installers available at . diff --git a/doc/dev/Doxyfile.cfg.in b/doc/dev/Doxyfile.cfg.in index 2938cae12..4f4e74672 100644 --- a/doc/dev/Doxyfile.cfg.in +++ b/doc/dev/Doxyfile.cfg.in @@ -822,7 +822,7 @@ INPUT = \ @MESON_SOURCE_ROOT@/CONTRIBUTING.md \ @MESON_SOURCE_ROOT@/HACKING.md \ @MESON_SOURCE_ROOT@/doc/dev/group_defs.dox \ - @MESON_SOURCE_ROOT@/INSTALL.md @MESON_SOURCE_ROOT@/git-packaging-hooks/README.md + @MESON_SOURCE_ROOT@/INSTALL.rst @MESON_SOURCE_ROOT@/git-packaging-hooks/README.md # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/doc/user/getting-started/installation.rst b/doc/user/getting-started/installation.rst index 18eac6303..c423d55ce 100644 --- a/doc/user/getting-started/installation.rst +++ b/doc/user/getting-started/installation.rst @@ -28,7 +28,7 @@ Zrythm from source, either using a `source distribution tarball `_ or `git `_. -See :download:`INSTALL.md <../../../INSTALL.md>` in +See :download:`INSTALL.rst <../../../INSTALL.rst>` in the source distribution for installation instructions. diff --git a/meson.build b/meson.build index 1a04eb409..6c7056672 100644 --- a/meson.build +++ b/meson.build @@ -1321,7 +1321,7 @@ root_doc_files = [ 'AUTHORS', 'TRANSLATORS', 'THANKS', - 'INSTALL.md', + 'INSTALL.rst', ] foreach f : root_doc_files configure_file ( diff --git a/tests/meson.build b/tests/meson.build index 2239d28eb..e9a1aefe4 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -375,12 +375,12 @@ if get_option ('tests') common_cflags, strict_cflags, test_c_args, ], - dependencies : [ + dependencies: [ zrythm_deps, ], - export_dynamic : false, + export_dynamic: false, link_with: test_link_libs, - include_directories : all_inc, + include_directories: all_inc, ) if is_benchmark benchmark (