Last Scriptnode doesn't compile...
-
Turns out it's a known bug - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79700 - now I need a workaround :(
-
@d-healey Hey mate, I just wonder why are you still using GNU / Linux? :)
I can understand because of your personal use but, for audio plugin / instrument development case; 98% percentage of the music industry doesn't use GNU :)
By the way I really want to know if there are advantages of using GNU, maybe I can use it too :)
-
I can understand because of your personal use but, for audio plugin / instrument development case; 98% percentage of the music industry doesn't use GNU
I can't help it if 98% of people don't value their freedom :)
I had a 2012 Mac Mini given to me which I installed Windows, MacOS and Linux Mint on. I'm able to use this to build plugins for those platforms because I'm very aware that those 98% are my target audience and I need to be able to cater for them :) But I wouldn't consider using it for any of my own computing.
Here's something interesting, the only concern I had when I switched from Windows to GNUx was that I would have to give up some tools. Actually it's just the opposite, almost everything I used on Windows will run natively or in Wine on Linux Mint, and I get to run a million other programs that don't run on Windows or Mac.
So for all of my own computing I use almost entirely free software - I still use Reaper and some proprietary drivers though.
I think a better question is why would anybody use an operating system that has less applications, spies on them, forces updates/downgrades on their computer, contains built in DRM and various other malware, and is entirely under the control of somebody else?
-
and I get to run a million other programs that don't run on Windows or Mac.
Plus, you're favourite piece of software compiles now too:
https://github.com/christophhart/HISE/commit/22cfee8db88a5a09f4a1c0f18f7c17fff227425b
-
@Christoph-Hart Oooo :D thank you, I can't wait to tinker with HISEnode, I shall try and build it now!
-
It started well but I'm getting a lot of errors still
-
Ah I see, I had these errors, but I thought they were just because of my Projucer configuration.
I realised that the Projucer binary is still old (I've updated JUCE in the meantime), which caused the settings to be overwritten, hmmm...
Let me rebuild the Projucer, then set all project properties.
-
@d-healey said in Last Scriptnode doesn't compile...:
I think a better question is why would anybody use an operating system that has less applications, spies on them, forces updates/downgrades on their computer, contains built in DRM and various other malware, and is entirely under the control of somebody else?
That's the point ;)
-
Still getting some errors on the superior OS ;) but not as many as before
./../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/scripting/scriptnode/nodes/JitNode.h: In member function ‘virtual void scriptnode::JitNodeBase::logMessage(const juce::String&)’: ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/Macros.h:44:55: error: ‘class hise::MainController’ has no member named ‘writeToConsole’; did you mean ‘popupConsole’? #define debugToConsole(p, x) (p->getMainController()->writeToConsole(x, 0, p)) ^ ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/Macros.h:44:55: note: in definition of macro ‘debugToConsole’ #define debugToConsole(p, x) (p->getMainController()->writeToConsole(x, 0, p)) ^~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/scripting/HardcodedScriptProcessor.h: In member function ‘virtual void hise::HardcodedScriptProcessor::controlCallback(hise::ScriptingApi::Content::ScriptComponent*, juce::var)’: ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/Macros.h:44:55: error: ‘class hise::MainController’ has no member named ‘writeToConsole’; did you mean ‘popupConsole’? #define debugToConsole(p, x) (p->getMainController()->writeToConsole(x, 0, p)) ^ ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/Macros.h:44:55: note: in definition of macro ‘debugToConsole’ #define debugToConsole(p, x) (p->getMainController()->writeToConsole(x, 0, p)) ^~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/../hi_modules/modulators/mods/LFOModulator.h: In member function ‘virtual void hise::LfoModulator::tempoChanged(double)’: ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/Macros.h:44:55: error: ‘class hise::MainController’ has no member named ‘writeToConsole’; did you mean ‘popupConsole’? #define debugToConsole(p, x) (p->getMainController()->writeToConsole(x, 0, p)) ^ ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/Macros.h:44:55: note: in definition of macro ‘debugToConsole’ #define debugToConsole(p, x) (p->getMainController()->writeToConsole(x, 0, p)) ^~~~~~~~~~~~~~ In file included from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:61:0, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/backend/BackendProcessor.h: In member function ‘virtual void hise::BackendProcessor::releaseResources()’: ../../../../../HISE-scriptnode/hi_backend/backend/BackendProcessor.h:87:3: error: ‘writeToConsole’ was not declared in this scope writeToConsole("RELEASE_RESOURCES_CALLED", CodeHandler::Error, getMainSynthChain()); ^~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendProcessor.h:87:3: note: suggested alternative: ‘debugToConsole’ writeToConsole("RELEASE_RESOURCES_CALLED", CodeHandler::Error, getMainSynthChain()); ^~~~~~~~~~~~~~ debugToConsole In file included from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:66:0, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/backend/BackendApplicationCommands.h: In member function ‘bool hise::BackendCommandTarget::viewActive() const’: ../../../../../HISE-scriptnode/hi_backend/backend/BackendApplicationCommands.h:230:35: error: ‘class hise::ModulatorSynthChain’ has no member named ‘getCurrentViewInfo’ return owner->synthChain->getCurrentViewInfo() != nullptr; ^~~~~~~~~~~~~~~~~~ In file included from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:67:0, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h: At global scope: ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:220:2: error: ‘ProcessorEditorContainer’ does not name a type; did you mean ‘ProcessorEditorPanel’? ProcessorEditorContainer *getRootContainer() { return container; }; ^~~~~~~~~~~~~~~~~~~~~~~~ ProcessorEditorPanel ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:234:30: error: ‘PluginPreviewWindow’ has not been declared void setPluginPreviewWindow(PluginPreviewWindow *newWindow) ^~~~~~~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:283:16: error: ‘ProcessorEditorContainer’ was not declared in this scope ScopedPointer<ProcessorEditorContainer> container; ^~~~~~~~~~~~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:283:16: note: suggested alternative: ‘ProcessorEditorPanel’ ScopedPointer<ProcessorEditorContainer> container; ^~~~~~~~~~~~~~~~~~~~~~~~ ProcessorEditorPanel ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:283:40: error: template argument 1 is invalid ScopedPointer<ProcessorEditorContainer> container; ^ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:303:16: error: ‘PluginPreviewWindow’ was not declared in this scope ScopedPointer<PluginPreviewWindow> previewWindow; ^~~~~~~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:303:16: note: suggested alternative: ‘setPluginPreviewWindow’ ScopedPointer<PluginPreviewWindow> previewWindow; ^~~~~~~~~~~~~~~~~~~ setPluginPreviewWindow ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:303:35: error: template argument 1 is invalid ScopedPointer<PluginPreviewWindow> previewWindow; ^ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h: In member function ‘void hise::BackendProcessorEditor::refreshContainer(hise::Processor*)’: ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:171:17: error: invalid operands of types ‘int’ and ‘std::nullptr_t’ to binary ‘operator!=’ if (container != nullptr) ~~~~~~~~~~^~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:175:30: error: base operand of ‘->’ is not a pointer setRootProcessor(container->getRootEditor()->getProcessor(), y); ^~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:177:21: error: incomplete type ‘hise::ProcessorEditor’ used in nested name specifier ProcessorEditor::Iterator iter(getRootContainer()->getRootEditor()); ^~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:179:37: error: ‘iter’ was not declared in this scope while (ProcessorEditor *editor = iter.getNextEditor()) ^~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:181:15: error: invalid use of incomplete type ‘class hise::ProcessorEditor’ if (editor->getProcessor() == selectedProcessor) ^~ In file included from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/hi_dsp.h:65:0, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/hi_components.h:57, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/hi_sampler.h:54, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/hi_scripting.h:60, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/hi_modules.h:57, from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:55, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/Processor.h:40:7: note: forward declaration of ‘class hise::ProcessorEditor’ class ProcessorEditor; ^~~~~~~~~~~~~~~ In file included from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:67:0, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:183:12: error: invalid use of incomplete type ‘class hise::ProcessorEditor’ editor->grabCopyAndPasteFocus(); ^~ In file included from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/hi_dsp.h:65:0, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/hi_components.h:57, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/hi_sampler.h:54, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/hi_scripting.h:60, from ../../../../../HISE-scriptnode/hi_backend/../hi_modules/hi_modules.h:57, from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:55, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/Processor.h:40:7: note: forward declaration of ‘class hise::ProcessorEditor’ class ProcessorEditor; ^~~~~~~~~~~~~~~ In file included from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:67:0, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h: In member function ‘void hise::BackendProcessorEditor::setPluginPreviewWindow(int*)’: ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:236:19: error: cannot convert ‘std::nullptr_t’ to ‘int’ in assignment previewWindow = nullptr; ^~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:238:19: error: invalid conversion from ‘int*’ to ‘int’ [-fpermissive] previewWindow = newWindow; ^~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:240:21: error: invalid operands of types ‘int’ and ‘std::nullptr_t’ to binary ‘operator!=’ if (previewWindow != nullptr) ~~~~~~~~~~~~~~^~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendEditor.h:246:15: error: request for member ‘addToDesktop’ in ‘* newWindow’, which is of non-class type ‘int’ newWindow->addToDesktop(); ^~~~~~~~~~~~ In file included from ../../../../../HISE-scriptnode/hi_backend/hi_backend.h:68:0, from ../../Source/../JuceLibraryCode/JuceHeader.h:17, from ../../Source/MainComponent.h:12, from ../../Source/MainComponent.cpp:12: ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h: At global scope: ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:103:2: error: ‘FloatingTileDocumentWindow’ does not name a type; did you mean ‘FloatingTileContainer’? FloatingTileDocumentWindow* getLastPopup() { return popoutWindows.getLast(); } ^~~~~~~~~~~~~~~~~~~~~~~~~~ FloatingTileContainer ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:156:2: error: ‘FloatingTileDocumentWindow’ does not name a type; did you mean ‘FloatingTileContainer’? FloatingTileDocumentWindow* addFloatingWindow() ^~~~~~~~~~~~~~~~~~~~~~~~~~ FloatingTileContainer ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:163:28: error: ‘FloatingTileDocumentWindow’ has not been declared void removeFloatingWindow(FloatingTileDocumentWindow* windowToRemove) ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:184:13: error: ‘FloatingTileDocumentWindow’ was not declared in this scope OwnedArray<FloatingTileDocumentWindow> popoutWindows; ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:184:13: note: suggested alternative: ‘FloatingTileContainer’ OwnedArray<FloatingTileDocumentWindow> popoutWindows; ^~~~~~~~~~~~~~~~~~~~~~~~~~ FloatingTileContainer ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:184:39: error: template argument 1 is invalid OwnedArray<FloatingTileDocumentWindow> popoutWindows; ^ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:214:16: error: ‘FloatingTileDocumentWindow’ was not declared in this scope ScopedPointer<FloatingTileDocumentWindow> docWindow; ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:214:16: note: suggested alternative: ‘FloatingTileContainer’ ScopedPointer<FloatingTileDocumentWindow> docWindow; ^~~~~~~~~~~~~~~~~~~~~~~~~~ FloatingTileContainer ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:214:42: error: template argument 1 is invalid ScopedPointer<FloatingTileDocumentWindow> docWindow; ^ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h: In member function ‘void hise::BackendRootWindow::toggleLayoutMode()’: ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:88:37: error: request for member ‘size’ in ‘((hise::BackendRootWindow*)this)->hise::BackendRootWindow::popoutWindows’, which is of non-class type ‘int’ for (int i = 0; i < popoutWindows.size(); i++) ^~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:90:19: error: invalid types ‘int[int]’ for array subscript popoutWindows[i]->getRootFloatingTile()->setLayoutModeEnabled(shouldBeOn); ^ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h: In member function ‘void hise::BackendRootWindow::removeFloatingWindow(int*)’: ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:165:20: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] if (docWindow == windowToRemove) ^~~~~~~~~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:166:16: error: cannot convert ‘std::nullptr_t’ to ‘int’ in assignment docWindow = nullptr; ^~~~~~~ ../../../../../HISE-scriptnode/hi_backend/backend/BackendRootWindow.h:168:18: error: request for member ‘removeObject’ in ‘((hise::BackendRootWindow*)this)->hise::BackendRootWindow::popoutWindows’, which is of non-class type ‘int’ popoutWindows.removeObject(windowToRemove, true); ^~~~~~~~~~~~ ../../Source/MainComponent.cpp: In member function ‘void MainContentComponent::handleCommandLineArguments(const juce::String&)’: ../../Source/MainComponent.cpp:49:74: error: ‘using NativeFileHandler = class hise::FrontendHandler {aka class hise::FrontendHandler}’ has no member named ‘getWorkDirectory’; did you mean ‘getSubDirectory’? nst File currentProjectFolder = GET_PROJECT_HANDLER(mainSynthChain).getWorkDirectory(); ^~~~~~~~~~~~~~~~ getSubDirectory ../../Source/MainComponent.cpp:54:41: error: ‘using NativeFileHandler = class hise::FrontendHandler {aka class hise::FrontendHandler}’ has no member named ‘setWorkingProject’ GET_PROJECT_HANDLER(mainSynthChain).setWorkingProject(projectDirectory, nullptr); ^~~~~~~~~~~~~~~~~
-
Yippie! it compiles, thanks Christoph!
Now it's time to explore scriptnode...
-
@Christoph-Hart Two minor things. When exporting a plugin on GNUx it can't find the SDK path, the legacy path is set by default for Windows and Mac but not GNUx. I can set it manually of course but then I can't use my precious build scripts.
The second thing is the number of channels preprocessor thingy is set for Windows and Mac but again not on GNUx.
-
I've just pushed this, but haven't tested it, so please confirm that it's fixed on Linux.
BTW, do you need an field for extra preprocessor definitions on Linux? It's currently Windows and macOS only, but if you need it to smoothen out your build process let me know.
-
@Christoph-Hart yes please, I think it's helpful when I want to use peak meters if I remember correctly. I'll try out the new build this afternoon. Thank you!