[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31588] trunk/blender: Patch [#23389] Add authorship information to exported COLLADA files

Nathan Letwory nathan at letworyinteractive.com
Thu Aug 26 08:58:33 CEST 2010


Revision: 31588
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31588
Author:   jesterking
Date:     2010-08-26 08:58:32 +0200 (Thu, 26 Aug 2010)

Log Message:
-----------
Patch [#23389] Add authorship information to exported COLLADA files
Contributed by Imran Syed (freakabcd).

This adds basic authoring tool and author info ("Blender User" for now).

NOTE: Linux and OSX users need now to update their OpenCOLLADA libs - Blender should now compile fine with their latest revision.

Made some changes to the original patch to ensure linking is done correctly.
Some small cleanups for scons too.

Modified Paths:
--------------
    trunk/blender/SConstruct
    trunk/blender/build_files/scons/tools/Blender.py
    trunk/blender/source/blender/collada/CMakeLists.txt
    trunk/blender/source/blender/collada/DocumentExporter.cpp
    trunk/blender/source/blender/collada/SConscript

Modified: trunk/blender/SConstruct
===================================================================
--- trunk/blender/SConstruct	2010-08-26 01:05:37 UTC (rev 31587)
+++ trunk/blender/SConstruct	2010-08-26 06:58:32 UTC (rev 31588)
@@ -406,12 +406,12 @@
 thesyslibs = B.setup_syslibs(env)
 
 if 'blender' in B.targets or not env['WITH_BF_NOBLENDER']:
-	env.BlenderProg(B.root_build_dir, "blender", dobj + mainlist + thestatlibs, [], thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender')
+	env.BlenderProg(B.root_build_dir, "blender", mainlist + thestatlibs + dobj, thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender')
 if env['WITH_BF_PLAYER']:
 	playerlist = B.create_blender_liblist(env, 'player')
 	playerlist += B.create_blender_liblist(env, 'intern')
 	playerlist += B.create_blender_liblist(env, 'extern')
-	env.BlenderProg(B.root_build_dir, "blenderplayer", dobj + playerlist, [], thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer')
+	env.BlenderProg(B.root_build_dir, "blenderplayer",  playerlist, thestatlibs + dobj + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer')
 
 ##### Now define some targets
 

Modified: trunk/blender/build_files/scons/tools/Blender.py
===================================================================
--- trunk/blender/build_files/scons/tools/Blender.py	2010-08-26 01:05:37 UTC (rev 31587)
+++ trunk/blender/build_files/scons/tools/Blender.py	2010-08-26 06:58:32 UTC (rev 31588)
@@ -724,7 +724,7 @@
 		# note: libs is a global
 		add_lib_to_dict(self, libs, libtype, libname, priority)
 
-	def BlenderProg(self=None, builddir=None, progname=None, sources=None, includes=None, libs=None, libpath=None, binarykind=''):
+	def BlenderProg(self=None, builddir=None, progname=None, sources=None, libs=None, libpath=None, binarykind=''):
 		global vcp
 		print bc.HEADER+'Configuring program '+bc.ENDC+bc.OKGREEN+progname+bc.ENDC
 		lenv = self.Clone()
@@ -750,7 +750,6 @@
 			lenv.Append(LINKFLAGS = lenv['BF_OPENGL_LINKFLAGS'])
 		if lenv['BF_PROFILE']:
 			lenv.Append(LINKFLAGS = lenv['BF_PROFILE_LINKFLAGS'])
-		lenv.Append(CPPPATH=includes)
 		if root_build_dir[0]==os.sep or root_build_dir[1]==':':
 			lenv.Append(LIBPATH=root_build_dir + '/lib')
 		lenv.Append(LIBPATH=libpath)

Modified: trunk/blender/source/blender/collada/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/collada/CMakeLists.txt	2010-08-26 01:05:37 UTC (rev 31587)
+++ trunk/blender/source/blender/collada/CMakeLists.txt	2010-08-26 06:58:32 UTC (rev 31588)
@@ -61,4 +61,8 @@
 
 ENDIF(APPLE)
 
-BLENDERLIB(bf_collada "${SRC}" "${INC}")
+IF(WITH_BUILDINFO)
+	ADD_DEFINITIONS(-DNAN_BUILDINFO)
+ENDIF(WITH_BUILDINFO)
+
+BLENDERLIB(bf_collada "${SRC}" "${INC}")
\ No newline at end of file

Modified: trunk/blender/source/blender/collada/DocumentExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/DocumentExporter.cpp	2010-08-26 01:05:37 UTC (rev 31587)
+++ trunk/blender/source/blender/collada/DocumentExporter.cpp	2010-08-26 06:58:32 UTC (rev 31588)
@@ -48,10 +48,14 @@
 #include "BLI_path_util.h"
 #include "BLI_fileops.h"
 #include "ED_keyframing.h"
+#ifdef NAN_BUILDINFO
+extern char build_rev[];
+#endif
 }
 
 #include "MEM_guardedalloc.h"
 
+#include "BKE_blender.h" // version info
 #include "BKE_scene.h"
 #include "BKE_global.h"
 #include "BKE_main.h"
@@ -1296,7 +1300,7 @@
 		int offset = 0;
 		input.push_back(COLLADASW::Input(COLLADASW::JOINT, // constant declared in COLLADASWInputList.h
 										 COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, joints_source_id), offset++));
-        input.push_back(COLLADASW::Input(COLLADASW::WEIGHT,
+		input.push_back(COLLADASW::Input(COLLADASW::WEIGHT,
 										 COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, weights_source_id), offset++));
 
 		weights.setCount(me->totvert);
@@ -1719,11 +1723,7 @@
 				// most widespread de-facto standard.
 				texture.setProfileName("FCOLLADA");
 				texture.setChildElementName("bump");				
-#ifdef WIN32	// currently, Windows builds are using revision 746 of OpenCollada while Linux and Mac are using an older revision 721
 				ep.addExtraTechniqueColorOrTexture(COLLADASW::ColorOrTexture(texture));
-#else
-				ep.setExtraTechniqueColorOrTexture(COLLADASW::ColorOrTexture(texture));
-#endif
 			}
 		}
 		// performs the actual writing
@@ -2536,6 +2536,15 @@
 	// XXX ask blender devs about this?
 	asset.setUnit("decimetre", 0.1);
 	asset.setUpAxisType(COLLADASW::Asset::Z_UP);
+	// TODO: need an Author field in userpref
+	asset.getContributor().mAuthor = "Blender User";
+#ifdef NAN_BUILDINFO
+	char version_buf[128];
+	sprintf(version_buf, "Blender %d.%02d.%d r%s", BLENDER_VERSION/100, BLENDER_VERSION%100, BLENDER_SUBVERSION, build_rev);
+	asset.getContributor().mAuthoringTool = version_buf;
+#else
+	asset.getContributor().mAuthoringTool = "Blender 2.5x";
+#endif
 	asset.add();
 	
 	// <library_cameras>
@@ -2596,4 +2605,3 @@
 * AnimationExporter::sample_animation enables all curves on armature, this is undesirable for a user
 
  */
-

Modified: trunk/blender/source/blender/collada/SConscript
===================================================================
--- trunk/blender/source/blender/collada/SConscript	2010-08-26 01:05:37 UTC (rev 31587)
+++ trunk/blender/source/blender/collada/SConscript	2010-08-26 06:58:32 UTC (rev 31588)
@@ -28,6 +28,7 @@
 Import ('env')
 
 sources = env.Glob('*.cpp')
+defs = []
 
 # relative paths to include dirs, space-separated, string
 if  env['OURPLATFORM']=='darwin':
@@ -35,5 +36,7 @@
 else:
 	incs = '../blenlib ../blenkernel ../windowmanager ../makesdna ../makesrna ../editors/include ../../../intern/guardedalloc [OPENCOLLADA]/COLLADAStreamWriter/include [OPENCOLLADA]/COLLADABaseUtils/include [OPENCOLLADA]/COLLADAFramework/include [OPENCOLLADA]/COLLADASaxFrameworkLoader/include '.replace('[OPENCOLLADA]', env['BF_OPENCOLLADA_INC'])
 
-env.BlenderLib ('bf_collada', sources, Split(incs), [], libtype='core', priority=200 )
+if env['BF_BUILDINFO']:
+	defs.append('NAN_BUILDINFO')
 
+env.BlenderLib ('bf_collada', sources, Split(incs), defs, libtype='core', priority=200 )





More information about the Bf-blender-cvs mailing list