An open API service indexing awesome lists of open source software.

https://github.com/distrho/pawpaw

Cross-Platform build scripts for audio plugins
https://github.com/distrho/pawpaw

Last synced: about 2 months ago
JSON representation

Cross-Platform build scripts for audio plugins

Awesome Lists containing this project

README

        

# PawPaw

[![Build Status](https://travis-ci.org/DISTRHO/PawPaw.png)](https://travis-ci.org/DISTRHO/PawPaw)

PawPaw is a Cross-Platform build scripts setup for static libraries and audio plugins

It was created out of the need of many open-source developers to easily build their stuff for macOS and Windows,
where usually dependencies are involved which need to be built manually.

In order to make audio plugins self-contained, these dependencies/libraries need to be built statically,
which most packaging projects do not do.

Also, most open-source audio plugin projects do not have binaries for macOS or Windows,
making it very difficult for users in these platforms to enjoy them.

This project was created as a way to do automated macOS and Windows builds of such projects and libraries,
so we can finally have a good collection of LV2 plugins on these system.
The same automated setup can then be re-used/extended to support other projects and applications.

## Goals

PawPaw has the following goals:

- Single script to build most common plugin dependencies statically, both natively and cross-compiling
- Clean and simple code, easy to maintain and add new libraries to build
- Statically build LV2 plugins for (at least) macOS and Windows
- Define each plugin project in its own file, to make it easy to support new plugins via pull-request
- Package the entire collection as an installer

Additionally, PawPaw is used to build library dependencies for
[Cardinal](https://github.com/DISTRHO/Cardinal),
[Carla](https://github.com/falkTX/Carla),
[JACK2](https://github.com/jackaudio/jack2) and
[mod-app](https://github.com/moddevices/mod-app).

## For developers

Proper documentation on how to setup PawPaw for your own project will come at a later date.
But roughly all that is needed is something like:

```bash
# change dir to PawPaw root folder
cd /path/to/PawPaw

# build plugin dependencies for win64 target (only needed once)
./bootstrap-plugins.sh win64

# set up environment variables for win64 builds with PawPaw static libs
source local.env win64

# change dir to your own project
cd /path/to/my/project

# build as usual
make # or whatever other build system applies
```

##### On MacOS

##### Prerequisites

Based on Sonoma 14.2.1 running on an M1 based MacBook, the following are needed:
* Xcode command line tools https://mac.install.guide/commandlinetools/about-xcode-clt.html

As well as:
* autoconf
* automake
* cmake
* coreutils
* gawk
* gnu-sed
* jq
* make
* meson

A great way of installing these is using Homebrew "The Missing Package Manager for macOS". You can install Homebrew by visiting https://brew.sh/

The brew command to install the dependencies listed above is:

```zsh
brew install autoconf automake cmake coreutils gawk git gnu-sed jq make meson
```