AAX_Version.h not found


#1

I just updated my local copy of JUCE to the latest on develop and now I’m getting an error that it can’t find AAX_Version.h. What’s interesting is that I definitely have my AAX global path set in Projucer and for whatever reason, my Xcode project doesn’t show the AAX path in Header Search Paths.

Did anything change here?

Maybe Avid is getting back at me for the developer feedback I sent in…


#2

Does the path in the Xcode project itself look right or is it completely missing?

Rail


#3

The path is not in the Xcode project…it’s missing. Odd.


#4

Check if this commit or one of the others that day broke PJ:

https://github.com/WeAreROLI/JUCE/commit/c4eb15eb21f5d32c68785f53f35e4bbd46e49181

Rail


#5

It looks like that could be it.

Here’s my Xcode Header Search Paths from Projucer built using commit c3e7c4725277b95363d68c3275d3bf2df78e2f0a from Oct 19:

You can see the AAX headers and my custom VST3 SDK.

But here’s my Header Search Paths from Projucer built using 2593d5e264d7a41dd98c40991d4694444f49adad from Nov 2:

Notice, no AAX headers and no custom VST3 SDK.

@ed95 ?


The removal of JUCE’s embedded VST2 SDK
#6

Thanks for the heads up. If you re-build the Projucer after pulling this commit it should be back to normal.


#7

All good now. Thanks!


#8

I had this working with a relative path, however, I am no longer able to achieve this. Strangely it builds on my developer account (same repo, no global path in Projucer), but it doesn’t on Jenkins.

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.9 -fvisibility=hidden -fvisibility-inlines-hidden -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -I/Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/Builds/MacOSX/build/Release/include -I../../../../JUCE/modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I/Users/Shared/Jenkins/SDKs/AAX -I/Users/Shared/Jenkins/SDKs/AAX/Interfaces -I/Users/Shared/Jenkins/SDKs/AAX/Interfaces/ACF -I../../../../JUCE/modules -I../../../../JUCE/modules/juce_audio_plugin_client -I/Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/Builds/MacOSX/build/Frequalizer.build/Release/Frequalizer\ -\ AAX.build/DerivedSources/x86_64 -I/Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/Builds/MacOSX/build/Frequalizer.build/Release/Frequalizer\ -\ AAX.build/DerivedSources -Wreorder -F/Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/Builds/MacOSX/build/Release -Werror -Wall -Wshadow -Wno-missing-field-initializers -Wshadow -Wshorten-64-to-32 -Wstrict-aliasing -Wuninitialized -Wunused-parameter -Wconversion -Wsign-compare -Wint-conversion -Woverloaded-virtual -Wreorder -Wconstant-conversion -Wsign-conversion -MMD -MT dependencies -MF /Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/Builds/MacOSX/build/Frequalizer.build/Release/Frequalizer\ -\ AAX.build/Objects-normal/x86_64/include_juce_audio_plugin_client_AAX.d --serialize-diagnostics /Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/Builds/MacOSX/build/Frequalizer.build/Release/Frequalizer\ -\ AAX.build/Objects-normal/x86_64/include_juce_audio_plugin_client_AAX.dia -c /Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm -o /Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/Builds/MacOSX/build/Frequalizer.build/Release/Frequalizer\ -\ AAX.build/Objects-normal/x86_64/include_juce_audio_plugin_client_AAX.o
In file included from /Users/Shared/Jenkins/Home/workspace/FoleysFinest-Plugins/PlugIns/Frequalizer/JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm:9:
In file included from ../../../../JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX.mm:28:
../../../../JUCE/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp:51:10: fatal error: 'AAX_Version.h' file not found
#include <AAX_Version.h>
         ^~~~~~~~~~~~~~~
1 error generated.

** BUILD FAILED **

I also noticed, that the AAX_SDK path is always red, on the dev account, where building works and on the jenkins account, where it doesn’t build.

Thanks for any hints…


#9

How have you set the AAX path in the Projucer? Are you using the “AAX SDK Folder” setting in the Xcode exporter?

If you rebuild the Projucer after this commit then the issue with the path always displaying red should be fixed.


#10

Thanks @ed95,
yes, I am setting it in the XCode exporter. I had to track down a soliciting Projucer from a different submodule (pluginval). But now the red is gone, it shows it as valid.

I also deleted the workspace of Jenkins, so no old Projucer can get in the way…
Unfortunately still with the same result, in jenkins it doesn’t find the includes.
My setup pulls a new JUCE repo each time and builds Projucer from scratch. The juce submodule was updated today.

Maybe worth noting: OSX 10.12 Sierra with case sensitive file system…?
(I should probably update, but I am undecided, if High Sierra or directly to Mojave)


#11

That’s odd. Have you verified that the search paths exist on the build machine? What happens if you use an absolute path instead of a relative one?


#12

I think I have a lead now. I just checked the paths in the console, and it used the default path from Projucer (maybe an artefact of the one, that printed the version in red).
I logged in the jenkins account and removed all paths (they appeared now thanks to the latest Projucer indeed as set, but with the invalid default value).
Now I am verifying, that my branch references the right commit (and has the AAX in the exporter, currently it doesn’t seem to be the case).
Seems here was a spring clean overdue with several issues… I think the next attempt should bring relief…


#13

To make sure that no paths sneak into any builds, you might want to remove the global settings file each time you do a build. We have this line at the top of the CI script which builds the Projucer:

rm -rf ~/Library/Application\ Support/Projucer

#14

That’s a great idea… I am a bit weary of scripts, that delete files outside it’s container though…
A command line option to ignore any global settings (or even specify a separate settings file) would be a better addition for that instead.

The build succeeded now, I didn’t push the mono-repo, only the submodule, so that last bit was owed to my own stupidity :wink:

Thanks for helping out!

BTW. when you update the Projucer project files the next time, could you see, if this warning can be silenced:

warning: unknown warning option '-Wzero-as-null-pointer-constant'; did you mean '-Wint-to-void-pointer-cast'? [-Wunknown-warning-option]
1 warning generated.

Or is that only on my old system?


#15

I’m not seeing that warning, where is it pointing to?


#16

Well, then never mind. I just checked, my XCode is 9.2, so it will probably go away once updated to 9.4.1
It happens when building the Projucer:

The machine was sleeping beauty the last year :wink: (we can argue about “beauty” :smiley: )