[Development] Do we really need Assimp?

Sean Harmer sh at theharmers.co.uk
Thu Jun 7 13:31:13 CEST 2018


Hi Thiago,

Apologies for the delay in replying, I was on vacation.


On 23/05/2018 01:16, Thiago Macieira wrote:
> Given the number of warnings in this codebase, I am really skeptical about the
> quality of the code. Today, compiling with GCC, Clang an ICC, I saw the
> following warnings scroll by, which are real issues:
>
> LWSLoader.cpp:428:14: warning: duplicated ‘if’ condition [-Wduplicated-cond]
>
> new_allocator.h:140:22: warning: destructor called on non-final
> 'Assimp::FICDATAValueImpl' that has virtual functions but non-virtual
> destructor [-Wdelete-non-virtual-dtor]
>
> miniz.h(4430): warning #592: variable "level" is used before its value is set
>
> And then there are of course warnings that indicate none of their developers
> are testing new compilers, like
>
> LWOLoader.cpp:1408:13: warning: this statement may fall through [-Wimplicit-
> fallthrough=]
>
> Can we get rid of it?
>
> If not, can I ask someone to compile it with CONFIG += warn_off, to hide all
> that ugliness? Those warnings make finding our warnings more difficult and it
> affects our reputation because people see warnings and think they're Qt's
> fault.
>
> Qt3D maintainers, please take action to make sure those warnings disappear
> from our builds.

Tbh I'd be glad to not have assimp in the source tree too as it just 
adds to maintenance.

It's used for 2 things at present:

1) A sceneloader plugin. We could move this to be not compiled by 
default or even move it to another optional module for users to compile 
themselves.

2) The qgltf tool which converts from assimp-supported file formats to 
extended glTF 1 files. Again, we coudl do similar as with 1).

Another option is to only rely upon a system installed assimp and build 
these tools only if found at configure time. In fact, that's probably 
easiest and best. Then we can remove assimp from the source. It means 
users woudl need to build these tools/plugins themselves (typically on 
macOS/Windows) but at least they would be easily available.

Would that be acceptable to the project?

Cheers,

Sean




More information about the Development mailing list