- [SCONS] Added building of qhull and Solid from extern when selecting the Solid...
authorNathan Letwory <nathan@letworyinteractive.com>
Tue, 9 Mar 2004 21:14:03 +0000 (21:14 +0000)
committerNathan Letwory <nathan@letworyinteractive.com>
Tue, 9 Mar 2004 21:14:03 +0000 (21:14 +0000)
SConstruct
extern/SConscript [new file with mode: 0644]
extern/qhull/SConscript [new file with mode: 0644]
extern/solid/SConscript [new file with mode: 0644]

index fd70b923e7830edcd96e7e12f5f69257b8ba803f..68892353ec033755dd0d7e1df13c4826f7cb373b 100644 (file)
@@ -260,7 +260,7 @@ elif sys.platform == 'win32':
     defines += ['WITH_QUICKTIME']
     defines += ['_LIB', 'USE_OPENAL']
     warn_flags = []
-    platform_libs = [ 'qtmlClient', 'odelib', 'soundsystem',
+    platform_libs = [ 'qtmlClient', 'soundsystem',
                      'ws2_32', 'dxguid', 'vfw32', 'winmm',
                      'iconv', 'kernel32', 'user32', 'gdi32',
                      'winspool', 'comdlg32', 'advapi32', 'shell32',
@@ -310,7 +310,7 @@ elif sys.platform == 'win32':
     link_env.RES(['source/icons/winblender.rc'])
     window_system = 'WIN32'
     # SOLID library information
-    solid_lib = ['solid']
+    solid_lib = ['extern/solid']
     solid_libpath = ['#../lib/windows/solid/lib']
     solid_include = ['#../lib/windows/solid/include']
     qhull_lib = ['qhull']
@@ -821,6 +821,8 @@ Export ('platform_linkflags')
 Export ('user_options_dict')
 Export ('library_env')
 
+BuildDir (root_build_dir+'/extern', 'extern', duplicate=0)
+SConscript (root_build_dir+'extern/SConscript')
 BuildDir (root_build_dir+'/intern', 'intern', duplicate=0)
 SConscript (root_build_dir+'intern/SConscript')
 BuildDir (root_build_dir+'/source', 'source', duplicate=0)
@@ -900,10 +902,8 @@ if user_options_dict['BUILD_GAMEENGINE'] == 1:
                            'NG_loopbacknetwork'])
     if user_options_dict['USE_PHYSICS'] == 'solid':
         link_env.Append (LIBS=['PHY_Sumo'])
-        link_env.Append (LIBS=user_options_dict['SOLID_LIBRARY'])
-        link_env.Append (LIBPATH=user_options_dict['SOLID_LIBPATH'])
-        link_env.Append (LIBS=user_options_dict['QHULL_LIBRARY'])
-        link_env.Append (LIBPATH=user_options_dict['QHULL_LIBPATH'])
+        link_env.Append (LIBS=['extern_qhull',
+                               'extern_solid'])
     else:
         link_env.Append (LIBS=['PHY_Ode',
                                'PHY_Physics'])
diff --git a/extern/SConscript b/extern/SConscript
new file mode 100644 (file)
index 0000000..180c41b
--- /dev/null
@@ -0,0 +1,2 @@
+SConscript(['qhull/SConscript',
+            'solid/SConscript'])
\ No newline at end of file
diff --git a/extern/qhull/SConscript b/extern/qhull/SConscript
new file mode 100644 (file)
index 0000000..3af54e3
--- /dev/null
@@ -0,0 +1,26 @@
+qhull_env = Environment()
+
+# Import the C flags set in the SConstruct file
+Import ('cflags')
+Import ('defines')
+Import ('user_options_dict')
+qhull_env.Append (CCFLAGS = cflags)
+qhull_env.Append (CPPDEFINES = defines)
+
+source_files = ['src/geom.c',
+                'src/geom2.c',
+                'src/global.c',
+                'src/io.c',
+                'src/mem.c',
+                'src/merge.c',
+                'src/poly.c',
+                'src/poly2.c',
+                'src/qhull.c',
+                'src/qset.c',
+                'src/stat.c',
+                'src/user.c']
+
+qhull_env.Append (CPPPATH = ['include',
+                             'src'])
+
+qhull_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/extern_qhull', source=source_files)
diff --git a/extern/solid/SConscript b/extern/solid/SConscript
new file mode 100644 (file)
index 0000000..e23da8f
--- /dev/null
@@ -0,0 +1,65 @@
+import sys
+solid_env = Environment()
+
+# Import the C flags set in the SConstruct file
+#Import ('cflags')
+#Import ('cxxflags')
+#Import ('defines')
+Import ('user_options_dict')
+defines = ['USE_DOUBLES','QHULL', '_LIB']
+cflags = []
+cxxflags = []
+
+if sys.platform=='win32':
+    defines += ['WIN32','NDEBUG', '_WINDOWS', '_LIB']
+    cflags += ['/MT', '/W3', '/GX', '/O2']
+else:
+    print "################################################"
+    print 
+    print "Check if solid builds on your platform correctly"
+    print "Add your platform specific defines"
+    print "and cflags / cxxflags to the"
+    print "extern/solid/SConscript file"
+
+solid_env.Append (CCFLAGS = cflags)
+solid_env.Append (CPPFLAGS = cxxflags)
+
+solid_env.Append (CPPDEFINES = defines)
+
+solid_sources = ['src/DT_C-api.cpp',
+                'src/DT_Encounter.cpp',
+                'src/DT_Object.cpp',
+                'src/DT_RespTable.cpp',
+                'src/DT_Scene.cpp']
+
+convex_sources = ['src/convex/DT_Accuracy.cpp',
+                'src/convex/DT_Box.cpp',
+                'src/convex/DT_Cone.cpp',
+                'src/convex/DT_Convex.cpp',
+                'src/convex/DT_Cylinder.cpp',
+                'src/convex/DT_Facet.cpp',
+                'src/convex/DT_LineSegment.cpp',
+                'src/convex/DT_PenDepth.cpp',
+                'src/convex/DT_Point.cpp',
+                'src/convex/DT_Polyhedron.cpp',
+                'src/convex/DT_Polytope.cpp',
+                'src/convex/DT_Sphere.cpp',
+                'src/convex/DT_Triangle.cpp']
+                
+complex_sources = ['src/complex/DT_BBoxTree.cpp',
+                'src/complex/DT_Complex.cpp']
+
+broad_sources = ['src/broad/BP_C-api.cpp',
+                'src/broad/BP_EndpointList.cpp',
+                'src/broad/BP_Proxy.cpp',
+                'src/broad/BP_Scene.cpp']
+
+solid_env.Append (CPPPATH = ['include',
+                             'src',
+                             'src/broad',
+                             'src/complex',
+                             'src/convex',
+                             '../qhull/include'])
+source_files = solid_sources + convex_sources + complex_sources + broad_sources
+
+solid_env.Library (target='#'+user_options_dict['BUILD_DIR']+'/lib/extern_solid', source=source_files)