JUCE with CMake using VSCode on MacOS

Beginner to JUCE tried following this video: https://www.youtube.com/watch?v=Uq7Hwt18s3s&t=767s

When building, getting 2 errors related to unique_ptr.h
First one with juce::AccessibilityHandler
Second one with juce::Drawable

Working on MacOS 13.6
JUCE 7.0.8
Visual Studio Code

Anyone run into these errors?
Full Errors here:
vscode-vst-test sameer$ cmake --build build
– CPM: Adding package JUCE@7.0.8 (7.0.8)
– Configuring juceaide
– Building juceaide
– Exporting juceaide
– Configuring done (2.1s)
– Generating done (0.1s)
– Build files have been written to: /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/build
[ 3%] Building CXX object plugin/CMakeFiles/AudioPlugin.dir/source/PluginEditor.cpp.o
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/plugin/source/PluginEditor.cpp:1:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/plugin/include/YourPluginName/PluginProcessor.h:3:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_audio_processors/juce_audio_processors.h:57:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:60:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_graphics/juce_graphics.h:58:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_core/juce_core.h:204:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_core/system/juce_StandardHeader.h:50:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/algorithm:1747:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__algorithm/inplace_merge.h:28:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__memory/unique_ptr.h:63:19: error: invalid application of ‘sizeof’ to an incomplete type ‘juce::AccessibilityHandler’
static_assert(sizeof(_Tp) >= 0, “cannot delete an incomplete type”);
^~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__memory/unique_ptr.h:297:7: note: in instantiation of member function ‘std::default_deletejuce::AccessibilityHandler::operator()’ requested here
_ptr.second()(__tmp);
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__memory/unique_ptr.h:263:75: note: in instantiation of member function ‘std::unique_ptrjuce::AccessibilityHandler::reset’ requested here
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 ~unique_ptr() { reset(); }
^
/Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_gui_basics/layout/juce_Viewport.h:347:20: note: in instantiation of member function ‘std::unique_ptrjuce::AccessibilityHandler::~unique_ptr’ requested here
return createIgnoredAccessibilityHandler (*this);
^
/Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:161:11: note: forward declaration of ‘juce::AccessibilityHandler’
class AccessibilityHandler;
^
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/plugin/source/PluginEditor.cpp:1:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/plugin/include/YourPluginName/PluginProcessor.h:3:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_audio_processors/juce_audio_processors.h:57:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:60:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_graphics/juce_graphics.h:58:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_core/juce_core.h:204:
In file included from /Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_core/system/juce_StandardHeader.h:50:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/algorithm:1747:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__algorithm/inplace_merge.h:28:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__memory/unique_ptr.h:63:19: error: invalid application of ‘sizeof’ to an incomplete type ‘juce::Drawable’
static_assert(sizeof(_Tp) >= 0, “cannot delete an incomplete type”);
^~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__memory/unique_ptr.h:297:7: note: in instantiation of member function ‘std::default_deletejuce::Drawable::operator()’ requested here
_ptr.second()(__tmp);
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/usr/include/c++/v1/__memory/unique_ptr.h:263:75: note: in instantiation of member function ‘std::unique_ptrjuce::Drawable::reset’ requested here
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_SINCE_CXX23 ~unique_ptr() { reset(); }
^
/Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_gui_basics/menus/juce_PopupMenu.h:302:62: note: in instantiation of member function ‘std::unique_ptrjuce::Drawable::~unique_ptr’ requested here
std::unique_ptr iconToUse = {});
^
/Users/sameer/WPI/SENIOR_YEAR/MQP/CODE/vscode-vst-test/libs/juce/modules/juce_gui_basics/juce_gui_basics.h:153:11: note: forward declaration of ‘juce::Drawable’
class Drawable;
^
2 errors generated.
make[2]: *** [plugin/CMakeFiles/AudioPlugin.dir/source/PluginEditor.cpp.o] Error 1
make[1]: *** [plugin/CMakeFiles/AudioPlugin.dir/all] Error 2
make: *** [all] Error 2

I’ve not seen these errors before.

Are you able to build any of the JUCE examples, e.g. the AudioPluginDemo?

I am able to build MIDI Logger example in Xcode after adding below flags in Projucer setup. I have been using the above template and trying to add the needed preprocessor definition and linker flags so I can get youtube template to build in VS Code but still getting same errors I first posted. Would I be able to build Projucer generated demo Xcode project (only option available) using VS Code?

Add preprocessor definition:
JUCE_SILENCE_XCODE_15_LINKER_WARNING=1

Extra linker Flags:
-Wl,-weak_reference_mismatches,weak

Referenced this post for Projucer settings: https://forum.juce.com/t/linker-flag-lto-errors-xcode-and-juce/58438/3