From 3081f4a6355b495f167151fb269dd16fa4f9f24e Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 9 Mar 2004 21:14:03 +0000 Subject: [PATCH] - [SCONS] Added building of qhull and Solid from extern when selecting the Solid gameengine. The gameengine has not been updated with the Tuhopuu2 one, so it is not wise to do that yet. This is in preparation for that and won't effect the current build process. --- SConstruct | 12 ++++---- extern/SConscript | 2 ++ extern/qhull/SConscript | 26 +++++++++++++++++ extern/solid/SConscript | 65 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 extern/SConscript create mode 100644 extern/qhull/SConscript create mode 100644 extern/solid/SConscript diff --git a/SConstruct b/SConstruct index fd70b923e78..68892353ec0 100644 --- a/SConstruct +++ b/SConstruct @@ -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 index 00000000000..180c41b5c40 --- /dev/null +++ b/extern/SConscript @@ -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 index 00000000000..3af54e31e62 --- /dev/null +++ b/extern/qhull/SConscript @@ -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 index 00000000000..e23da8f59ee --- /dev/null +++ b/extern/solid/SConscript @@ -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)