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)