[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14699] branches/soc-2008-mxcurioni: soc-2008-mxcurioni: lib3ds compiles as an external library
Maxime Curioni
maxime.curioni at gmail.com
Mon May 5 21:26:10 CEST 2008
Revision: 14699
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14699
Author: mxcurioni
Date: 2008-05-05 21:26:10 +0200 (Mon, 05 May 2008)
Log Message:
-----------
soc-2008-mxcurioni: lib3ds compiles as an external library
Modified Paths:
--------------
branches/soc-2008-mxcurioni/SConstruct
branches/soc-2008-mxcurioni/config/darwin-config.py
branches/soc-2008-mxcurioni/extern/SConscript
branches/soc-2008-mxcurioni/tools/Blender.py
Added Paths:
-----------
branches/soc-2008-mxcurioni/extern/freestyle/lib3ds/SConscript
Removed Paths:
-------------
branches/soc-2008-mxcurioni/extern/freestyle/SConscript
Modified: branches/soc-2008-mxcurioni/SConstruct
===================================================================
--- branches/soc-2008-mxcurioni/SConstruct 2008-05-05 19:19:27 UTC (rev 14698)
+++ branches/soc-2008-mxcurioni/SConstruct 2008-05-05 19:26:10 UTC (rev 14699)
@@ -269,7 +269,7 @@
print "clean dir %s"%(B.root_build_dir+dir)
shutil.rmtree(B.root_build_dir+dir)
for confile in ['extern/ffmpeg/config.mak', 'extern/x264/config.mak',
- 'extern/xvidcore/build/generic/platform.inc']:
+ 'extern/xvidcore/build/generic/platform.inc','extern/freestyle/lib3ds/Makefile']:
if os.path.exists(confile):
print "clean file %s"%confile
os.remove(confile)
Modified: branches/soc-2008-mxcurioni/config/darwin-config.py
===================================================================
--- branches/soc-2008-mxcurioni/config/darwin-config.py 2008-05-05 19:19:27 UTC (rev 14698)
+++ branches/soc-2008-mxcurioni/config/darwin-config.py 2008-05-05 19:26:10 UTC (rev 14699)
@@ -162,7 +162,7 @@
WITH_BF_FREESTYLE = 'true'
BF_FREESTYLE = '#extern/freestyle'
-BF_FREESTYLE_SRC = '${BF_FREESTYLE}/src'
+BF_FREESTYLE_SRC = '#source/blender/freestyle/src'
BF_SWIG = '${BF_FREESTYLE}/swig'
BF_LIB3DS = '${BF_FREESTYLE}/lib3ds'
BF_LIB3DS_LIB = 'extern_lib3ds'
Modified: branches/soc-2008-mxcurioni/extern/SConscript
===================================================================
--- branches/soc-2008-mxcurioni/extern/SConscript 2008-05-05 19:19:27 UTC (rev 14698)
+++ branches/soc-2008-mxcurioni/extern/SConscript 2008-05-05 19:26:10 UTC (rev 14699)
@@ -9,6 +9,9 @@
if env['WITH_BF_BULLET']:
SConscript(['bullet2/src/SConscript'])
+if env['WITH_BF_FREESTYLE']:
+ SConscript(['freestyle/lib3ds/SConscript'])
+
if env['WITH_BF_INTERNATIONAL']:
SConscript(['bFTGL/SConscript'])
Deleted: branches/soc-2008-mxcurioni/extern/freestyle/SConscript
===================================================================
Added: branches/soc-2008-mxcurioni/extern/freestyle/lib3ds/SConscript
===================================================================
--- branches/soc-2008-mxcurioni/extern/freestyle/lib3ds/SConscript (rev 0)
+++ branches/soc-2008-mxcurioni/extern/freestyle/lib3ds/SConscript 2008-05-05 19:26:10 UTC (rev 14699)
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+
+Import('env')
+
+root = "extern/freestyle/lib3ds"
+
+import sys
+import os
+import re
+import shutil
+
+from sets import Set
+
+lib3ds_env = env.Copy();
+lib3ds_env.Replace(CCFLAGS = '')
+lib3ds_env.Replace(BF_DEBUG_FLAGS = '')
+
+makevardef = re.compile('^([a-zA-Z0-9_-]+)[ \t]*(\+?)=(.*)')
+makevarsubst = re.compile('\$\(([^\)]+)\)')
+makeifeq = re.compile('if(n?)eq \(([^,]*),([^\)]*)\)')
+
+def makeparseblock(fp, variables):
+ pendingline = ''
+ while 1:
+ line = fp.readline()
+ if pendingline:
+ line = pendingline + line
+ pendingline = ''
+ if not line:
+ return
+ if line.endswith('\\\n'):
+ pendingline = line[:-2]
+ continue
+
+ i = line.find('#')
+ if i >= 0:
+ line = line[:i]
+
+ iter = makevarsubst.finditer(line[:])
+ for obj in iter:
+ (name) = obj.group(1)
+ s = ""
+ if name in variables:
+ s = variables[name]
+ line = line.replace('$(' + name + ')', s)
+
+ matchobj = makevardef.match(line)
+ if matchobj:
+ (name, op, value) = matchobj.group(1, 2, 3)
+
+ value = value.rstrip()
+
+ if op == '+' and name in variables:
+ variables[name] += value
+ else:
+ variables[name] = value
+ continue
+ matchobj = makeifeq.match(line)
+ if matchobj:
+ (op, name1, name2) = matchobj.group(1, 2, 3)
+ if (op == '' and name1 == name2) or (op == 'n' and name1 != name2):
+ makeparseblock(fp, variables)
+ else:
+ tempvars = {}
+ makeparseblock(fp, tempvars)
+ continue
+ line = line.strip()
+ if line == 'endif':
+ return
+
+def getmakevars(filenames):
+ variables = { }
+ for filename in filenames:
+ fp = open(filename)
+ print "Processing makefile: " + filename
+ try:
+ makeparseblock(fp, variables)
+ finally:
+ fp.close()
+
+ return variables
+
+print "Configuring lib3ds..."
+
+# Configure
+os.chdir(root);
+
+if not os.path.isfile("Makefile"):
+ os.system("sh -c './configure'")
+else:
+ print "(skipped, Makefile already exists)"
+
+# Makefile parsing
+vars = getmakevars(['lib3ds/Makefile'])
+srcs = vars['lib3ds_la_SOURCES']
+sources_temp = list(Set(srcs.split()))
+
+sources = []
+for source in sources_temp:
+ sources.append("lib3ds/" + source)
+
+defs = ''
+cflags = ''
+
+print sources
+
+##################
+lib3ds_env.BlenderLib (libname="extern_lib3ds", sources=sources,
+ includes=["."],
+ defines=Split(defs),
+ libtype=['blender'],
+ priority = [1],
+ compileflags = Split(cflags))
Modified: branches/soc-2008-mxcurioni/tools/Blender.py
===================================================================
--- branches/soc-2008-mxcurioni/tools/Blender.py 2008-05-05 19:19:27 UTC (rev 14698)
+++ branches/soc-2008-mxcurioni/tools/Blender.py 2008-05-05 19:26:10 UTC (rev 14699)
@@ -163,7 +163,7 @@
syslibs += Split(lenv['BF_OPENEXR_LIB'])
if lenv['WITH_BF_FFMPEG']:
syslibs += Split(lenv['BF_FFMPEG_LIB'])
- if lenv['WITH_BF_FREESTYLE']:
+ if lenv['WITH_BF_FREESTYLE']:
syslibs += Split(lenv['BF_LIB3DS_LIB'])
syslibs += Split(lenv['BF_SDL_LIB'])
if not lenv['WITH_BF_STATICOPENGL']:
More information about the Bf-blender-cvs
mailing list