From Wang Rui, "I've finally completed the static build support for dotosg wrapper and
serialization libraries. My submission mainly includes: 1. Add two new macros USE_DOTOSGWRAPPER_LIBRARY and USE_SERIALIZER_WRAPPER_LIBRARY. Applications using static OSG must include corresponding static-link libraries and use these two macros to predefine native format wrappers. Please see osgstaticviewer and present3D in the attachment for details. 2. Add a LibraryWrapper.cpp file in each osgWrappers/deprecated-dotosg/... and osgWrappers/serializers/... subfolder, which calls all USE_...WRAPPERS macros inside. The LibraryWrapper file is automatically generated by the wrapper_includer.cpp (with some slight fixes), which is also attached for your reference. The deprecated-dotosg/osgAnimation is not included because it doesn't us REGISTER_DOTOSGWRAPPER to define its wrappers. 3. Modify the ReaderWriterOSG.cpp to prevent calling loadWrappers() when static build. 4. An uncorrelated fix to Serializer and ObjectWrapper.cpp, which ensures version variables of serialziers are initialized, and serializers out-of-version are not written to model files. "
This commit is contained in:
@@ -128,6 +128,7 @@ class OSGReaderWriter : public ReaderWriter
|
||||
|
||||
bool loadWrappers() const
|
||||
{
|
||||
#ifndef OSG_LIBRARY_STATIC
|
||||
if (_wrappersLoaded) return true;
|
||||
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_mutex);
|
||||
@@ -146,6 +147,9 @@ class OSGReaderWriter : public ReaderWriter
|
||||
_wrappersLoaded = true;
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
virtual ReadResult readObject(const std::string& file, const Options* opt) const
|
||||
|
||||
Reference in New Issue
Block a user