# 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)