Cross-Platform build scripts for audio plugins
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.
falkTX fa2536362b
t9
1 year ago
.github t9 1 year ago
mingw-compat Add mingw-std-threads and our mingw-compat headers for windows 2 years ago
patches Make sure jack linux support enabled in portaudio 1 year ago
plugins Update plugins 2 years ago
plugins-todo Add description to all packaged plugins, used in macOS installer 4 years ago
setup Fix mod bootstrap for macOS 1 year ago
.cleanup.sh Fix cleanup script 4 years ago
.gitignore Update gitignore 2 years ago
LICENSE Add mingw-std-threads and our mingw-compat headers for windows 2 years ago
README.md Typo (line 30) 3 years ago
VERSION Bump version 4 years ago
bootstrap-audacity.sh Add tweaks for qt build, off by default 4 years ago
bootstrap-cardinal.sh Ensure qt is enabled for cardinal builds 2 years ago
bootstrap-carla.sh Fix aggdraw build on mingw 1 year ago
bootstrap-common.sh Allow to skip tests in common bootstraps 1 year ago
bootstrap-jack2.sh Make sure jack linux support enabled in portaudio 1 year ago
bootstrap-mod.sh Add 1 more rpath to jack2 build to ease local development 1 year ago
bootstrap-plugins.sh Always build carla backend for testing 1 year ago
bootstrap-python.sh Tweak MOD jack2 build, skip qt on linux; Cleanup 1 year ago
bootstrap-qt.sh Begin to enable qt again 2 years ago
build-audacity.sh Fully working audacity windows build 4 years ago
build-jack2.sh Tweak jack-example-tools build 2 years ago
build-mod-plugin.sh More MOD fixup 1 year ago
build-plugins.sh Check for dependencies, allow to skip homebrew path setup 1 year ago
local.env Force build to complete under aarch64-linux systems 1 year ago
pack-jack2.sh Fix jack2 version parsing 3 years ago
pack-plugins.sh Check for dependencies, allow to skip homebrew path setup 1 year ago

README.md

PawPaw

Build Status

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 Carla and JACK2.

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:

# change dir to PawPaw root folder
cd /path/to/PawPaw
# build plugin dependencies for win64 target (only needed once)
./bootstrap-plugins 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