fixed glTF export stuff being pulled into the EXE even if building with ASSIMP_BUILD_NO_EXPORT

“LazyDictBase::WriteObjects()” in the two glTF implementations is only used for export. Since it’s a virtual method, and many compilers have trouble removing unreferenced virtual methods, glTF export stuff is pulled into the binary even if compiling without exports.

This commit removes said virtual function if only compiling for import.

This removes 75 KiB of useless code when compiled with Visual Studio for x64.
pull/3763/head
Krishty 2021-04-16 20:44:40 +02:00
parent cd42b9954b
commit 6cbeca5518
4 changed files with 12 additions and 0 deletions

View File

@ -954,7 +954,9 @@ namespace glTF
virtual void AttachToDocument(Document& doc) = 0;
virtual void DetachFromDocument() = 0;
#if !defined(ASSIMP_BUILD_NO_EXPORT)
virtual void WriteObjects(AssetWriter& writer) = 0;
#endif
};
@ -986,8 +988,10 @@ namespace glTF
void AttachToDocument(Document& doc);
void DetachFromDocument();
#if !defined(ASSIMP_BUILD_NO_EXPORT)
void WriteObjects(AssetWriter& writer)
{ WriteLazyDict<T>(*this, writer); }
#endif
Ref<T> Add(T* obj);

View File

@ -43,7 +43,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "AssetLib/glTF/glTFImporter.h"
#include "AssetLib/glTF/glTFAsset.h"
#if !defined(ASSIMP_BUILD_NO_EXPORT)
#include "AssetLib/glTF/glTFAssetWriter.h"
#endif
#include "PostProcessing/MakeVerboseFormat.h"
#include <assimp/StringComparison.h>

View File

@ -997,7 +997,9 @@ public:
virtual void AttachToDocument(Document &doc) = 0;
virtual void DetachFromDocument() = 0;
#if !defined(ASSIMP_BUILD_NO_EXPORT)
virtual void WriteObjects(AssetWriter &writer) = 0;
#endif
};
template <class T>
@ -1030,7 +1032,9 @@ class LazyDict : public LazyDictBase {
void AttachToDocument(Document &doc);
void DetachFromDocument();
#if !defined(ASSIMP_BUILD_NO_EXPORT)
void WriteObjects(AssetWriter &writer) { WriteLazyDict<T>(*this, writer); }
#endif
Ref<T> Add(T *obj);

View File

@ -44,7 +44,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "AssetLib/glTF2/glTF2Importer.h"
#include "PostProcessing/MakeVerboseFormat.h"
#include "AssetLib/glTF2/glTF2Asset.h"
#if !defined(ASSIMP_BUILD_NO_EXPORT)
#include "AssetLib/glTF2/glTF2AssetWriter.h"
#endif
#include <assimp/CreateAnimMesh.h>
#include <assimp/StringComparison.h>