asb2m10 / dexed

DX7 FM multi plaform/multi format plugin
GNU General Public License v3.0
2.8k stars 241 forks source link

Please provide instructions for building on aarch64 on Linux #324

Closed probonopd closed 2 years ago

probonopd commented 2 years ago

Please provide instructions for building on aarch64 on Linux. Using

git clone https://github.com/asb2m10/dexed.git
cd dexed
git submodule update --init --recursive
./scripts/get-juce.sh
./scripts/projuce-lin.sh
./scripts/build-lin.sh

does NOT work as the processor architecture seems to be hardcoded at least in projuce-lin.sh.

probonopd commented 2 years ago

It must be possible somehow because https://kx.studio is offering working builds.

jbates-duality commented 2 years ago

JUCE provides/requires use of an x86-64 binary.

$ scripts/projuce.sh Generating build for VST3 scripts/projuce.sh: line 16: assets/JUCE/Projucer: cannot execute binary file: Exec format error $ file assets/JUCE/Projucer assets/JUCE/Projucer: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=926ebf79b73cd59e795c8a3783686884e6bdaa39, not stripped

probonopd commented 2 years ago

Thanks @jbates-duality however I want to build for ARM 64-bit, not Intel/AMD 64-bit.

Since https://kx.studio/ is offering working builds, it must be possible to build Dexed for that architecture somehow.

asb2m10 commented 2 years ago

Please use CMake to build Dexed, it should now work out of the box: https://github.com/asb2m10/dexed/blob/master/README_cmake.md

probonopd commented 2 years ago

Thank you very much @asb2m10.

(Semi unrelated side note: Have you seen MiniDexed, the "embedded" version of Dexed running on bare metal Raspberry Pi without a Linux kernel?)

jbates-duality commented 2 years ago

Hi there. Thanks for getting back to us. It is appreciated.

I've pulled and followed the cmake instructions. I think that a compiler flag needs to be added, at least for the default compiler on a fresh raspbian install. When I have some time tonight, I might dig into this a bit. Here's the diagnostic:

[ 25%] Building CXX object Source/CMakeFiles/Dexed.dir/PluginProcessor.cpp.o ..... In file included from /home/pi/dexed-build/_deps/juce-src/modules/juce_gui_basics/juce_gui_basics.h:187, from /home/pi/dexed-build/_deps/juce-src/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:54, from /home/pi/dexed-build/Source/Dexed_artefacts/JuceLibraryCode/../JuceLibraryCode/JuceHeader.h:19, from /home/pi/dexed/Source/PluginProcessor.h:24, from /home/pi/dexed/Source/PluginProcessor.cpp:24: /home/pi/dexed-build/_deps/juce-src/modules/juce_gui_basics/desktop/juce_Displays.h:180:35: note: declared here 180 | [[deprecated]] const Display& getMainDisplay() const noexcept; | ^~~~~~ /home/pi/dexed/Source/PluginProcessor.cpp:776:11: error: invalid use of template-name ‘juce::Rectangle’ without an argument list 776 | const juce::Rectangle rect(DexedAudioProcessorEditor::WINDOW_SIZE_X dpiScaleFactor,DexedAudioProcessorEditor::WINDOW_SIZE_Y dpiScaleFactor); | ^~~~ /home/pi/dexed/Source/PluginProcessor.cpp:776:11: note: class template argument deduction is only available with ‘-std=c++17’ or ‘-std=gnu++17’ .....

asb2m10 commented 2 years ago

Hi,

Don't hesitate to provide pull-request with the missing compiler flag. I'm on gcc 11.2.0 (arch linux), the CMake built was originally made on debian, I'm surprised it doesn't work on your side.