Make blender compilable by gcc-4.7 and strict compilation flags:
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 14 May 2012 13:31:38 +0000 (13:31 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 14 May 2012 13:31:38 +0000 (13:31 +0000)
- Remove strict flags from files, which are using FFmpeg stuff
  We're still using some symbols which are marked as deprecated.
  Ideally, we shall switch to new API, but it's a bit larger challenge
  because we don't want to break compatibility withotu actual need.
- Replace MAKE_ID with BT_MAKE_ID in bullet library.
  This is needed to prevent re-definition of MAKE_ID in bullet library.
  Seems it's only used to read blender files, so should be quite safe
  change.

extern/bullet2/patches/make_id.patch [new file with mode: 0644]
extern/bullet2/readme.txt
extern/bullet2/src/LinearMath/btSerializer.h
intern/audaspace/CMakeLists.txt
source/gameengine/VideoTexture/CMakeLists.txt

diff --git a/extern/bullet2/patches/make_id.patch b/extern/bullet2/patches/make_id.patch
new file mode 100644 (file)
index 0000000..959e578
--- /dev/null
@@ -0,0 +1,42 @@
+Index: src/LinearMath/btSerializer.h
+===================================================================
+--- src/LinearMath/btSerializer.h      (revision 46625)
++++ src/LinearMath/btSerializer.h      (working copy)
+@@ -106,23 +106,23 @@
+ #define BT_HEADER_LENGTH 12
+ #if defined(__sgi) || defined (__sparc) || defined (__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__)
+-#     define MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) )
++#     define BT_MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) )
+ #else
+-#     define MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) )
++#     define BT_MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) )
+ #endif
+-#define BT_SOFTBODY_CODE              MAKE_ID('S','B','D','Y')
+-#define BT_COLLISIONOBJECT_CODE MAKE_ID('C','O','B','J')
+-#define BT_RIGIDBODY_CODE             MAKE_ID('R','B','D','Y')
+-#define BT_CONSTRAINT_CODE            MAKE_ID('C','O','N','S')
+-#define BT_BOXSHAPE_CODE              MAKE_ID('B','O','X','S')
+-#define BT_QUANTIZED_BVH_CODE MAKE_ID('Q','B','V','H')
+-#define BT_TRIANLGE_INFO_MAP  MAKE_ID('T','M','A','P')
+-#define BT_SHAPE_CODE                 MAKE_ID('S','H','A','P')
+-#define BT_ARRAY_CODE                 MAKE_ID('A','R','A','Y')
+-#define BT_SBMATERIAL_CODE            MAKE_ID('S','B','M','T')
+-#define BT_SBNODE_CODE                        MAKE_ID('S','B','N','D')
+-#define BT_DNA_CODE                           MAKE_ID('D','N','A','1')
++#define BT_SOFTBODY_CODE              BT_MAKE_ID('S','B','D','Y')
++#define BT_COLLISIONOBJECT_CODE BT_MAKE_ID('C','O','B','J')
++#define BT_RIGIDBODY_CODE             BT_MAKE_ID('R','B','D','Y')
++#define BT_CONSTRAINT_CODE            BT_MAKE_ID('C','O','N','S')
++#define BT_BOXSHAPE_CODE              BT_MAKE_ID('B','O','X','S')
++#define BT_QUANTIZED_BVH_CODE BT_MAKE_ID('Q','B','V','H')
++#define BT_TRIANLGE_INFO_MAP  BT_MAKE_ID('T','M','A','P')
++#define BT_SHAPE_CODE                 BT_MAKE_ID('S','H','A','P')
++#define BT_ARRAY_CODE                 BT_MAKE_ID('A','R','A','Y')
++#define BT_SBMATERIAL_CODE            BT_MAKE_ID('S','B','M','T')
++#define BT_SBNODE_CODE                        BT_MAKE_ID('S','B','N','D')
++#define BT_DNA_CODE                           BT_MAKE_ID('D','N','A','1')
+ struct        btPointerUid
index 02430cb5c0e2c35485c61c097cda47740ea96e72..e2546b049e38147b48e666d35182a7a8201c99dd 100644 (file)
@@ -15,3 +15,7 @@ Once that is done all build systems can be updated to use/build extern/bullet2 f
 Questions? mail blender at erwincoumans.com, or check the bf-blender mailing list.
 Thanks,
 Erwin
+
+Apply patches/make_id.patch to prevent duplicated define of MAKE_ID macro in blender
+side and bullet side.
+Sergey
index 8a89374c61256144cb6fcc75d8fe3b7312dba378..52520d72b9effc792c29c77c417f4db316eae385 100644 (file)
@@ -106,23 +106,23 @@ public:
 
 #define BT_HEADER_LENGTH 12
 #if defined(__sgi) || defined (__sparc) || defined (__sparc__) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__)
-#      define MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) )
+#      define BT_MAKE_ID(a,b,c,d) ( (int)(a)<<24 | (int)(b)<<16 | (c)<<8 | (d) )
 #else
-#      define MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) )
+#      define BT_MAKE_ID(a,b,c,d) ( (int)(d)<<24 | (int)(c)<<16 | (b)<<8 | (a) )
 #endif
 
-#define BT_SOFTBODY_CODE               MAKE_ID('S','B','D','Y')
-#define BT_COLLISIONOBJECT_CODE MAKE_ID('C','O','B','J')
-#define BT_RIGIDBODY_CODE              MAKE_ID('R','B','D','Y')
-#define BT_CONSTRAINT_CODE             MAKE_ID('C','O','N','S')
-#define BT_BOXSHAPE_CODE               MAKE_ID('B','O','X','S')
-#define BT_QUANTIZED_BVH_CODE  MAKE_ID('Q','B','V','H')
-#define BT_TRIANLGE_INFO_MAP   MAKE_ID('T','M','A','P')
-#define BT_SHAPE_CODE                  MAKE_ID('S','H','A','P')
-#define BT_ARRAY_CODE                  MAKE_ID('A','R','A','Y')
-#define BT_SBMATERIAL_CODE             MAKE_ID('S','B','M','T')
-#define BT_SBNODE_CODE                 MAKE_ID('S','B','N','D')
-#define BT_DNA_CODE                            MAKE_ID('D','N','A','1')
+#define BT_SOFTBODY_CODE               BT_MAKE_ID('S','B','D','Y')
+#define BT_COLLISIONOBJECT_CODE BT_MAKE_ID('C','O','B','J')
+#define BT_RIGIDBODY_CODE              BT_MAKE_ID('R','B','D','Y')
+#define BT_CONSTRAINT_CODE             BT_MAKE_ID('C','O','N','S')
+#define BT_BOXSHAPE_CODE               BT_MAKE_ID('B','O','X','S')
+#define BT_QUANTIZED_BVH_CODE  BT_MAKE_ID('Q','B','V','H')
+#define BT_TRIANLGE_INFO_MAP   BT_MAKE_ID('T','M','A','P')
+#define BT_SHAPE_CODE                  BT_MAKE_ID('S','H','A','P')
+#define BT_ARRAY_CODE                  BT_MAKE_ID('A','R','A','Y')
+#define BT_SBMATERIAL_CODE             BT_MAKE_ID('S','B','M','T')
+#define BT_SBNODE_CODE                 BT_MAKE_ID('S','B','N','D')
+#define BT_DNA_CODE                            BT_MAKE_ID('D','N','A','1')
 
 
 struct btPointerUid
index c3a4c130f88516d09d5b90b8b1f2839ad58db6d7..dc4ca7903cd4409bdf0a2fe3ebebab6d3976ad8b 100644 (file)
@@ -193,6 +193,12 @@ if(WITH_CODEC_FFMPEG)
                ffmpeg/AUD_FFMPEGReader.h
                ffmpeg/AUD_FFMPEGWriter.h
        )
+
+       remove_strict_flags_file(
+               ffmpeg/AUD_FFMPEGFactory.cpp
+               ffmpeg/AUD_FFMPEGReader.cpp
+               ffmpeg/AUD_FFMPEGWriter.cpp
+       )
 endif()
 
 if(WITH_SDL)
index 3e8dcaffcfe3cb9ac6173fface9d35c9eaafdda2..f436fecf6b766532f0e702924edb00a87d8e5a5a 100644 (file)
@@ -96,6 +96,10 @@ if(WITH_CODEC_FFMPEG)
                ${PTHREADS_INCLUDE_DIRS}
        )
        add_definitions(-DWITH_FFMPEG)
+
+       remove_strict_flags_file(
+               VideoFFmpeg.cpp
+       )
 endif()
 
 blender_add_lib(ge_videotex "${SRC}" "${INC}" "${INC_SYS}")