OK, I just got updated to Mojave - only took 12 hours for backing up etc...
The first thing is to make sure you are targeting the proper APIs. It is easy to accidentally generate a Universal project which expects to be located in a different place from the others, and needs the AAX SDK to be installed - that looks like what happened because I tested the ASPiKreator specifically for this before releasing.
In any event, you can always change the target APIs and universality of the project, which will require re-running CMake, by editing the top few lines of the outermost CMakeLists.txt file. This is documented in the readme.txt file with the project.
And, yeah CMake can be confusing in that it can write part of the stuff, then fail, then tell you it wrote stuff...
Experimenting now, will get back to you.
It only took all day to get Mojave and XCode 10.2 installed correctly.
But, the good news is that the issue with all of this, as expected, was just the XCode version and the new VST3 SDK. No one at Steinberg answered my question, but we know that VST SDK3.6.13 must require XCode 9 or higher. So my system is now:
This is what I did:
1) downloaded the Phaser plugin code from webpage here, and edited the CMakeLists.txt file as per the readme.txt file; ran CMake to make XCode project.
2) opened Phaser and hit Command - B and it built straightaway, no errors and no cancellations
3) In previous versions of the SDK, Steinberg copied the VST3 plugin into the MacOS VST3 folder ~Library/Audio/Plugins/VST3 (note: if that folder is missing, the compile will fail at the last phase - all part of VST3, not ASPiK)
But, starting a couple of revs back, they now copy a SymLink (a link or alias back to the file) into that folder. Some DAWs like Reaper won't "see" the SymLink, so you may need to copy the phaser.vst3 file (folder) manually into the location.
1) used current ASPiKreator to generate a plugin called VolumePluginII for VST only; it modified the CMakeLists.txt file for me.
2) ran CMake on it to generate XCode project.
3) opened VolumePluginII and hit Command - B and it built straightaway, no errors and no cancellations
Once the actual file was copied (not the SymLink) both showed up correctly in Reaper 64 and worked fine.
I never ran into the Build Canceled thing on either of these (I still think that for me, I'm hitting multiple buttons or something...)
But, the answer is finally in - it's an XCode version issue with the VST3 SDK.
Let me know if you need anything. The fully built validator.exe from the Phaser above (they are all the same) is here:
But, I have definitely verified that ASPiK is good to go (thanks for reminding me about the version numbers) and that this issue is Steinberg's deal.
I hope this helps and you get up and running soon. LMK if you have any more issues. Make sure to be vigilant about the Individual vs Universal projects and their folder locations.
One final thing to note: Steinberg is always updating VST3 and VSTGUI and they frequently obsolete functions, classes, and even rename functions, or change the function arguments slightly - it can be very frustrating as a developer. They will usually first Deprecate the code, then let that go for a few SDK revs while developers work to replace/patch/fix their code - in many cases, it is internal VST code BUT it may impact you because an old project will suddenly not compile in the new SDK (wrong function names, etc...).
With VST3/MacOS, you are going to get scores, maybe even hundreds of warnings coming from within the guts of VST3 and VSTGUI. It isn't enough to get freaked out, but it did rattle me when I first encountered this six years ago or so. For MacOS/VST 99.9% of these are Steinberg's own problem to fix, but every now and then, we will get zapped when some changes filter all the way down into my VST3 code.
Thanks so much Will.
Grabbed the new ASPiK and copied in the validator you linked to (backing up the old one). Been trying all day to get cmake to make an xcode project, but am only getting these files:
As you can see, no XCode project but I have two extra files: compile_commands.json and Makefile. This happens with ASPiK projects.
What's strange is when running cmake, the terminal output looks great: https://pastebin.com/7f369KvN
I also tried re-installing cmake, which didn't help.
Tried Phaser, and it went a little worse I think... I didn't really see anything to edit in the CMakeList as I use all the same naming conventions you do. Got this in Terminal: https://pastebin.com/sH4TJ5P8
Here are the resulting files in ALL_SDK/myprojects/Phaser/mac_build:
Hey - just wanted to let you know that I found the reasons of these problems, and I think I also know where your "Build Canceled" was coming from.
The update to XCode 10.2 also flushed out a really silly issue with the Avid Company name string (this was lifted right from the AAX sample code - literally just the name of the company) involving the newer XCodes do not understand the period "." or comma "," as in "Avid Technology, Inc." which caused the compiler to halt (cancel) before anything else could be done. The Avid engineers will eventually run into this too..... The solution was just to name it "Avid Technology Inc" -- it is amazing that a period or comma, in a text file, could halt the compiler.
I noticed that you were using universal builds, which is fine, and that is what eventually flushed out the issues here.
As for the Phaser project, there was a missing ) in the CMake file that RackAFX generated.
So, all of these issues have been taken care of. I have updated projects and a new ASPiK SDK that includes these changes. While I was working on it, I tightened up some of the code in fxobjects.h that was throwing some warnings (all benign). I am working on the new ASPiKreator right now. It turns out that I don't need to compile a new one.
Anyway, I apologize that you've had these issues and I thank you for reporting them and working with me on them. I'll have an update after I make the new Kreator.
OK - everything is uploaded and set. ASPiK is now 1.5.6 (yes, tagged it in the version.txt file). The ASPiKreator exe did not need to be explicitly rebuilt, but I did need to replace one of its resources - the "brick" that it uncompresses and turns into an ASPiK project. I did this without recompiling because I do not think that this resource is check-summed.
The FX book projects have been likewise updated, all 14 of them, to include the new changes and the tightened up code. All of them are setup as Universal projects for all APIs, so if that is your setup, then you should be able to use them directly without modifying the CMake file.
So, thing should be back to "sane" now - finding that Build Canceled thing was good, so please confirm that it fixed your problem.
OK, well if the XCode project does not get built, then that is generally because CMake failed. And, that is easy to see in the text output in terminal. For example, for the Phaser project (I only use it as an example because it is short and compiles quickly) I built a universal plugin project by editing the CMakeLists.txt file and changing four lines of code:
set(UNIVERSAL_SDK_BUILD TRUE) # <-- set TRUE or FALSE
# --- Individual project builds
set(AAX_SDK_BUILD TRUE)# <-- set TRUE or FALSE
set(AU_SDK_BUILD TRUE)# <-- set TRUE or FALSE
set(VST_SDK_BUILD TRUE)# <-- set TRUE or FALSE
The project folder is in ../ALL_SDK/myprojects/Phaser/
The CMake output is here: Note that the majority of the output comes from the CMake script that I wrote (the -------> is a clue).
Wills-MBP:mac_build willpirkle$ cmake -GXcode ../
-- --- Updated File: project_source/source/PluginKernel/plugindescription.h
-- ------> Starting AAX Project Build:
-- AAX SDK Location: /Users/willpirkle/documents/ALL_SDK/AAX_SDK
---> Adding AAX ported project in source folder: /Users/willpirkle/documents/ALL_SDK/project_source
-- AAX Target Name: Phaser_AAX
-- ------> Starting AU Project Build:
-- AU SDK Location: /Users/willpirkle/documents/ALL_SDK/AU_SDK
---> Adding AU ported project in source folder: /Users/willpirkle/documents/ALL_SDK/project_source
-- AU Target Name: Phaser_AU
-- ------> Starting VST Project Build:
-- VST SDK Location: /Users/willpirkle/documents/ALL_SDK/VST_SDK/VST3_SDK
-- SMTG_MYPLUGINS_SRC_PATH is not set. If you want to add your own plug-ins folder, specify it!
---> Adding VST ported project...
-- VST Target Name: Phaser_VST
-- SMTG_PLUGIN_TARGET_PATH is set to : /Debug/Phaser_VST.vst3
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/willpirkle/documents/ALL_SDK/myprojects/Phaser/mac_build
If I only build the VST3 version, for example, the output is the same, but without the AAX and AU mentions. "SMTG_MYPLUGINS_SRC_PATH is not set" is benign and I don't use their MYPLUGINS paradigm because it doesn't match the same paradigm for AU and AAX that I use (location of myprojects folder).
That last line: "Build files have been written to: /Users/willpirkle/documents/ALL_SDK/myprojects/Phaser/mac_build" means that the XCode project was written. If you are getting this message, then there should be an XCode project.
One note: do not use mapped drives with CMake or other network folders or locations. Do not use virtual locations. Everything needs to be local to your computer, and even things like using the Desktop as your outer folder can cause problems with CMake.
Let me know what your latest CMake outputs look like and specifically for that last line of output - I don't need to see a log file, only the output from terminal as above. And, also that your folders are not mapped or network locations.
Heading to the Apple Store. The Mojave upgrade necessitates more RAM. Back later this afternoon.
I posted the terminal output in the post from the 25th, along with the screenshots of what is actually built. I have been getting the "Build files have been written to:" message this entire time - there's just no build file to be found anymore. I'm just getting what you see in the screenshots above with two odd extra files and no .xcodeproj.
Here is a new Terminal output from today, same thing:
I re-installed cmake again and am getting the same result.
Just wanted to add that I just moved my ALL_SDK and ASPIK_SDK folders inside /Users/nathanrightnour/Documents/plugindev, used Kreator to make an Individual Project (VST), set the project folder as /Users/nathanrightnour/Documents/plugindev/ALL_SDK/VST_SDK/VST3_SDK/myprojects, and got the same results.
OK - your output is fine and the CMakeLists.txt files are good. Your universal project has all the right features except the Makefile - everything looks spot on.
I was stumped until I looked at your last output dump.
Your problem is the cmake command itself. This is the proper command:
cmake -GXcode ../
and this is what you wrote:
cmake -gxcode ../
See the difference? One generates an XCode project and the other just the Makefile.
For the record, the ASPiK documentation does show the correct syntax and case, and you can always cut and paste from it if needed.
Okay the XCode project makes now.
I'm able to get xcode projects from both -GXcode and -gxcode, so I'm a little confused there, but will use the exact syntax you recommend from now on!
It was an issue on my end I think. The solution was in Terminal:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui" --install
(source: went into Cmake app > How to install for command line use)
sudo xcode-select --reset
I'm now able to build, run, and edit the GUI in AU (using Individual API)!
Trying to build VST (Individual API) results in "Failed", even with the new validator file:
mkdir: /Debug/VolumePlugin4VST.vst3/: Permission denied
make: *** [VolumePlugin4VST_buildpart_1] Error 1
AFAIK, you must use the capital "G" for "Generator" and I duplicated the results on my Terminal as well with the lower case "gx". When I used your syntax, I did not get the xcode project file.
The error you are getting from VST3 is coming from the Steinberg CMake files. This happens after the validator passes the plugin (which it must have if you got here).
After validation, a script is run that is trying to package the VST3. On both MacOS and Windows, the plugin is packaged in a Bundle which is actually a folder in disguise. It looks like the folder where you are doing the development (your mac_ build folder) is in a location that requires admin permission to make changes (e.g. the Applications folder). The mkdir command is trying to create the folder (bundle) and permission is denied. My SDKs are located in:
and I don't have an issue making the folders within that directory hierarchy.
Your VST3 will reside here when it is done:
Go back and look at what was written - if the /VST3/Debug folder exists, then the permission problem was for the .vst3 bundle.
But wait, there's more. After the VST3 has been written to your HDD in that folder, the CMake script will then try to create a SymLink shortcut in the default VST3 location.
If that folder does not exist, then it will say that the build failed, but in reality the plugin did get written - it got hung up on this last step. In this script, they (Steinberg) do not try to mkdir on that VST3 folder above, most likely because it will definitely require admin privileges. So, make sure that folder exists -- if you've installed software that installs Mac VST3s then the folder may already exist. To make matters more complicated, there are actually two different ~/Library folders so there may be yet another VST3 folder on your system as well. For development, you have to write to the "local" one that is connected to the user account and this is what Steinberg expects.
I also mentioned before that you may need to manually copy the VST3 into the folder since some DAWs may not recognize the symlink.
Yes, there is more. On Windows, the same thing is supposed to happen but the default VST3 folder is:
../Program Files/Common Files/VST3
That folder is definitely admin protected so they don't try to create it either. For the Windows version, the plugin will wind up here (note win_build folder)
Then, you must manually move it into the default VST3 folder above.
When you installed CMake, did you run the sudo command to install the SymLink to your usr/local/bin folder? In the ASPiK docs, I reference making sure that you've gotten the CMake executable added to your system path. For Windows it is easy and is part of the CMake installer. For Mac, you have to use a sudo command.
In each of the sample ASPiK projects on my website (the ones for the book) you can find a readme.txt file in the main folder. It explains how to add the symlink about halfway down (every project has this same file, redundantly...it comes from the RackAFX Export ASPiK function). Here are the instructions for Win and Mac:
During installation, you have the option of adding CMake to your default path list.
Choose YES for this option and you are done.
Open Terminal and type:
which produces a colon : separated list of folders you can run directly with terminal;
/usr/local/bin should be in this list
Next, add a SymLink to the CMake executable and place it in the /usr/local/bin folder in Terminal by running:
sudo ln -s /Applications/cmake.app/Contents/bin/cmake /usr/local/bin
After that, you are done.
That is what I did to install CMake and I've never had to mess with any of those extra instructions that you did. Note that if /usr/local/bin *isn't* in the list, you may have to make it manually with mkdir, but I am guessing you already have something symlinked there already.
I am getting issues with CMake now that I have switched to RAFX 220.127.116.11 exports and updated to the latest ASPiK SDK. I updated the vstgui4 folder from ASPik in my universal project folder on the Mac. The issue is the Xcode Universal project is not getting created by CMake.
As a tool check, I was able to generate the Universal Xcode project using the DemoVolumePlugin sample code from the latest ASPiK SDK. It builds in Xcode.
Here is the terminal output for my CMake to create Universal Xcode project on my project exported from RAFX 18.104.22.168 that fails.
Here is the CMakeOutput.log
For a new book project or my own project imported from older RAFX...If I uncheck VST in Universal Project Export in RAFX 22.214.171.124 and export to Mac then CMake generates the Universal Xcode project which builds successfully in Xcode for AAX and AU. So I guess I need to upgrade to the latest VST3 SDK on my ALL_SDK source tree on the MAC??
Yes, the error from plugininterfaces not having a valid CMakeLists.txt file is evidence you are using VST3 SDK 3.6.12.
In 3.6.13, they added plugininterfaces as its own target requiring its own CMakeLists.txt file.
So, your issue is the VST3 SDK version.
3.6.13 also contains the VSTGUI 4.8 that ASPiK uses.
I only update the VSTGUI4 libraries when a new VST3 SDK comes out. They are setup to be synchronized.
You should not use the GitHub version of VSTGUI unless you really know what you are doing - I've found that although the version number may be the same (4.8) the GiHub is a dev version, and may be different.
For the mkdir issue with MacOS and VST3 I have fixed this in ASPiK 1.6.1.
See the post here:
Sorry for the inconvenience (and thinking you were all crazy).
Most Users Ever Online: 55
Currently Browsing this Page:
Guest Posters: 1
Newest Members:Ray C., Jon R., Pat, Jan, Ben_1, shane, teknojunque, David Richter, Nick45, EEkros
Moderators: W Pirkle: 323
Administrators: Tom: 69, JD Young: 80, Will Pirkle: 0, W Pirkle: 323