vst VS project without CMAKE (preprocessor and maindll question)

I created project in VisualStudio where I set up VST without cmake. (for my personal needs) It is working, but I have question because it is not clear to me.

  1. Preprocessor
    Under preprocessor I have this:
WIN32
NDEBUG
_WINDOWS
RELEASE=1
SMTG_RENAME_ASSERT=1
_UNICODE
CMAKE_INTDIR="Release"
PluginProject1_EXPORTS

Everything here is necessary or not, when I didn’t use CMAKE?

  1. Dllmain.cpp
    I copy this file and add it in to my project. My old project created with CMAKE looks ok, but my new project without CMAKE intelisense select InitModule function as not declared.
extern bool InitModule ();

Hovewer my new project without CMAKE is compiled, validated and it runs in Reaper without problem.

I always compile in Visual Studio without using CMake and I learned how to do this from Will Pirkle’s VST3 Synth Projects examples.

I use CMake exclusively these days for generating plugin projects (VST3, AU, AAX). It makes distributing the projects so much easier on my end, and with VST3 it integrates with the Steinberg CMake modules seamlessly. I understand why people don’t like it (the script looks as if it were written by COBOL programmers in 1972) but after I forced myself to learn it back in 2017, well, it’s been a sanity-saver. Still, not much fun to write that script…

For VST3, it is also essential because the engineers tend to add new (required) compiler switches and options with practically every new SDK version.

I hate CMake as it doesn’t give me the control I require to compile my programs, or other ‘frameworks’ that introduce an added layers of inconvinience. Besides that the learning curve of CMake appears to be steep so I just stick to the traditional Win32 programing techniques as I program mainly for Windows…

Yet when it comes to making VST’s I found the best approach is to use the ‘TemplateSynth’ or the ‘mda’ samples as a starting point. As this requires very few alterations of critical files.

I also refrain from using the pre-made libs but include all the required SDK source files directly in my project. As I often use non SDK libs this eliminates the incompatible switch settings errors you will get if the non SDK libs were compiled differently, otherwise you will need to re-compile your SDK libs.

I must add here that the book ‘Designing Software Synthesizer Plug-Ins in C++’ gave me valuable insights into the world of VSt’s thou I doubt if it would have been the same had the projects been based on CMake.

I shouldn’t forget to mention how essential it is to have a good grepping utility close-by.