Fix issue in Rocket.lua script.
[Cafu-Engine.git] / Libs / SConscript
blobf51791efd47f34f3808a81ae541ee7a80f1f1393
1 import os, sys, platform
3 Import('env', 'compiler')
6 env.StaticLibrary(
7     target="cfsLib",
8     source=Split("""Bitmap/Bitmap.cpp Bitmap/jdatasrc.cpp
9                     ConsoleCommands/ConVar.cpp ConsoleCommands/ConFunc.cpp
10                     ConsoleCommands/ConsoleInterpreterImpl.cpp ConsoleCommands/ConsoleInterpreter_LuaBinding.cpp
11                     ConsoleCommands/Console.cpp ConsoleCommands/Console_Lua.cpp ConsoleCommands/ConsoleComposite.cpp ConsoleCommands/ConsoleStdout.cpp ConsoleCommands/ConsoleStringBuffer.cpp ConsoleCommands/ConsoleWarningsOnly.cpp ConsoleCommands/ConsoleFile.cpp
12                     Fonts/Font.cpp Fonts/FontTT.cpp
13                     FileSys/FileManImpl.cpp FileSys/FileSys_LocalPath.cpp FileSys/FileSys_ZipArchive_GV.cpp FileSys/File_local.cpp FileSys/File_memory.cpp FileSys/Password.cpp
14                     MainWindow/glfwLibrary.cpp MainWindow/glfwMainWindow.cpp MainWindow/glfwMonitor.cpp MainWindow/glfwWindow.cpp
15                     MapFile.cpp
16                     Models/Loader.cpp Models/Loader_ase.cpp Models/Loader_cmdl.cpp Models/Loader_dlod.cpp Models/Loader_dummy.cpp Models/Loader_lwo.cpp Models/Loader_md5.cpp
17                     Models/Loader_mdl.cpp Models/Loader_mdl_hl1.cpp Models/Loader_mdl_hl2.cpp Models/Loader_mdl_hl2_vtf.cpp Models/AnimExpr.cpp Models/AnimPose.cpp
18                     Models/Model_cmdl.cpp Models/ModelManager.cpp
19                     Network/Network.cpp Network/State.cpp ParticleEngine/ParticleEngineMS.cpp PlatformAux.cpp Terrain/Terrain.cpp
20                     TextParser/TextParser.cpp
21                     Plants/Tree.cpp Plants/PlantDescription.cpp Plants/PlantDescrMan.cpp
22                     Util/Util.cpp
23                     Win32/Win32PrintHelp.cpp
24                     DebugLog.cpp PhysicsWorld.cpp TypeSys.cpp UniScriptState.cpp Variables.cpp VarVisitorsLua.cpp""")+
25            Glob("GameSys/*.cpp")+Glob("GameSys/HumanPlayer/*.cpp")+
26            Glob("GuiSys/*.cpp")+
27            Glob("Math3D/*.cpp"),
28     CPPPATH=env['CPPPATH'] + ["#/ExtLibs/bullet/src", "#/ExtLibs/glfw/include", "#/ExtLibs/lua/src", "#/ExtLibs/lwo", "#/ExtLibs/jpeg"])
32 # TODO: Either integrate this into cfsLib above or integrate the above model loaders here.
33 envModelLoaders = env.Clone()
35 if sys.platform == "win32":
36     # The next two lines are mirrored in ./SConscript.
37     fbx_lib_path = "#/ExtLibs/fbx/lib/" + \
38         {"vc8": "vs2005", "vc9": "vs2008", "vc10": "vs2010", "vc11": "vs2012", "vc12": "vs2013", "vc14": "vs2015"}[compiler]
40     if os.path.exists(Dir("#/ExtLibs/fbx/include").abspath) and os.path.exists(Dir(fbx_lib_path).abspath):
41         envModelLoaders.Append(CPPDEFINES=["HAVE_FBX_SDK"])
42         envModelLoaders.Append(CPPPATH=["#/ExtLibs/fbx/include"])
43 elif sys.platform.startswith("linux"):
44     if os.path.exists(Dir("#/ExtLibs/fbx/include").abspath):
45         envModelLoaders.Append(CPPDEFINES=["HAVE_FBX_SDK"])
46         envModelLoaders.Append(CPPPATH=["#/ExtLibs/fbx/include"])
48 envModelLoaders.StaticLibrary("ModelLoaders", ["Models/Loader_fbx.cpp"])
52 env.StaticLibrary(
53     target="ClipSys",
54     source=Split("""ClipSys/CollisionModel_static.cpp ClipSys/CollisionModel_static_BulletAdapter.cpp ClipSys/CollisionModelMan_impl.cpp
55                     ClipSys/ClipModel.cpp ClipSys/ClipWorld.cpp ClipSys/TraceSolid.cpp"""),
56     CPPPATH=env['CPPPATH']+["#/ExtLibs/bullet/src"])
60 env.StaticLibrary(
61     target="MatSys",
62     source=Split("""MaterialSystem/Expression.cpp MaterialSystem/MapComposition.cpp MaterialSystem/Material.cpp
63                     MaterialSystem/MaterialManagerImpl.cpp MaterialSystem/Renderer.cpp MaterialSystem/TextureMap.cpp"""))
67 env.StaticLibrary(
68     target="SoundSys",
69     source=Split("""SoundSystem/SoundShaderManagerImpl.cpp SoundSystem/SoundShader.cpp"""))
73 env.StaticLibrary(
74     target="SceneGraph",
75     source=Split("""SceneGraph/_aux.cpp SceneGraph/BezierPatchNode.cpp SceneGraph/BspTreeNode.cpp SceneGraph/FaceNode.cpp
76                     SceneGraph/LightMapMan.cpp SceneGraph/Node.cpp SceneGraph/SHLMapMan.cpp SceneGraph/TerrainNode.cpp
77                     SceneGraph/PlantNode.cpp SceneGraph/ModelNode.cpp"""))
81 envRenderers = env.Clone()
83 MatSys_CommonObjectsList = envRenderers.SharedObject(["MaterialSystem/Common/DepRelMatrix.cpp", "MaterialSystem/Common/OpenGLState.cpp", "MaterialSystem/Common/OpenGLEx.cpp"])
85 if sys.platform.startswith("linux"):
86     envRenderers.Append(LINKFLAGS=["Libs/MaterialSystem/Common/linker-script"])
90 if sys.platform=="win32":
91     LibList=Split("cfsLib png cfs_jpeg z MatSys opengl32.lib glu32.lib")
92 else:
93     LibList=["GLU"]
95 envRenderers.SharedLibrary(
96     target="MaterialSystem/RendererARBprogs",
97     source=[os.path.join("MaterialSystem/RendererARBprogs", x) for x in Split("""
98                RendererARBprogs.cpp RendererImpl.cpp RenderMaterial.cpp Shader.cpp TextureMapImpl.cpp
100                Shaders/A_Terrain.cpp Shaders/A_Diff.cpp Shaders/A_Diff_Luma.cpp Shaders/A_Diff_Norm.cpp Shaders/A_Diff_Norm_Luma.cpp
101                Shaders/A_Diff_Light.cpp Shaders/A_Diff_Light_Luma.cpp Shaders/A_Diff_Light_Norm.cpp Shaders/A_Diff_Light_Norm_Spec.cpp
102                Shaders/A_Diff_Light_Norm_Luma.cpp Shaders/A_Diff_Light_Norm_Luma_Spec.cpp
103                Shaders/A_SkyDome.cpp Shaders/A_Solid.cpp Shaders/A_WaterCubeReflect.cpp
104                Shaders/L_Diff.cpp Shaders/L_Diff_Spec.cpp Shaders/L_Diff_Norm.cpp Shaders/L_Diff_Norm_Spec.cpp
105                Shaders/StencilShadowVolumes.cpp
106                Shaders/_CommonHelpers.cpp""")] +
107            MatSys_CommonObjectsList,
108     LIBS=LibList)
112 if not platform.machine().startswith("arm"):
113     LibPath="#/ExtLibs/Cg/lib"
114     if sys.platform=="win32":
115         LibList=Split("cfsLib png cfs_jpeg z MatSys opengl32.lib glu32.lib cg cgGL")
116         if envRenderers["TARGET_ARCH"]!="x86": LibPath += ".x64"
117     elif sys.platform.startswith("linux"):
118         LibList=Split("Cg CgGL GLU")
119         if platform.machine()=="x86_64": LibPath += ".x64"
120     else:
121         LibList=[]
123     envRenderers.SharedLibrary(
124         target="MaterialSystem/RendererCgARB1",
125         source=[os.path.join("MaterialSystem/RendererCgARB1", x) for x in Split("""
126                    RendererCgARB1.cpp RendererImpl.cpp RenderMaterial.cpp Shader.cpp TextureMapImpl.cpp
128                    Shaders/A_Terrain.cpp Shaders/A_Diff.cpp Shaders/A_Diff_Luma.cpp Shaders/A_Diff_Norm.cpp Shaders/A_Diff_Norm_Luma.cpp
129                    Shaders/A_Diff_Light.cpp Shaders/A_Diff_Light_Luma.cpp Shaders/A_Diff_Light_Norm.cpp Shaders/A_Diff_Light_Norm_Luma.cpp
130                    Shaders/A_SkyDome.cpp Shaders/A_Solid.cpp Shaders/A_WaterCubeReflect.cpp Shaders/L_Diff.cpp Shaders/L_Diff_Spec.cpp
131                    Shaders/L_Diff_Norm.cpp Shaders/L_Diff_Norm_Spec.cpp Shaders/StencilShadowVolumes.cpp Shaders/_CommonCgHelpers.cpp""")] +
132                MatSys_CommonObjectsList,
133         CPPPATH=env['CPPPATH']+["#/ExtLibs/Cg/include"],
134         LIBPATH=env['LIBPATH']+[LibPath],
135         LIBS=LibList)
139 if not platform.machine().startswith("arm"):
140     LibPath="#/ExtLibs/Cg/lib"
141     if sys.platform=="win32":
142         LibList=Split("cfsLib png cfs_jpeg z MatSys opengl32.lib glu32.lib cg cgGL")
143         if envRenderers["TARGET_ARCH"]!="x86": LibPath += ".x64"
144     elif sys.platform.startswith("linux"):
145         LibList=Split("Cg CgGL GLU")
146         if platform.machine()=="x86_64": LibPath += ".x64"
147     else:
148         LibList=[]
150     envRenderers.SharedLibrary(
151         target="MaterialSystem/RendererCgNV2X",
152         source=[os.path.join("MaterialSystem/RendererCgNV2X", x) for x in Split("""
153                    RendererCgNV2X.cpp RendererImpl.cpp RenderMaterial.cpp Shader.cpp TextureMapImpl.cpp
155                    Shaders/A_Terrain.cpp Shaders/A_Diff.cpp Shaders/A_Diff_Luma.cpp Shaders/A_Diff_Norm.cpp Shaders/A_Diff_Norm_Luma.cpp
156                    Shaders/A_Diff_Light.cpp Shaders/A_Diff_Light_Luma.cpp Shaders/A_Diff_Light_Norm.cpp Shaders/A_Diff_Light_Norm_Luma.cpp
157                    Shaders/A_SkyDome.cpp Shaders/A_Solid.cpp Shaders/A_WaterCubeReflect.cpp Shaders/L_Diff.cpp Shaders/L_Diff_Spec.cpp
158                    Shaders/L_Diff_Norm_oSpec.cpp Shaders/StencilShadowVolumes.cpp Shaders/_CommonCgHelpers.cpp""")] +
159                MatSys_CommonObjectsList,
160         CPPPATH=env['CPPPATH']+["#/ExtLibs/Cg/include"],
161         LIBPATH=env['LIBPATH']+[LibPath],
162         LIBS=LibList)
166 if sys.platform=="win32":
167     LibList=Split("cfsLib MatSys")
168 else:
169     LibList=[]
171 envRenderers.SharedLibrary(
172     target="MaterialSystem/RendererNull",
173     source=[os.path.join("MaterialSystem/RendererNull", x) for x in Split("""RendererNull.cpp RendererImpl.cpp TextureMapImpl.cpp""")],
174     LIBS=LibList)
178 if sys.platform=="win32":
179     LibList=Split("cfsLib png cfs_jpeg z MatSys opengl32.lib glu32.lib")
180 else:
181     LibList=["GLU"]
183 envRenderers.SharedLibrary(
184     target="MaterialSystem/RendererOpenGL12",
185     source=[os.path.join("MaterialSystem/RendererOpenGL12", x) for x in Split("""
186                RendererImpl.cpp RendererOpenGL12.cpp RenderMaterial.cpp Shader.cpp TextureMapImpl.cpp
188                Shaders/A_Diff_Light_Fog.cpp Shaders/A_Diff_Light_oLuma.cpp Shaders/A_Diff_nLight_oLuma.cpp Shaders/A_SkyDome.cpp
189                Shaders/A_Solid.cpp Shaders/A_Terrain.cpp Shaders/A_WaterCubeReflect.cpp Shaders/L_Diff_oSpec.cpp Shaders/StencilShadowVolumes.cpp""")] +
190            MatSys_CommonObjectsList,
191     LIBS=LibList)
195 envSoundSys = env.Clone()
197 if sys.platform.startswith("linux"):
198     envSoundSys.Append(LINKFLAGS=["Libs/SoundSystem/Common/linker-script"])
200 envSoundSys.SharedLibrary(
201     target="SoundSystem/SoundSysNull",
202     source=[os.path.join("SoundSystem/SoundSysNull", x) for x in Split("SoundSysImpl.cpp DllInterface.cpp")],
203     LIBS="SoundSys")
207 envSoundSys = env.Clone()
208 envSoundSys.Append(CPPPATH=['#/ExtLibs/fmod/api/inc'])
210 if sys.platform=="win32":
211     envSoundSys.Append(LIBPATH=['#/ExtLibs/fmod/api/lib'])
212     envSoundSys.Append(LIBS=Split("cfsLib SoundSys fmodvc"))
213 elif sys.platform.startswith("linux"):
214     envSoundSys.Append(LINKFLAGS=["Libs/SoundSystem/Common/linker-script"])
215     envSoundSys.Append(LIBPATH=['#/ExtLibs/fmod/api'])
216     envSoundSys.Append(LIBS=["SoundSys", "fmod-3.75"])
218 # We have the FMod libraries only for 32-bit platforms...
219 if not platform.machine().startswith("arm"):
220     if (sys.platform=="win32" and envSoundSys["TARGET_ARCH"]=="x86") or (sys.platform.startswith("linux") and platform.machine()!="x86_64"):
221         envSoundSys.SharedLibrary(
222             target="SoundSystem/SoundSysFMOD3",
223             source=[os.path.join("SoundSystem/SoundSysFMOD3", x) for x in Split("""
224                        SoundSysImpl.cpp DllInterface.cpp SoundImpl.cpp BufferManager.cpp
225                        StaticBuffer.cpp StreamingBuffer.cpp Channel.cpp""")])
229 envSoundSys = env.Clone()
230 envSoundSys.Append(CPPPATH=['#/ExtLibs/freealut/include', '#/ExtLibs/mpg123/src/libmpg123', '#/ExtLibs/libvorbis/include', '#/ExtLibs/libogg/include'])
232 if sys.platform=="win32":
233     envSoundSys.Append(CPPPATH=['#/ExtLibs/openal-win/include'])
234     envSoundSys.Append(LIBS=Split("cfsLib SoundSys OpenAL32 alut mpg123 ogg vorbis vorbisfile"))
235     if envSoundSys["TARGET_ARCH"]=="x86":
236         envSoundSys.Append(LIBPATH=['#/ExtLibs/openal-win/libs/Win32'])
237     else:
238         envSoundSys.Append(LIBPATH=['#/ExtLibs/openal-win/libs/Win64'])
239 elif sys.platform.startswith("linux"):
240     envSoundSys.Append(CPPPATH=['#/ExtLibs/openal-soft/include'])
241     envSoundSys.Append(LIBS=Split("openal alut mpg123 vorbisfile vorbis ogg"))
242     envSoundSys.Append(LINKFLAGS=["Libs/SoundSystem/Common/linker-script"])
244 envSoundSys.SharedLibrary(
245     target="SoundSystem/SoundSysOpenAL",
246     source=Glob("SoundSystem/Common/*.cpp")+
247            Glob("SoundSystem/SoundSysOpenAL/*.cpp"))