You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,10 +21,13 @@ This is how you build one of the examples in this directory. The examples are ke
21
21
22
22
### Step 1: Obtain header files
23
23
24
-
Before you can compile any plugin, you will need a copy of the SuperCollider *source code* (NOT the app itself). The source code version should match your SuperCollider app version. Slight differences will probably be tolerated, but if they're too far apart you will get an "API version mismatch" error when you boot the server.
24
+
Before you can compile any plugin, you will need a copy of the SuperCollider *source code* (NOT the app itself).
25
+
Source code tarballs can be downloaded from the [SuperCollider release page](https://github.com/supercollider/supercollider/releases). If you are on Linux, it's okay (and preferable) to use the Linux source tarball.
25
26
26
27
You will **not** need to recompile SuperCollider itself in order to get a plugin working. You only need the source code to get the C++ headers.
27
28
29
+
The source code version should roughly match your SuperCollider app version. This is due to occasional breaking changes in the plugin "API" (technically the ABI), which will occur only in 3.x releases. These breaking changes will not require modification to your plugin's source code, but compiled plugin binaries will need to be recompiled. If the server tries to load an incompatible plugin, it will give the "API version mismatch" error message.
30
+
28
31
### Step 2: Create build directory and set `SC_PATH`
29
32
30
33
CMake dumps a lot of files into your working directory, so you should always start by creating the `build/` directory:
@@ -33,6 +36,7 @@ CMake dumps a lot of files into your working directory, so you should always sta
33
36
example-plugins/01a-BoringMixer/$ mkdir build
34
37
example-plugins/01a-BoringMixer/$ cd build
35
38
```
39
+
36
40
Next, we run CMake and tell it where the SuperCollider headers are to be found (don't forget the `..`!):
Here, `/path/to/sc3source/` is the path to the source code. Once again, this is the *source code*, not the app itself.
43
47
44
-
The path should contain a file at `include/plugin_interface/SC_PlugIn.h`. If you get a warning that `SC_PlugIn.h` could not be found, then `SC_PATH` is not set correctly. If no `SC_PATH` is provided, the build system assumes the SuperCollider include files in `/usr/include/SuperCollider/`.
48
+
To make sure you have the right path, check to ensure that it contains a file at `include/plugin_interface/SC_PlugIn.h`. If you get a warning that `SC_PlugIn.h` could not be found, then `SC_PATH` is not set correctly.
45
49
46
50
CMake will remember your `SC_PATH`, so you only need to run that once per plugin.
47
51
@@ -61,11 +65,11 @@ If you also want to build the UGen for Supernova, then you need to set the 'SUPE
Again, all these flags are persistent, and you only need to run them once.
68
+
Again, all these flags are persistent, and you only need to run them once. If something is messed up, you can trash the `build/` directory and start again.
65
69
66
70
### Step 4: Build it!
67
71
68
-
After that, simply build using`make`:
72
+
After that, make sure you're in the build directory, and call`make`:
0 commit comments