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

Reply via email to