From 3d5eae6be597666ffcf68dbd5af6b854e7e6b564 Mon Sep 17 00:00:00 2001 From: aramis_acg Date: Mon, 19 Jan 2009 19:34:34 +0000 Subject: [PATCH] Moved some defines into the core, away from the public stuff. Fixed build error regarding zutil.c with vc9. Updated VC9 project files (again ...) Moved version getters to aiVersion.h. Deleted redundant fast_atof.h from irrXML. Added vc9 config for cppunit Fixed a missing include when building against stlport git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@307 67173fc5-114c-0410-ac8e-9d2fd5bffc1f --- code/AssimpPCH.cpp | 53 +- code/AssimpPCH.h | 42 +- code/SortByPTypeProcess.cpp | 4 +- .../src/CppUnitLibrariesVC9.sln | 50 + .../cppunit-1.12.1/src/cppunit/cppunit.vcproj | 360 +-- .../src/cppunit/cppunitvc9.vcproj | 2708 +++++++++++++++++ contrib/irrXML/fast_atof.h | 139 - contrib/zlib/zutil.h | 6 + contrib/zlib_note.txt | 1 + include/IOSystem.h | 3 +- include/aiConfig.h | 56 +- include/aiDefines.h | 57 +- include/aiVersion.h | 104 + test/models/3DS/jeep1.3ds | Bin 0 -> 68697 bytes test/models/3DS/jeep1.3ds.readme.txt | 15 + test/models/3DS/jeep1.jpg | Bin 0 -> 55952 bytes test/unit/CCompilerTest.c | 2 + test/unit/UnitTestPCH.h | 6 +- workspaces/vc8/UnitTest.vcproj | 26 +- workspaces/vc8/assimp.vcproj | 27 +- workspaces/vc8/assimp_view.vcproj | 24 +- .../vc9_AgainNotUpToDate/UnitTest.vcproj | 1450 ++++----- workspaces/vc9_AgainNotUpToDate/assimp.sln | 61 +- workspaces/vc9_AgainNotUpToDate/assimp.vcproj | 2175 +++++++++---- .../vc9_AgainNotUpToDate/assimp_view.vcproj | 1264 ++++---- .../vc9_AgainNotUpToDate/jAssimp.vcproj | 103 +- 26 files changed, 6176 insertions(+), 2560 deletions(-) create mode 100644 contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln create mode 100644 contrib/cppunit-1.12.1/src/cppunit/cppunitvc9.vcproj delete mode 100644 contrib/irrXML/fast_atof.h create mode 100644 include/aiVersion.h create mode 100644 test/models/3DS/jeep1.3ds create mode 100644 test/models/3DS/jeep1.3ds.readme.txt create mode 100644 test/models/3DS/jeep1.jpg diff --git a/code/AssimpPCH.cpp b/code/AssimpPCH.cpp index 3ae4ba60e..34dfd656c 100644 --- a/code/AssimpPCH.cpp +++ b/code/AssimpPCH.cpp @@ -1,47 +1,68 @@ - - -// This is a dummy unit - it is used to generate the precompiled header file. -// + it contains version management functions +// Actually just a dummyy, used by the compiler to build the precompiled header. #include "AssimpPCH.h" +#include "./../include/aiVersion.h" -// ################################################################################ -// Legal information string -// Note that this string must be contained in the compiled image. +// -------------------------------------------------------------------------------- +// Legal information string - dont't remove from image! static const char* LEGAL_INFORMATION = "Open Asset Import Library (ASSIMP).\n" "A free C/C++ library to import various 3D file formats into applications\n\n" "(c) ASSIMP Development Team, 2008-2009\n" -"License: modified BSD license (http://assimp.sourceforge.net/main_license.html)\n" +"License: BSD\n" "Website: http://assimp.sourceforge.net\n" ; -// ################################################################################ // ------------------------------------------------------------------------------------------------ -ASSIMP_API const char* aiGetLegalString () -{ +// Get legal string +ASSIMP_API const char* aiGetLegalString () { return LEGAL_INFORMATION; } // ------------------------------------------------------------------------------------------------ -ASSIMP_API unsigned int aiGetVersionMinor () -{ +// Get Assimp minor version +ASSIMP_API unsigned int aiGetVersionMinor () { return 5; } // ------------------------------------------------------------------------------------------------ -ASSIMP_API unsigned int aiGetVersionMajor () -{ +// Get Assimp major version +ASSIMP_API unsigned int aiGetVersionMajor () { return 0; } +// ------------------------------------------------------------------------------------------------ +// Get flags used for compilation +ASSIMP_API unsigned int aiGetCompileFlags () { + + unsigned int flags = 0; + +#ifdef ASSIMP_BUILD_BOOST_WORKAROUND + flags |= ASSIMP_CFLAGS_NOBOOST; +#endif +#ifdef ASSIMP_BUILD_SINGLETHREADED + flags |= ASSIMP_CFLAGS_SINGLETHREADED; +#endif +#ifdef ASSIMP_BUILD_DEBUG + flags |= ASSIMP_CFLAGS_DEBUG; +#endif +#ifdef ASSIMP_BUILD_DLL_EXPORT + flags |= ASSIMP_CFLAGS_SHARED; +#endif +#ifdef _STLPORT_VERSION + flags |= ASSIMP_CFLAGS_STLPORT; +#endif + + return flags; +} + // ------------------------------------------------------------------------------------------------ ASSIMP_API unsigned int aiGetVersionRevision () { // TODO: find a way to update the revision number automatically - return 254; + return 306; } diff --git a/code/AssimpPCH.h b/code/AssimpPCH.h index 2b5f67939..0cd0861e9 100644 --- a/code/AssimpPCH.h +++ b/code/AssimpPCH.h @@ -47,9 +47,41 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Compile config #include "../include/aiDefines.h" -// =================================================================== +// Undefine the min/max macros defined by some platform headers +#undef min +#undef max + +// Concatenate two tokens after evaluating them +#define AI_CONCAT(a,b) a ## b + +// Helper macro that sets a pointer to NULL in debug builds +#if (defined _DEBUG) +# define AI_DEBUG_INVALIDATE_PTR(x) x = NULL; +#else +# define AI_DEBUG_INVALIDATE_PTR(x) +#endif + +// We depend heavily on the STL's performance, so we need to make sure +// that the M$ implementation isn't 'secure', but 'fast' +#if 0 // this crashes! what the fuck??? +#if (defined _MSC_VER) && (!defined DEBUG) +# define _SECURE_SCL 0 +# define _SCL_SECURE_NO_DEPRECATE +# define _HAS_ITERATOR_DEBUGGING 0 +#endif +#endif + +// If we have at least VC8 some C string manipulation functions + // are mapped to their safe _s counterparts (e.g. _itoa_s). +#if _MSC_VER >= 1400 && !(defined _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) +# define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 +#endif + +// Actually that'snot required for MSVC (it is included somewhere in +// the STL ..) but it is necessary for build with STLport. +#include + // Runtime/STL headers -// =================================================================== #include #include #include @@ -64,9 +96,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include -// =================================================================== // Public ASSIMP headers -// =================================================================== #include "../include/DefaultLogger.h" #include "../include/IOStream.h" #include "../include/IOSystem.h" @@ -74,18 +104,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "../include/aiPostProcess.h" #include "../include/assimp.hpp" -// =================================================================== // Internal utility headers -// =================================================================== #include "BaseImporter.h" #include "MaterialSystem.h" #include "StringComparison.h" #include "StreamReader.h" #include "qnan.h" -// =================================================================== // boost headers - take them from the workaround dir if possible -// =================================================================== #ifdef ASSIMP_BUILD_BOOST_WORKAROUND # include "../include/BoostWorkaround/boost/scoped_ptr.hpp" diff --git a/code/SortByPTypeProcess.cpp b/code/SortByPTypeProcess.cpp index af11e0346..9b7bbbbde 100644 --- a/code/SortByPTypeProcess.cpp +++ b/code/SortByPTypeProcess.cpp @@ -51,8 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. using namespace Assimp; - - // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer SortByPTypeProcess::SortByPTypeProcess() @@ -84,7 +82,7 @@ void SortByPTypeProcess::SetupProperties(const Importer* pImp) // Update changed meshes in all nodes void UpdateNodes(const std::vector& replaceMeshIndex, aiNode* node) { - std::vector::const_iterator it; +// std::vector::const_iterator it; if (node->mNumMeshes) { diff --git a/contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln b/contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln new file mode 100644 index 000000000..62417d477 --- /dev/null +++ b/contrib/cppunit-1.12.1/src/CppUnitLibrariesVC9.sln @@ -0,0 +1,50 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cppunit", "cppunit\cppunitvc9.vcproj", "{98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Static|Win32 = Debug Static|Win32 + Debug Static|x64 = Debug Static|x64 + Debug Unicode|Win32 = Debug Unicode|Win32 + Debug Unicode|x64 = Debug Unicode|x64 + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release Static|Win32 = Release Static|Win32 + Release Static|x64 = Release Static|x64 + Release Unicode|Win32 = Release Unicode|Win32 + Release Unicode|x64 = Release Unicode|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|Win32.ActiveCfg = Debug|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|Win32.Build.0 = Debug|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|x64.ActiveCfg = Debug|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Static|x64.Build.0 = Debug|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|Win32.ActiveCfg = Debug|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|Win32.Build.0 = Debug|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|x64.ActiveCfg = Debug|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug Unicode|x64.Build.0 = Debug|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|Win32.Build.0 = Debug|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|x64.ActiveCfg = Debug|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Debug|x64.Build.0 = Debug|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|Win32.ActiveCfg = Release|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|Win32.Build.0 = Release|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|x64.ActiveCfg = Release|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Static|x64.Build.0 = Release|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|Win32.ActiveCfg = Release|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|Win32.Build.0 = Release|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|x64.ActiveCfg = Release|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release Unicode|x64.Build.0 = Release|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|Win32.ActiveCfg = Release|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|Win32.Build.0 = Release|Win32 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|x64.ActiveCfg = Release|x64 + {98E0A8E6-D7B0-4683-9DDC-7E24535A17E6}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj b/contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj index 6e99c51ac..e8247acbb 100644 --- a/contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj +++ b/contrib/cppunit-1.12.1/src/cppunit/cppunit.vcproj @@ -49,7 +49,7 @@ PreprocessorDefinitions="_DEBUG;_LIB;WIN32" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" RuntimeTypeInfo="true" PrecompiledHeaderFile=".\Debug/cppunit.pch" AssemblerListingLocation=".\Debug/" @@ -95,6 +95,85 @@ CommandLine="copy "$(TargetPath)" ..\..\lib\$(TargetName).lib" /> + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contrib/irrXML/fast_atof.h b/contrib/irrXML/fast_atof.h deleted file mode 100644 index da5c65f75..000000000 --- a/contrib/irrXML/fast_atof.h +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright (C) 2002-2005 Nikolaus Gebhardt -// This file is part of the "Irrlicht Engine" and the "irrXML" project. -// For conditions of distribution and use, see copyright notice in irrlicht.h and irrXML.h - -#ifndef __FAST_A_TO_F_H_INCLUDED__ -#define __FAST_A_TO_F_H_INCLUDED__ - -#include -#include - -namespace irr -{ -namespace core -{ - -const float fast_atof_table[] = { - 0.f, - 0.1f, - 0.01f, - 0.001f, - 0.0001f, - 0.00001f, - 0.000001f, - 0.0000001f, - 0.00000001f, - 0.000000001f, - 0.0000000001f, - 0.00000000001f, - 0.000000000001f, - 0.0000000000001f, - 0.00000000000001f, - 0.000000000000001f - }; - -//! Provides a fast function for converting a string into a float, -//! about 6 times faster than atof in win32. -// If you find any bugs, please send them to me, niko (at) irrlicht3d.org. -inline char* fast_atof_move(char* c, float& out) -{ - bool inv = false; - char *t; - float f; - - if (*c=='-') - { - c++; - inv = true; - } - - f = (float)strtol(c, &t, 10); - - c = t; - - if (*c == '.') - { - c++; - - float pl = (float)strtol(c, &t, 10); - pl *= fast_atof_table[t-c]; - - f += pl; - - c = t; - - if (*c == 'e') - { - ++c; - float exp = (float)strtol(c, &t, 10); - f *= (float)pow(10.0f, exp); - c = t; - } - } - - if (inv) - f *= -1.0f; - - out = f; - return c; -} - -//! Provides a fast function for converting a string into a float, -//! about 6 times faster than atof in win32. -// If you find any bugs, please send them to me, niko (at) irrlicht3d.org. -inline const char* fast_atof_move_const(const char* c, float& out) -{ - bool inv = false; - char *t; - float f; - - if (*c=='-') - { - c++; - inv = true; - } - - f = (float)strtol(c, &t, 10); - - c = t; - - if (*c == '.') - { - c++; - - float pl = (float)strtol(c, &t, 10); - pl *= fast_atof_table[t-c]; - - f += pl; - - c = t; - - if (*c == 'e') - { - ++c; - f32 exp = (f32)strtol(c, &t, 10); - f *= (f32)powf(10.0f, exp); - c = t; - } - } - - if (inv) - f *= -1.0f; - - out = f; - return c; -} - - -inline float fast_atof(const char* c) -{ - float ret; - fast_atof_move_const(c, ret); - return ret; -} - -} // end namespace core -}// end namespace irr - -#endif - diff --git a/contrib/zlib/zutil.h b/contrib/zlib/zutil.h index b7d5eff81..46acfa675 100644 --- a/contrib/zlib/zutil.h +++ b/contrib/zlib/zutil.h @@ -14,6 +14,12 @@ #define ZUTIL_H #define ZLIB_INTERNAL + +/* https://sourceforge.net/forum/forum.php?thread_id=2881869&forum_id=817653 + * Actually a smart workaround is to disable debug builds of zlib completely. + */ +#undef DEBUG + #include "zlib.h" #ifdef STDC diff --git a/contrib/zlib_note.txt b/contrib/zlib_note.txt index d653a3826..f97c85be2 100644 --- a/contrib/zlib_note.txt +++ b/contrib/zlib_note.txt @@ -5,6 +5,7 @@ This is a heavily modified and shrinked version of zlib 1.2.3 - Removed Compression part - Removed infback.c - Added Assimp #idefs to exclude it if not needed +- Disabled debug macros in zutil.h All inflateNNN functions are available, for the rest you need to try. If a function is needed but is not there, get zlib and add the diff --git a/include/IOSystem.h b/include/IOSystem.h index e15375235..c13679330 100644 --- a/include/IOSystem.h +++ b/include/IOSystem.h @@ -106,8 +106,7 @@ public: * @note When implementing this class to provide custom IO handling, * you probably have to supply an own implementation of IOStream as well. */ - virtual IOStream* Open( - const std::string& pFile, + virtual IOStream* Open(const std::string& pFile, const std::string& pMode = std::string("rb")) = 0; // ------------------------------------------------------------------- diff --git a/include/aiConfig.h b/include/aiConfig.h index 34299d82a..862e55ac5 100644 --- a/include/aiConfig.h +++ b/include/aiConfig.h @@ -40,51 +40,23 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** @file aiConfig.h - * @brief Defines constants for configurable properties and helper - functions to determine the version of the Assimp library being used - */ -#ifndef __AI_CONFIG_H_INC__ -#define __AI_CONFIG_H_INC__ - -#ifdef __cplusplus -extern "C" { -#endif - -// --------------------------------------------------------------------------- -/** @brief Returns a string with legal copyright and licensing information - * about Assimp. + * @brief Defines constants for configurable properties for the library * - * @return Never NULL - */ -ASSIMP_API const char* aiGetLegalString (); - -// --------------------------------------------------------------------------- -/** @brief Returns the current minor version number of Assimp. + * Typically these properties are set via + * #Importer::SetPropertyFloat, + * #Importer::SetPropertyInteger or + * #Importer::SetPropertyString, + * depending on the data type of a property. All properties have a + * default value. See the doc for the mentioned methods for more details. * - * @return Minor version of the Assimp runtime the application was - * linked/built against + * @note + * The functions for use with the plain-c API are: + * #aiSetImportPropertyInteger, + * #aiSetImportPropertyFloat, + * #aiSetImportPropertyString */ -ASSIMP_API unsigned int aiGetVersionMinor (); - -// --------------------------------------------------------------------------- -/** @brief Returns the current major version number of Assimp. - * - * @return Major version of the Assimp runtime the application was - * linked/built against - */ -ASSIMP_API unsigned int aiGetVersionMajor (); - -// --------------------------------------------------------------------------- -/** @brief Returns the repository revision of the Assimp runtime. - * - * @return Repository revision number of the Assimp runtime the application - * was linked/built against - */ -ASSIMP_API unsigned int aiGetVersionRevision (); - -#ifdef __cplusplus -} // end extern "C" -#endif +#ifndef INCLUDED_AI_CONFIG_H +#define INCLUDED_AI_CONFIG_H // --------------------------------------------------------------------------- /** @brief Set the maximum number of vertices in a mesh. diff --git a/include/aiDefines.h b/include/aiDefines.h index 8a4e50947..4c40f9d06 100644 --- a/include/aiDefines.h +++ b/include/aiDefines.h @@ -47,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef INCLUDED_AI_DEFINES_H #define INCLUDED_AI_DEFINES_H - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // Define ASSIMP_BUILD_NO_XX_IMPORTER to disable a specific // file format loader. The loader is be excluded from the // build in this case. 'XX' stands for the most common file @@ -59,12 +59,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // - Disable support for compressed X files, removes the // dependency from the zlib inflate algorithm. // - // ================================================================ #ifndef ASSIMP_BUILD_NO_COMPRESSED_X # define ASSIMP_BUILD_NEED_Z_INFLATE #endif - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // Define ASSIMP_BUILD_NO_XX_PROCESS to disable a specific // post-processing step. The spe will be excluded from the // build in this case. 'XX' stands for the name of the loader. @@ -88,7 +87,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // FINDINVALIDDATA // TRANSFORMTEXCOORDS // GENUVCOORDS - // ================================================================ // Compiler specific includes and definitions #if (defined _MSC_VER) @@ -97,25 +95,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Include our workaround stdint.h - VC doesn't have one # include "./../include/Compiler/pstdint.h" - // If we have at least VC8 some C string manipulation functions - // are mapped to their safe _s counterparts (e.g. _itoa_s). -#if _MSC_VER >= 1400 && !(defined _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES) \ - && (defined ASSIMP_INTERNAL_BUILD) - -# define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1 -#endif - - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // Define ASSIMP_BUILD_DLL_EXPORT to build a DLL of the library - // ================================================================ # if (defined ASSIMP_BUILD_DLL_EXPORT) # define ASSIMP_API __declspec(dllexport) # pragma warning (disable : 4251) - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // Define ASSIMP_DLL before including Assimp to use ASSIMP in // an external DLL (otherwise a static library is used) - // ================================================================ # elif (defined ASSIMP_DLL) # define ASSIMP_API __declspec(dllimport) # else @@ -132,15 +120,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifdef __cplusplus // No explicit 'struct' and 'enum' tags for C++, we don't want to - // confuse the AI of our IDE. + // confuse the AI (:-)) of our IDE. # define C_STRUCT # define C_ENUM #else - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // To build the documentation, make sure ASSIMP_DOXYGEN_BUILD // is defined by Doxygen's preprocessor. The corresponding // entries in the DoxyFile look like this: - // ================================================================ #if 0 ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES @@ -152,12 +139,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EXPAND_AS_DEFINED = C_STRUCT C_ENUM SKIP_FUNCTION_MACROS = YES #endif - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // Doxygen gets confused if we use c-struct typedefs to avoid // the explicit 'struct' notation. This trick here has the same // effect as the TYPEDEF_HIDES_STRUCT option, but we don't need // to typedef all structs/enums. - // ================================================================ # if (defined ASSIMP_DOXYGEN_BUILD) # define C_STRUCT # define C_ENUM @@ -169,16 +155,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #if (defined(__BORLANDC__) || defined (__BCPLUSPLUS__)) +#error Currently Borland is unsupported. Feel free to port Assimp. + // "W8059 Packgröße der Struktur geändert" #endif - - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // Define ASSIMP_BUILD_BOOST_WORKAROUND to compile assimp // without boost. This is done by using a few workaround // classes. However, some assimp features are not available // in this case. This implies the ASSIMP_BUILD_SINGLETHREADED option. - // ================================================================ #ifdef ASSIMP_BUILD_BOOST_WORKAROUND // threading support requires boost @@ -188,12 +174,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif - // ================================================================ + ////////////////////////////////////////////////////////////////////////// // Define ASSIMP_BUILD_SINGLETHREADED to compile assimp // without threading support. The library doesn't utilize // threads then, and is itself not threadsafe. // If this flag is specified, boost::threads is *not* required. - // ================================================================ // TODO #ifndef ASSIMP_BUILD_SINGLETHREADED @@ -204,25 +189,15 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # define AI_C_THREADSAFE #endif // !! ASSIMP_BUILD_SINGLETHREADED +#if (defined _DEBUG || defined DEBUG) // one of the two should be defined .. +# define ASSIMP_BUILD_DEBUG +#endif + // Make sure NULL is defined #ifndef NULL # define NULL 0 #endif -// Undefine the min/max macros defined by some platform headers -#undef min -#undef max - -// Concatenate two tokens after evaluating them -#define AI_CONCAT(a,b) a ## b - -// Helper macro that sets a pointer to NULL in debug builds -#if (defined _DEBUG) -# define AI_DEBUG_INVALIDATE_PTR(x) x = NULL; -#else -# define AI_DEBUG_INVALIDATE_PTR(x) -#endif - // Use our own definition of PI here #define AI_MATH_PI (3.1415926538) #define AI_MATH_TWO_PI (AI_MATH_PI * 2.0) @@ -232,4 +207,4 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define AI_DEG_TO_RAD(x) (x*0.0174532925f) #define AI_RAD_TO_DEG(x) (x*57.2957795f) -#endif // !! AI_DEFINES_H_INC +#endif // !! INCLUDED_AI_DEFINES_H diff --git a/include/aiVersion.h b/include/aiVersion.h new file mode 100644 index 000000000..d0b9cf8a3 --- /dev/null +++ b/include/aiVersion.h @@ -0,0 +1,104 @@ +/* +--------------------------------------------------------------------------- +Open Asset Import Library (ASSIMP) +--------------------------------------------------------------------------- + +Copyright (c) 2006-2008, ASSIMP Development Team + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following +conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the ASSIMP team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the ASSIMP Development Team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--------------------------------------------------------------------------- +*/ + +/** @file aiVersion.h + * @brief Functions to query the version of the Assimp runtime, check + * compile flags, ... + */ +#ifndef INCLUDED_AI_VERSION_H +#define INCLUDED_AI_VERSION_H + +#ifdef __cplusplus +extern "C" { +#endif + +// --------------------------------------------------------------------------- +/** @brief Returns a string with legal copyright and licensing information + * about Assimp. The string may include multiple lines. + * @return Pointer to static string. + */ +ASSIMP_API const char* aiGetLegalString (void); + +// --------------------------------------------------------------------------- +/** @brief Returns the current minor version number of Assimp. + * @return Minor version of the Assimp runtime the application was + * linked/built against + */ +ASSIMP_API unsigned int aiGetVersionMinor (void); + +// --------------------------------------------------------------------------- +/** @brief Returns the current major version number of Assimp. + * @return Major version of the Assimp runtime the application was + * linked/built against + */ +ASSIMP_API unsigned int aiGetVersionMajor (void); + +// --------------------------------------------------------------------------- +/** @brief Returns the repository revision of the Assimp runtime. + * @return SVN Repository revision number of the Assimp runtime the + * application was linked/built against + */ +ASSIMP_API unsigned int aiGetVersionRevision (void); + + +//! Assimp was compiled as a shared object (Windows: DLL) +#define ASSIMP_CFLAGS_SHARED 0x1 +//! Assimp was compiled against STLport +#define ASSIMP_CFLAGS_STLPORT 0x2 +//! Assimp was compiled as a debug build +#define ASSIMP_CFLAGS_DEBUG 0x4 + +//! Assimp was compiled with ASSIMP_BUILD_BOOST_WORKAROUND defined +#define ASSIMP_CFLAGS_NOBOOST 0x8 +//! Assimp was compiled with ASSIMP_BUILD_SINGLETHREADED defined +#define ASSIMP_CFLAGS_SINGLETHREADED 0x10 + +// --------------------------------------------------------------------------- +/** @brief Returns assimp's compile flags + * @return Any bitwise combination of the ASSIMP_CFLAGS_xxx constants. + */ +ASSIMP_API unsigned int aiGetCompileFlags (void); + +#ifdef __cplusplus +} // end extern "C" +#endif + +#endif // !! #ifndef INCLUDED_AI_VERSION_H \ No newline at end of file diff --git a/test/models/3DS/jeep1.3ds b/test/models/3DS/jeep1.3ds new file mode 100644 index 0000000000000000000000000000000000000000..9249f663a22ae7dbd1177284b8963b4cdf191aef GIT binary patch literal 68697 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
  • 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%0D%UPTd(vzZJFX*;V^GR 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 RnIqSlx5$_su==0n{{cs)1eyQ< literal 0 HcmV?d00001 diff --git a/test/unit/CCompilerTest.c b/test/unit/CCompilerTest.c index 02ceb3043..ca9cf14ca 100644 --- a/test/unit/CCompilerTest.c +++ b/test/unit/CCompilerTest.c @@ -4,4 +4,6 @@ #include #include #include +#include +#include #include \ No newline at end of file diff --git a/test/unit/UnitTestPCH.h b/test/unit/UnitTestPCH.h index 5338e975e..152db986f 100644 --- a/test/unit/UnitTestPCH.h +++ b/test/unit/UnitTestPCH.h @@ -1,8 +1,8 @@ -#ifndef ASSIMP_BUILD_SINGLETHREADED -# include -#endif +// #ifndef ASSIMP_BUILD_SINGLETHREADED +// # include +// #endif // Assimp public API #include diff --git a/workspaces/vc8/UnitTest.vcproj b/workspaces/vc8/UnitTest.vcproj index e195c3752..f5361bb60 100644 --- a/workspaces/vc8/UnitTest.vcproj +++ b/workspaces/vc8/UnitTest.vcproj @@ -48,7 +48,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -131,7 +131,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -211,7 +211,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\code;..\..\include" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -292,7 +292,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\code;..\..\include" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -372,7 +372,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\code;..\..\include" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -698,7 +698,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\code;..\..\include" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -779,7 +779,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\code;..\..\include" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -861,7 +861,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -944,7 +944,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -1026,7 +1026,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -1109,7 +1109,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -1189,7 +1189,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\code;..\..\include" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -1270,7 +1270,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\code;..\..\include" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" diff --git a/workspaces/vc8/assimp.vcproj b/workspaces/vc8/assimp.vcproj index 6882a19d9..0d03a0fb3 100644 --- a/workspaces/vc8/assimp.vcproj +++ b/workspaces/vc8/assimp.vcproj @@ -44,7 +44,7 @@ PreprocessorDefinitions="DEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="AssimpPCH.h" @@ -109,7 +109,7 @@ PreprocessorDefinitions="DEBUG, _SCL_SECURE_NO_WARNINGS, _CRT_SECURE_NO_WARNINGS,WIN32" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" WarningLevel="3" DebugInformationFormat="3" @@ -172,6 +172,7 @@ AdditionalIncludeDirectories="" PreprocessorDefinitions="NDEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32" StringPooling="true" + RuntimeLibrary="2" BufferSecurityCheck="false" EnableEnhancedInstructionSet="2" UsePrecompiledHeader="2" @@ -237,7 +238,7 @@ AdditionalIncludeDirectories="" PreprocessorDefinitions="NDEBUG, _SCL_SECURE_NO_WARNINGS, _CRT_SECURE_NO_WARNINGS,WIN32" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" BufferSecurityCheck="false" EnableEnhancedInstructionSet="0" UsePrecompiledHeader="2" @@ -301,7 +302,7 @@ AdditionalIncludeDirectories="" PreprocessorDefinitions="NDEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;ASSIMP_BUILD_DLL_EXPORT" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" BufferSecurityCheck="false" EnableEnhancedInstructionSet="2" UsePrecompiledHeader="2" @@ -603,6 +604,7 @@ AdditionalIncludeDirectories="" PreprocessorDefinitions="NDEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;ASSIMP_BUILD_BOOST_WORKAROUND" StringPooling="true" + RuntimeLibrary="2" BufferSecurityCheck="false" EnableEnhancedInstructionSet="2" UsePrecompiledHeader="2" @@ -668,7 +670,7 @@ AdditionalIncludeDirectories="" PreprocessorDefinitions="NDEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;ASSIMP_BUILD_BOOST_WORKAROUND" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" BufferSecurityCheck="false" EnableEnhancedInstructionSet="0" UsePrecompiledHeader="2" @@ -730,7 +732,7 @@ PreprocessorDefinitions="DEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;ASSIMP_BUILD_BOOST_WORKAROUND" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="AssimpPCH.h" @@ -794,7 +796,7 @@ PreprocessorDefinitions="DEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32;ASSIMP_BUILD_BOOST_WORKAROUND" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" WarningLevel="3" DebugInformationFormat="3" @@ -854,7 +856,7 @@ PreprocessorDefinitions="DEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" PrecompiledHeaderThrough="AssimpPCH.h" @@ -918,7 +920,7 @@ PreprocessorDefinitions="DEBUG, _SCL_SECURE_NO_WARNINGS, _CRT_SECURE_NO_WARNINGS,WIN32" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" WarningLevel="3" DebugInformationFormat="3" @@ -980,6 +982,7 @@ AdditionalIncludeDirectories="" PreprocessorDefinitions="NDEBUG;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN32" StringPooling="true" + RuntimeLibrary="2" BufferSecurityCheck="false" EnableEnhancedInstructionSet="2" UsePrecompiledHeader="2" @@ -1045,7 +1048,7 @@ AdditionalIncludeDirectories="" PreprocessorDefinitions="NDEBUG, _SCL_SECURE_NO_WARNINGS, _CRT_SECURE_NO_WARNINGS,WIN32" StringPooling="true" - RuntimeLibrary="0" + RuntimeLibrary="2" BufferSecurityCheck="false" EnableEnhancedInstructionSet="0" UsePrecompiledHeader="2" @@ -1175,6 +1178,10 @@ RelativePath="..\..\include\aiVector3D.inl" > + + diff --git a/workspaces/vc8/assimp_view.vcproj b/workspaces/vc8/assimp_view.vcproj index 8053e39cb..f9bdb8757 100644 --- a/workspaces/vc8/assimp_view.vcproj +++ b/workspaces/vc8/assimp_view.vcproj @@ -48,7 +48,7 @@ MinimalRebuild="true" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" WarningLevel="3" @@ -130,7 +130,7 @@ MinimalRebuild="true" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" WarningLevel="3" @@ -208,7 +208,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(DXSDK_DIR)include";..\..\include;..\..\code" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" WarningLevel="3" Detect64BitPortabilityProblems="true" @@ -290,7 +290,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(DXSDK_DIR)include";..\..\include;..\..\code" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" WarningLevel="3" Detect64BitPortabilityProblems="true" @@ -698,7 +698,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(DXSDK_DIR)include";..\..\include;..\..\code" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" WarningLevel="3" Detect64BitPortabilityProblems="true" @@ -781,7 +781,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(DXSDK_DIR)include";..\..\include;..\..\code" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" WarningLevel="3" Detect64BitPortabilityProblems="true" @@ -866,7 +866,7 @@ MinimalRebuild="true" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" WarningLevel="3" @@ -949,7 +949,7 @@ MinimalRebuild="true" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" WarningLevel="3" @@ -1030,7 +1030,7 @@ MinimalRebuild="true" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" WarningLevel="3" @@ -1112,7 +1112,7 @@ MinimalRebuild="true" BasicRuntimeChecks="3" SmallerTypeCheck="true" - RuntimeLibrary="1" + RuntimeLibrary="3" EnableFunctionLevelLinking="true" UsePrecompiledHeader="2" WarningLevel="3" @@ -1190,7 +1190,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(DXSDK_DIR)include";..\..\include;..\..\code" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" WarningLevel="3" Detect64BitPortabilityProblems="true" @@ -1272,7 +1272,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=""$(DXSDK_DIR)include";..\..\include;..\..\code" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS" - RuntimeLibrary="0" + RuntimeLibrary="2" UsePrecompiledHeader="2" WarningLevel="3" Detect64BitPortabilityProblems="true" diff --git a/workspaces/vc9_AgainNotUpToDate/UnitTest.vcproj b/workspaces/vc9_AgainNotUpToDate/UnitTest.vcproj index 6fd8e768a..14a8bc2ae 100644 --- a/workspaces/vc9_AgainNotUpToDate/UnitTest.vcproj +++ b/workspaces/vc9_AgainNotUpToDate/UnitTest.vcproj @@ -49,7 +49,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" BasicRuntimeChecks="3" - RuntimeLibrary="1" + RuntimeLibrary="3" UsePrecompiledHeader="2" PrecompiledHeaderThrough="UnitTestPCH.h" WarningLevel="3" @@ -100,88 +100,6 @@ Name="VCPostBuildEventTool" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1478,14 +1486,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1494,14 +1494,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1510,14 +1502,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1526,14 +1510,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1542,14 +1518,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1558,14 +1526,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1575,7 +1535,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -1626,14 +1626,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1642,14 +1634,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1658,14 +1642,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1674,14 +1650,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1690,14 +1658,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1707,7 +1667,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -1767,14 +1767,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1783,14 +1775,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1799,14 +1783,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1815,14 +1791,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1831,14 +1799,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1848,7 +1808,7 @@ /> + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1393,7 +1402,7 @@ > - - - @@ -1446,14 +1447,6 @@ UsePrecompiledHeader="0" /> - - - @@ -1478,6 +1471,22 @@ UsePrecompiledHeader="0" /> + + + + + + @@ -1922,6 +1931,14 @@ RelativePath="..\..\code\IRRLoader.h" > + + + + - - - @@ -2215,14 +2224,6 @@ PrecompiledHeaderThrough="AssimpPCH.h" /> - - - @@ -2250,122 +2251,12 @@ PrecompiledHeaderThrough="AssimpPCH.h" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1443,14 +1451,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1459,14 +1459,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1475,14 +1467,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1491,14 +1475,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1507,14 +1483,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1523,14 +1491,6 @@ UsePrecompiledHeader="1" /> - - - @@ -1540,7 +1500,7 @@ /> + + + + + + + + + + + + + + + + + + + @@ -150,8 +150,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -228,8 +229,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -307,8 +309,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -385,8 +388,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -464,8 +468,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -542,8 +547,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -621,8 +627,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -699,8 +706,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -778,8 +786,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -856,8 +865,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -935,8 +945,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -1013,8 +1024,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -1092,8 +1104,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -1170,8 +1183,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -1249,8 +1263,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -1327,8 +1342,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -1406,8 +1422,6 @@ SubSystem="2" OptimizeReferences="2" EnableCOMDATFolding="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> + @@ -1484,8 +1501,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="1" /> + @@ -1563,8 +1581,6 @@ AdditionalLibraryDirectories="$(SolutionDir)..\..\lib\assimp_$(ConfigurationName)_DLL_$(PlatformName)\" GenerateDebugInformation="true" SubSystem="2" - RandomizedBaseAddress="1" - DataExecutionPrevention="0" TargetMachine="17" /> +