On Tue, 21 Apr 2020 15:04:59 -0400 John Scott <jsc...@posteo.net> wrote: > > libopenshot-audio builds with Clang without any modifications. Using this > OpenShot (again with Clang) gets a bit farther: > /usr/include/libopenshot-audio/JuceLibraryCode/modules/juce_audio_basics/../juce_core/unit_tests/juce_UnitTest.h:73:17: note: candidate found by name lookup is 'juce::UnitTest' > class JUCE_API UnitTest > ^ > /<<PKGBUILDDIR>>/tests/Cache_Tests.cpp:50:2: error: reference to 'UnitTest' is ambiguous > > I've seen this is fixed in a commit upstream, and I think cherrypicking it > helped, but the -audio Debian package uses the Juce embedded code copies > instead of the ones in juce-modules-source as best as I can tell.
What version of libopenshot is that result from? The Clang namespacing was fixed with the merge of 2a1fe80[1] on 2019-10-29, and would be included in both libopenshot-0.2.4 and libopenshot-0.2.5. That's a merge commit and it touches a bunch of files, but basically all of our headers now qualify juce symbols with the juce:: namespace prefix, and the test sources now #define DONT_SET_USING_JUCE_NAMESPACE which prevents JUCE from exporting its symbols into the global namespace. AFAICT that's the only way to prevent UnitTest++ and JUCE from clashing over ambiguous 'UnitTest' symbols. But all this should have been solved months ago. > I'm uneasy about this and hope that a new release of OpenShot made with the > practices described in /usr/share/doc/juce-modules-source/README.Debian will > make an elegant solution. Is there a copy of that file online somewhere? It's not part of the JUCE distribution as far as I can tell, and it's definitely not located at that path on my Fedora machine. [1]: https://github.com/OpenShot/libopenshot/commit/2a1fe80