DISTRHO / DPF

DISTRHO Plugin Framework
ISC License
665 stars 95 forks source link

Add an official project generator script / project skeleton #54

Open pdesaulniers opened 6 years ago

pdesaulniers commented 6 years ago

As we've previously discussed.

DPF plugins use similar project structures and Makefiles, so there should probably be an official way of starting a new DPF project.

For those who already want something like that, this project is pretty neat: https://github.com/SpotlightKid/cookiecutter-dpf-effect

codecat commented 5 years ago

Perhaps use something like CMake/PreMake/GENie to build DPF, so that projects can be generated for whatever platform. If implemented well, you could make plugins that use DPF pretty easily by including a project file directly from DPF to link against.

pdesaulniers commented 5 years ago

The cookiecutter project has been updated to support UI generation and MIDI In/Out. For the time being, I think it's the sanest way of starting a new DPF project.

@codecat I'm not super familiar with these build systems. Can they handle something similar to the jinja templates we're using in the cookiecutter project? (basically, parameter substitution, and conditional generation of some code blocks)

codecat commented 5 years ago

No, it doesn’t work like a project template system. It merely provides an easy way for cross-platform project generation. The source files will still need to manually be written.

mxmilkiib commented 4 years ago

It would be handy if a template Makefile could have bits to uncomment for different setups, like compiling for LV2 only.

pdesaulniers commented 4 years ago

@mxmilkb The cookiecutter project has some flags in a Makefile for this purpose: https://github.com/SpotlightKid/cookiecutter-dpf-effect/blob/a36f83394c4365c13dd57588acfaba184ecadf72/%7B%7B%20cookiecutter.repo_name%20%7D%7D/plugins/%7B%7B%20cookiecutter.plugin_name%20%7D%7D/Makefile#L48-L59

mxmilkiib commented 2 years ago

A note as per IRC; an official turnkey template to fork, especially that builds with GH actions, like the JUCE and VCV ones available, would be a good way to help on-board developers.

https://github.com/sudara/pamplejuce

https://github.com/maxwellpollack/juce-plugin-ci

https://community.vcvrack.com/t/automated-building-and-releasing-plugins-on-github-with-github-actions/11364

https://www.kvraudio.com/forum/viewtopic.php?t=557214