89 lines
2.3 KiB
Markdown
89 lines
2.3 KiB
Markdown
# Welcome to VST 3 SDK cmake
|
|
|
|
This repository contains Steinberg's [cmake modules](https://cmake.org/cmake/help/latest/manual/cmake-modules.7.html) and template files which can be used to create **VST 3** plug-ins for platforms like Windows, macOS, iOS and Linux.
|
|
|
|
For more information about cmake visit [cmake.org](https:://www.cmake.org/).
|
|
|
|
## Dependency map
|
|
|
|
In order to build a plug-in successfully, it only needs to link to ```sdk``` library. [VSTGUI](https://steinbergmedia.github.io/vst3_dev_portal/pages/What+is+the+VST+3+SDK/VSTGUI.html) is optional and can be used by linking to ```vstgui_support```.
|
|
|
|
The following figure shows the dependency map by using AGain, [EditorHost](https://steinbergmedia.github.io/vst3_dev_portal/pages/What+is+the+VST+3+SDK/EditorHost.html) and [VST3Inspector](https://steinbergmedia.github.io/vst3_dev_portal/pages/What+is+the+VST+3+SDK/VST3Inspector.html):
|
|
|
|
```tree
|
|
again
|
|
+-- sdk
|
|
| +-- sdk_common
|
|
| +-- base
|
|
| +-- pluginterfaces
|
|
|
|
|
+-- vstgui_support
|
|
+-- base
|
|
+-- vstgui_uidescription
|
|
+-- vstgui
|
|
```
|
|
|
|
```tree
|
|
editorhost
|
|
+-- sdk_hosting
|
|
+-- sdk_common
|
|
+-- base
|
|
+-- pluginterfaces
|
|
```
|
|
|
|
```tree
|
|
VST3Inspector
|
|
+-- vstgui_uidescription
|
|
| +-- vstgui
|
|
+-- vstgui_standalone
|
|
+-- vstgui
|
|
```
|
|
|
|
## Naming conventions and guidelines
|
|
|
|
Steinberg module, macro, function and variable names have the prefix ```SMTG_``` or ```smtg_``` in order to avoid name clashes.
|
|
|
|
### File namings
|
|
|
|
Steinberg module names are written in camel case and have the prefix ```SMTG_```.
|
|
|
|
Examples:
|
|
|
|
```c
|
|
SMTG_AddVST3Library.cmake
|
|
SMTG_DetectPlatform.cmake
|
|
SMTG_ConfigureCmakeGenerator.cmake
|
|
```
|
|
|
|
### Macro and function namings
|
|
|
|
Steinberg macro and function names are written in lower case and have the prefix ```smtg_``` followed by a verb.
|
|
|
|
Examples:
|
|
|
|
```c
|
|
smtg_detect_platform
|
|
smtg_configure_cmake_generator
|
|
smtg_setup_symbol_visibility
|
|
smtg_detect_xcode_version
|
|
```
|
|
|
|
### Variable namings
|
|
|
|
Steinberg variable names are written in upper case and have the prefix ```SMTG_```.
|
|
|
|
Examples:
|
|
|
|
```c
|
|
SMTG_PLUGIN_BINARY_DIR
|
|
SMTG_PLUGIN_EXTENSION
|
|
SMTG_PLUGIN_PACKAGE_NAME
|
|
```
|
|
|
|
## License & Usage guidelines
|
|
|
|
More details can be found at [www.steinberg.net/sdklicenses_vst3](http://www.steinberg.net/sdklicenses_vst3)
|
|
|
|
----
|
|
Return to [VST 3 SDK](https://github.com/steinbergmedia/vst3sdk)
|