Skip to content

Commit e01d248

Browse files
author
Nathan Ho
authored
Update README with some minor revisions
1 parent c8ace12 commit e01d248

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@ This is how you build one of the examples in this directory. The examples are ke
2121

2222
### Step 1: Obtain header files
2323

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.
2526

2627
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.
2728

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+
2831
### Step 2: Create build directory and set `SC_PATH`
2932

3033
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
3336
example-plugins/01a-BoringMixer/$ mkdir build
3437
example-plugins/01a-BoringMixer/$ cd build
3538
```
39+
3640
Next, we run CMake and tell it where the SuperCollider headers are to be found (don't forget the `..`!):
3741

3842
```shell
@@ -41,7 +45,7 @@ example-plugins/01a-BoringMixer/build/$ cmake -DSC_PATH=/path/to/sc3source/ ..
4145

4246
Here, `/path/to/sc3source/` is the path to the source code. Once again, this is the *source code*, not the app itself.
4347

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.
4549

4650
CMake will remember your `SC_PATH`, so you only need to run that once per plugin.
4751

@@ -61,11 +65,11 @@ If you also want to build the UGen for Supernova, then you need to set the 'SUPE
6165
example-plugins/01a-BoringMixer/build/$ cmake -DSUPERNOVA=ON ..
6266
```
6367

64-
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.
6569

6670
### Step 4: Build it!
6771

68-
After that, simply build using `make`:
72+
After that, make sure you're in the build directory, and call `make`:
6973

7074
```shell
7175
example-plugins/01a-BoringMixer/build/$ make

0 commit comments

Comments
 (0)