[GH-ISSUE #3] Linux build #3

Closed
opened 2026-05-05 22:01:07 -06:00 by gitea-mirror · 4 comments
Owner

Originally created by @ghost on GitHub (Jan 26, 2018).
Original GitHub issue: https://github.com/airwindows/airwindows/issues/3

Hej Chris!

I was able to build your open-source plugins for Linux. They seem to be working with the Linux build of Reaper.

Here is the repo with the project: ech2/airwindows-ports. The template is mostly ready, but I’d need to move the compilation flags from your project as well.

Would love to see native builds of other not (yet) open sourced Airwindows plugins!

Originally created by @ghost on GitHub (Jan 26, 2018). Original GitHub issue: https://github.com/airwindows/airwindows/issues/3 Hej Chris! I was able to build your open-source plugins for Linux. They seem to be working with the Linux build of Reaper. Here is the repo with the project: [ech2/airwindows-ports](https://github.com/ech2/airwindows-ports). The template is mostly ready, but I’d need to move the compilation flags from your project as well. Would love to see native builds of other not (yet) open sourced Airwindows plugins!
Author
Owner

@airwindows commented on GitHub (Jan 27, 2018):

This is wonderful! If it actually works on my virtual Linux install and makes sense, you may have helped me and my brother over our jam w.r.t. LinuxVST. If we can understand what you've done and it works, my next job is to make Linux builds of ALL the plugins that are VST, open source or not (they'll all end up open source eventually :) )

<!-- gh-comment-id:361014627 --> @airwindows commented on GitHub (Jan 27, 2018): This is wonderful! If it actually works on my virtual Linux install and makes sense, you may have helped me and my brother over our jam w.r.t. LinuxVST. If we can understand what you've done and it works, my next job is to make Linux builds of ALL the plugins that are VST, open source or not (they'll all end up open source eventually :) )
Author
Owner

@ghost commented on GitHub (Jan 27, 2018):

If your other plugins are as simple to build as those you open-sourced (i.e. no external and weird dependencies, just sources), the workflow to add them up to my build is as follows:

  1. Create a subdir PluginName in src.
  2. Put the plugin headers and sources to it.
  3. Add line add_airwindows_plugin(PluginName) to the root CMakeLists.
  4. Generate makefiles and compile.

Here is how it works.

CMakeLists.txt basically describes what sources needs to be compiled, as well as how that should be done. You can have many of these files There are build targets that are basically results of the compilation (an executable or a library). In my configuration I create a target for each subdirectory in src. It is done with the function add_airwindows_plugin(PluginName), which registers the contents of the directory src/PluginName as target with name PluginName. The functions itself is defined in Helpers.cmake (included from the root) and does the following:

  1. Enumerate all .h and .cpp files in the directory scr/PluginName.
  2. Create a library target PluginName and sets the plugin sources together with the .cpp files from the VST SDK to be compiled with this target.
  3. Add paths for VST SDK headers.
  4. Removes the target name prefix. Without it the tool would create libraries with names like libPluginName.so, which is weird for VST.

There is also a CMakeLists.txt file in the include/vstsdk directory. It sets up the VSTSDK_ROOT and VSTSDK_SOURCES variables. They are used by the add_airwindows_plugin function.

Hope this clears things out. Please, don’t hesitate to write me in case of any problems. I’m eager to see the plugins working on Linux and will help with that.

<!-- gh-comment-id:361020652 --> @ghost commented on GitHub (Jan 27, 2018): If your other plugins are as simple to build as those you open-sourced (i.e. no external and weird dependencies, just sources), the workflow to add them up to my build is as follows: 1. Create a subdir `PluginName` in `src`. 2. Put the plugin headers and sources to it. 3. Add line `add_airwindows_plugin(PluginName)` to the root `CMakeLists`. 4. Generate makefiles and compile. Here is how it works. `CMakeLists.txt` basically describes what sources needs to be compiled, as well as how that should be done. You can have many of these files There are build targets that are basically results of the compilation (an executable or a library). In my configuration I create a target for each subdirectory in `src`. It is done with the function `add_airwindows_plugin(PluginName)`, which registers the contents of the directory `src/PluginName` as target with name `PluginName`. The functions itself is defined in `Helpers.cmake` (included from the root) and does the following: 1. Enumerate all `.h` and `.cpp` files in the directory `scr/PluginName`. 2. Create a library target `PluginName` and sets the plugin sources together with the `.cpp` files from the VST SDK to be compiled with this target. 3. Add paths for VST SDK headers. 4. Removes the target name prefix. Without it the tool would create libraries with names like `libPluginName.so`, which is weird for VST. There is also a `CMakeLists.txt` file in the `include/vstsdk` directory. It sets up the `VSTSDK_ROOT` and `VSTSDK_SOURCES` variables. They are used by the `add_airwindows_plugin` function. Hope this clears things out. Please, don’t hesitate to write me in case of any problems. I’m eager to see the plugins working on Linux and will help with that.
Author
Owner

@ghost commented on GitHub (Jan 29, 2018):

Just added the GrooveWear to the Linux build. Also added the -O2 optimization flag, as in the Visual Studio project of yours.

<!-- gh-comment-id:361400483 --> @ghost commented on GitHub (Jan 29, 2018): Just added the GrooveWear to the Linux build. Also added the `-O2` optimization flag, as in the Visual Studio project of yours.
Author
Owner

@re23071998 commented on GitHub (Feb 11, 2018):

I need HighImpact for linux please!! :D

<!-- gh-comment-id:364714792 --> @re23071998 commented on GitHub (Feb 11, 2018): I need HighImpact for linux please!! :D
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/airwindows#3
No description provided.