From bdfcb4b0cb84306ffaa4fbafc65ea5486b284519 Mon Sep 17 00:00:00 2001 From: Alexander Gessler Date: Thu, 28 Mar 2013 13:38:42 +0100 Subject: [PATCH] - add ASSIMP_BUILD_NO_COMPRESSED_IFC option. Properly integrate Q3BSP's unzip dependency into the build configuration. --- code/IFCLoader.cpp | 9 ++++++++- include/assimp/defs.h | 17 +++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/code/IFCLoader.cpp b/code/IFCLoader.cpp index 7aa5163a2..832bc60b5 100644 --- a/code/IFCLoader.cpp +++ b/code/IFCLoader.cpp @@ -48,7 +48,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -#include "../contrib/unzip/unzip.h" +#ifndef ASSIMP_BUILD_NO_COMPRESSED_IFC +# include "../contrib/unzip/unzip.h" +#endif #include "IFCLoader.h" #include "STEPFileReader.h" @@ -169,8 +171,10 @@ void IFCImporter::InternReadFile( const std::string& pFile, ThrowException("Could not open file for reading"); } + // if this is a ifczip file, decompress its contents first if(GetExtension(pFile) == "ifczip") { +#ifndef ASSIMP_BUILD_NO_COMPRESSED_IFC unzFile zip = unzOpen( pFile.c_str() ); if(zip == NULL) { ThrowException("Could not open ifczip file for reading, unzip failed"); @@ -214,6 +218,9 @@ void IFCImporter::InternReadFile( const std::string& pFile, } unzClose(zip); +#else + ThrowException("Could not open ifczip file for reading, assimp was built without ifczip support"); +#endif } boost::scoped_ptr db(STEP::ReadFileHeader(stream)); diff --git a/include/assimp/defs.h b/include/assimp/defs.h index 200add7a5..1b777a5f2 100644 --- a/include/assimp/defs.h +++ b/include/assimp/defs.h @@ -60,9 +60,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * Other (mixed) configuration switches are listed here: * ASSIMP_BUILD_NO_COMPRESSED_X - * - Disable support for compressed X files + * - Disable support for compressed X files (zip) * ASSIMP_BUILD_NO_COMPRESSED_BLEND - * - Disable support for compressed Blender files*/ + * - Disable support for compressed Blender files (zip) + * ASSIMP_BUILD_NO_COMPRESSED_IFC + * - Disable support for IFCZIP files (unzip) + */ ////////////////////////////////////////////////////////////////////////// #ifndef ASSIMP_BUILD_NO_COMPRESSED_X @@ -71,6 +74,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef ASSIMP_BUILD_NO_COMPRESSED_BLEND # define ASSIMP_BUILD_NEED_Z_INFLATE +#endif + +#ifndef ASSIMP_BUILD_NO_COMPRESSED_IFC +# define ASSIMP_BUILD_NEED_Z_INFLATE +# define ASSIMP_BUILD_NEED_UNZIP +#endif + +#ifndef ASSIMP_BUILD_NO_Q3BSP_IMPORTER +# define ASSIMP_BUILD_NEED_Z_INFLATE +# define ASSIMP_BUILD_NEED_UNZIP #endif //////////////////////////////////////////////////////////////////////////