robertsonics / WTConfig

Tsunami / WAV Trigger Unified Configurator Utility
4 stars 4 forks source link

Unable to Install/Compile under GNU/Linux #4

Open baloe opened 1 year ago

baloe commented 1 year ago

Could provide some more precise instructions on how to compile this utility under GNU/Linux?

There's this blog entry, https://robertsonics.com/2017/11/26/new-unified-init-file-maker-app/, which states

"you do have to download JUCE, install some dev packages, and then run make on the source project"

but where do I get that JUCE you are talking about. Is that it?
https://juce.com/
... I mean that JUCE claims to be an audio software, which is confusing, because WTConfig is only supposed to write a text file.

I installed JUCE (hopefully it was the right one), but when running make I get

make: *** No targets specified and no makefile found.  Stop.
baloe commented 1 year ago

ok, so one has to cd into /Builds/LinuxMakefile first, but then I get

Compiling AudioSettings.cpp
In file included from ../../Source/OutputComponent.h:23,
                 from ../../Source/AudioSettings.cpp:22:
../../Source/../JuceLibraryCode/JuceHeader.h:17:10: fatal error: juce_core/juce_core.h: No such file or directory
   17 | #include <juce_core/juce_core.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:103: build/intermediate/Debug/AudioSettings_52f030fa.o] Error 1
baloe commented 1 year ago

next, you have to set the path to juce within the Makefile correctly, see https://github.com/robertsonics/WTConfig/issues/1

baloe commented 1 year ago

But then I still encounter

Compiling AudioSettings.cpp
In file included from /usr/share/juce/modules/juce_core/system/juce_StandardHeader.h:77,
                 from /usr/share/juce/modules/juce_core/juce_core.h:229,
                 from ../../Source/../JuceLibraryCode/JuceHeader.h:17,
                 from ../../Source/OutputComponent.h:23,
                 from ../../Source/AudioSettings.cpp:22:
/usr/share/juce/modules/juce_core/system/juce_CompilerSupport.h:91:3: error: #error "JUCE requires C++14 or later"
   91 |  #error "JUCE requires C++14 or later"
      |   ^~~~~

which is resolved by setting

  JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++14 $(CXXFLAGS)

in line 41 of the Makefile.

baloe commented 1 year ago

Now we get a great bunch of deprecation errors like

   33 | class [[deprecated]] ScopedPointer
      |                      ^~~~~~~~~~~~~
../../Source/TriggerSettings.h:99:5: warning: ‘template<class ObjectType> class juce::ScopedPointer’ is deprecated [-Wdeprecated-declarations]
   99 |     ScopedPointer<TextButton> addButton;
      |     ^~~~~~~~~~~~~

but also an error:

/usr/share/juce/modules/juce_core/memory/juce_ScopedPointer.h:33:22: note: declared here
   33 | class [[deprecated]] ScopedPointer
      |                      ^~~~~~~~~~~~~
../../Source/MainComponent.cpp:275:75: error: no matching function for call to ‘juce::ScopedPointer<juce::XmlElement>::ScopedPointer(std::unique_ptr<juce::XmlElement>)’
  275 |         ScopedPointer<XmlElement> mainElement(initDoc.getDocumentElement());