pongasoft / jamba

A lightweight VST2/3 framework
https://jamba.dev/
Apache License 2.0
122 stars 3 forks source link

validate & edit build failed #13

Closed PatrickCaneloDigital closed 2 years ago

PatrickCaneloDigital commented 2 years ago

I am a first time user and just had made an empty project and downloaded the sample gain project. I followed the guide step by step, but fail when I come to the ".jamba.sh validate" or edit part I tested on both a new project and the sample gain project and get both times the same build failed error with these last lines

I am using MacOS 10.15, jamba 5.1.5, VST3.7.1 & VST2.4; Just a plain new install following the guide. Technically I understand the error but I don't get why the build fails on both a new project & test project

`duplicate symbol 'DeinitModule()' in: /Volumes/Data-Partition/Programming/JambaVST/jamba-sample-gain/build/jamba-sample-gain.build/Debug/pongasoft_JambaSampleGain.build/Objects-normal/x86_64/JSGainVST3.o /Volumes/Data-Partition/Programming/JambaVST/jamba-sample-gain/build/lib/Debug/libsdk.a(moduleinit.o) duplicate symbol 'InitModule()' in: /Volumes/Data-Partition/Programming/JambaVST/jamba-sample-gain/build/jamba-sample-gain.build/Debug/pongasoft_JambaSampleGain.build/Objects-normal/x86_64/JSGainVST3.o /Volumes/Data-Partition/Programming/JambaVST/jamba-sample-gain/build/lib/Debug/libsdk.a(moduleinit.o) ld: 2 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

BUILD FAILED

The following build commands failed: Ld /Volumes/Data-Partition/Programming/JambaVST/jamba-sample-gain/build/VST3/Debug/pongasoft_JambaSampleGain.vst3/Contents/MacOS/pongasoft_JambaSampleGain normal (1 failure) Error: Command "validate" [cmake --build . --config Debug --target jmb_run_validator] failed with error code 65`

ypujante commented 2 years ago

When you said you tried on "empty" project, do you mean you generated a blank plugin from https://jamba.dev/quickstart/web/ and compiled it? If not, can you give this a shot?

PatrickCaneloDigital commented 2 years ago

yes, in fact I created a blank plugin through quickstart web & command-line, in both cases build fails... I don't know if that helps but I am using xcode 12.4 (last working version for catalina 10.15)

I made some more tests: ./jamba.sh test >> works ./jamba.sh clean >> fails (basically it cannot delete some files and folders because they were not created by the build system ./jamba.sh validate and ./jamba.sh edit >> both give the error described above

ypujante commented 2 years ago

I will take a look. But a quick run on my laptop (macbook air m1 / Big Sur 11.6) shows no issues.

ypujante commented 2 years ago

@PatrickCaneloDigital Can you rerun the configure phase (./configure.py -f), capture the output and post it here?

PatrickCaneloDigital commented 2 years ago

@ypujante Here it goes output.txt

I also attach the output of the latter ( ./jamba.sh validate ) outputValidate.txt

ypujante commented 2 years ago

This does not make any sense...

Are you 100% certain that /Users/Shared/Steinberg/VST_SDK.3.7.1 is a link to the VST SDK 3.7.1. Where and how did you get the sdk?

PatrickCaneloDigital commented 2 years ago

Because the configure command assumes the SDKs in this path I created symlinks so I don't have to give in the --vst param the VST SDK 3.7.1 was downloaded with a git clone into /Volumes/Data-Partition/GITHUB

git clone --recursive https://github.com/steinbergmedia/vst3sdk.git\ncd vst3sdk 
git checkout 79750cb3e56f3988f33bc178884962cc3f4c3eb9

and jamba like this git clone https://github.com/pongasoft/jamba

myusername@Mac16 build % ls -ltr /Users/Shared/Steinberg/                       
total 0
lrwxr-xr-x  1 myusername  wheel  38  2 Nov 14:15 VST_SDK.3.7.1 -> /Volumes/Data-Partition/GITHUB/vst3sdk
lrwxr-xr-x  1 myusername  wheel  40  2 Nov 14:17 VST_SDK.2.4 -> /Volumes/Data-Partition/GITHUB/VST2_SDK/

myusername@Mac16 build % ls -ltr  /Volumes/Data-Partition/GITHUB/vst3sdk        
total 928
-rw-r--r--   1 myusername  admin  307448  2 Nov 13:15 VST3_Usage_Guidelines.pdf
-rw-r--r--   1 myusername  admin     155  2 Nov 13:15 index.html
drwxr-xr-x   8 myusername  admin     256  2 Nov 13:38 base
drwxr-xr-x   7 myusername  admin     224  2 Nov 13:38 cmake
drwxr-xr-x  20 myusername  admin     640  2 Nov 13:38 doc
drwxr-xr-x  10 myusername  admin     320  2 Nov 13:38 pluginterfaces
drwxr-xr-x   8 myusername  admin     256  2 Nov 13:38 public.sdk
drwxr-xr-x  11 myusername  admin     352  2 Nov 13:38 vstgui4
-rw-r--r--   1 myusername  admin    5577  2 Nov 13:40 CMakeLists.txt
-rw-r--r--   1 myusername  admin    2602  2 Nov 13:40 LICENSE.txt
-rw-r--r--   1 myusername  admin   10429  2 Nov 13:40 README.md
-rw-r--r--   1 myusername  admin  134123  2 Nov 13:40 VST3_License_Agreement.pdf

myusername@Mac16 build % cat  /Volumes/Data-Partition/GITHUB/vst3sdk/README.md  
<div style="text-align:center">
<img src="https://steinbergmedia.github.io/vst3_doc/gfx/vst3_logo.jpg" alt="VST SDK 3" /></div>

# Welcome to VST SDK 3.7.x
ypujante commented 2 years ago

I do not know if this is the problem, but I have not tried to clone the repository/do a checkout. Could you download the sdk 3.7.1 (link on this page https://jamba.dev/requirements/) and use this sdk instead?

What is really odd is that I do not see any issue with my desktop (Mojave 10.14.6) and an older version of xcode or my laptop (Big Sur) and a newer version of xcode... it seems very unlikely that a version in between would have issues...

The error message you get

duplicate symbol 'DeinitModule()' in:
    /Volumes/Data-Partition/Programming/JambaVST/CST3Test-src/build/CST3Test.build/Debug/CaneloDigital_CST3Test.build/Objects-normal/x86_64/CST3Test_VST3.o
    /Volumes/Data-Partition/Programming/JambaVST/CST3Test-src/build/lib/Debug/libsdk.a(moduleinit.o)

seems to be an indication that the wrong sdk is being used.

I did try to port Jamba to 3.7.2 (and aborted after a while because there was some breaking issues in 3.7.2 (check the VST forum for details)). During this attempted port I had to remove DeinitModule and InitModule from the plugin because it was now being done by the SDK...

This is why I believe the SDK you are using is not the right one. Please give a try to the downloaded version.

PatrickCaneloDigital commented 2 years ago

Good guess Yan, That was indeed the issue. the build & validation now succeded! I also tried edit and the window appears, so I guess I'm good to go

Thx a lot!

ypujante commented 2 years ago

Very happy to hear.

I am not familiar with git submodules but it seems pretty obvious that the series of commands you executed:

1) git clone --recurse ...
2) git checkout ...

is not doing what you thought it was doing. I think the checkout command simply changed where the submodules are tracking without actually doing the checkout...