VASTDynamics / Vaporizer2

Vaporizer2 hybrid wavetable additive / subtractive VST / AU / AAX synthesizer / sampler workstation plugin
https://www.vast-dynamics.com/?q=products
GNU General Public License v3.0
436 stars 26 forks source link

any hints on how to build the code #50

Closed teknopaul closed 11 months ago

teknopaul commented 11 months ago

build_linux.sh borkes because JUCE directory is empty. I have JUCE development libs locally, I shouldn't need a dedicated version to build with JUCE as a dependency? If the build requires some very specific JUCE, I would need to know which version and where to get it.

KottV commented 11 months ago

build_linux.sh borkes because JUCE directory is empty.

did you pull submodules? without them Vaporizer2 won't build

If you have JUCE installed system-wide than you can pass -DUSE_SYSTEM_JUCE=ON to cmake. If JUCE's cmake modules are placed in some non-standart directory - add -DCMAKE_PREFIX_PATH=/path/to/juce/cmake_dir

you need JUCE 7.0.8 or 7.0.9

VASTDynamics commented 11 months ago

First of all: you are aware that there are prebuild packages and installers also for linux available? (see https://github.com/VASTDynamics/Vaporizer2/releases/tag/v3.4.0)

In case you want to build on your own. JUCE, AnaMark-Tuning-Library and muFFT are own GitHub repositories that are submodules in Vaporizer2. So to checkout you need to do somethuing like:

create a suitable folder and cd into it

git clone https://github.com/VASTDynamics/Vaporizer2.git
cd Vaporizer2
git submodule update --init --recursive

And then for Linux ./build_linux.sh

teknopaul commented 11 months ago

OK thanks I didnt see those Linux links there are master README.md does not have lins for Linux.

I still want to build it because I'm looking at integrating it into LMSS so I can use LMMS control automation to control it.

After setting -DUSE_SYSTEM_JUCE=ON in the firest call to cmake I can compile but it wont link

/usr/bin/ld: /tmp/cceTLFQd.ltrans0.ltrans.o: in function `juce::StandalonePluginHolder::createPlugin()':

:(.text+0x26d6): undefined reference to `createPluginFilter()' Is that a missing cmake file for juce?
KottV commented 11 months ago

/usr/bin/ld: /tmp/cceTLFQd.ltrans0.ltrans.o: in function juce::StandalonePluginHolder::createPlugin()': <artificial>:(.text+0x26d6): undefined reference to createPluginFilter()'

what Vaporizer2 branch and which version of JUCE do you have? does it compiles with bundled (submodule) JUCE?

teknopaul commented 11 months ago

FYI build script does not stop if the first cmake command fails

teknopaul commented 11 months ago

./CMakeLists.txt: "VASTvaporizer/Source/AnaMark-Tuning-Library/SCL_Import.cpp"

but this file does not exist

building master should I be in some branch

teknopaul commented 11 months ago

OK sorry , gotcha

git submodule update --init --recursive

is missing from the build script

teknopaul commented 11 months ago

Then cmake fails but it tries to build anyway

you might want to add set -e to the bash script

VASTDynamics commented 11 months ago

OK sorry , gotcha

git submodule update --init --recursive

is missing from the build script

Yes, this is what I wrote above.

And hm. i don't think that git commands belong in a build script.

teknopaul commented 11 months ago

in GNU Linux such instructions live in the INSTALL file inthe root of the project, not sure where it should be for cross platform projects

KottV commented 11 months ago

@VASTDynamics I use this script for GitHub Actions https://github.com/KottV/Vaporizer2/blob/main/build_linux.sh https://github.com/KottV/Vaporizer2/blob/main/.github/workflows/cmake-multi-platform.yml to build Vaporizer2 automatically.

It can be used for Windows and Mac builds here too, which is useful when you pushing commits and want to make sure that it compiles. I just need to make it a bit nicer before submitting.

KottV commented 11 months ago

@teknopaul yes, build script and instructions require some attention

teknopaul commented 11 months ago

Build successful and looking at code, cheers geeza