SConscript.core 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. # -*- mode: python -*-
  2. # DOOM build script
  3. # TTimo <ttimo@idsoftware.com>
  4. # http://scons.sourceforge.net
  5. import sys, os
  6. import scons_utils
  7. Import( 'GLOBALS' )
  8. Import( GLOBALS )
  9. jpeg_string = ' \
  10. jcapimin.c \
  11. jccoefct.c \
  12. jccolor.c \
  13. jcdctmgr.c \
  14. jchuff.c \
  15. jcinit.c \
  16. jcmainct.c \
  17. jcmarker.c \
  18. jcmaster.c \
  19. jcomapi.c \
  20. jcparam.c \
  21. jcphuff.c \
  22. jcprepct.c \
  23. jcsample.c \
  24. jdapimin.c \
  25. jdapistd.c \
  26. jdatadst.c \
  27. jdatasrc.c \
  28. jdcoefct.c \
  29. jdcolor.c \
  30. jddctmgr.c \
  31. jdhuff.c \
  32. jdinput.c \
  33. jdmainct.c \
  34. jdmarker.c \
  35. jdmaster.c \
  36. jdmerge.c \
  37. jdphuff.c \
  38. jdpostct.c \
  39. jdsample.c \
  40. jdtrans.c \
  41. jerror.c \
  42. jfdctflt.c \
  43. jfdctfst.c \
  44. jfdctint.c \
  45. jidctflt.c \
  46. jidctfst.c \
  47. jidctint.c \
  48. jidctred.c \
  49. jmemmgr.c \
  50. jmemnobs.c \
  51. jquant1.c \
  52. jquant2.c \
  53. jutils.c'
  54. jpeg_list = scons_utils.BuildList( 'renderer/jpeg-6', jpeg_string )
  55. ogg_string = ' \
  56. oggsrc/bitwise.c \
  57. oggsrc/framing.c \
  58. vorbissrc/analysis.c \
  59. vorbissrc/bitrate.c \
  60. vorbissrc/block.c \
  61. vorbissrc/codebook.c \
  62. vorbissrc/envelope.c \
  63. vorbissrc/floor0.c \
  64. vorbissrc/floor1.c \
  65. vorbissrc/info.c \
  66. vorbissrc/lookup.c \
  67. vorbissrc/lpc.c \
  68. vorbissrc/lsp.c \
  69. vorbissrc/mapping0.c \
  70. vorbissrc/mdct.c \
  71. vorbissrc/psy.c \
  72. vorbissrc/registry.c \
  73. vorbissrc/res0.c \
  74. vorbissrc/sharedbook.c \
  75. vorbissrc/smallft.c \
  76. vorbissrc/synthesis.c \
  77. vorbissrc/vorbisenc.c \
  78. vorbissrc/vorbisfile.c \
  79. vorbissrc/windowvb.c'
  80. ogg_list = scons_utils.BuildList( 'sound/OggVorbis', ogg_string )
  81. renderer_string = ' \
  82. Cinematic.cpp \
  83. GuiModel.cpp \
  84. Image_files.cpp \
  85. Image_init.cpp \
  86. Image_load.cpp \
  87. Image_process.cpp \
  88. Image_program.cpp \
  89. Interaction.cpp \
  90. Material.cpp \
  91. MegaTexture.cpp \
  92. Model.cpp \
  93. ModelDecal.cpp \
  94. ModelManager.cpp \
  95. ModelOverlay.cpp \
  96. Model_beam.cpp \
  97. Model_ase.cpp \
  98. Model_liquid.cpp \
  99. Model_lwo.cpp \
  100. Model_ma.cpp \
  101. Model_md3.cpp \
  102. Model_md5.cpp \
  103. Model_prt.cpp \
  104. Model_sprite.cpp \
  105. RenderEntity.cpp \
  106. RenderSystem.cpp \
  107. RenderSystem_init.cpp \
  108. RenderWorld.cpp \
  109. RenderWorld_demo.cpp \
  110. RenderWorld_load.cpp \
  111. RenderWorld_portals.cpp \
  112. VertexCache.cpp \
  113. cg_explicit.cpp \
  114. draw_arb.cpp \
  115. draw_arb2.cpp \
  116. draw_common.cpp \
  117. draw_exp_stub.cpp \
  118. draw_nv10.cpp \
  119. draw_nv20.cpp \
  120. draw_r200.cpp \
  121. tr_backend.cpp \
  122. tr_deform.cpp \
  123. tr_font.cpp \
  124. tr_guisurf.cpp \
  125. tr_light.cpp \
  126. tr_lightrun.cpp \
  127. tr_main.cpp \
  128. tr_orderIndexes.cpp \
  129. tr_polytope.cpp \
  130. tr_render.cpp \
  131. tr_rendertools.cpp \
  132. tr_shadowbounds.cpp \
  133. tr_stencilshadow.cpp \
  134. tr_subview.cpp \
  135. tr_trace.cpp \
  136. tr_trisurf.cpp \
  137. tr_turboshadow.cpp'
  138. renderer_list = scons_utils.BuildList( 'renderer', renderer_string )
  139. framework_string = ' \
  140. CVarSystem.cpp \
  141. CmdSystem.cpp \
  142. Common.cpp \
  143. Compressor.cpp \
  144. Console.cpp \
  145. DemoFile.cpp \
  146. DeclAF.cpp \
  147. DeclEntityDef.cpp \
  148. DeclFX.cpp \
  149. DeclManager.cpp \
  150. DeclParticle.cpp \
  151. DeclPDA.cpp \
  152. DeclSkin.cpp \
  153. DeclTable.cpp \
  154. EditField.cpp \
  155. EventLoop.cpp \
  156. File.cpp \
  157. FileSystem.cpp \
  158. KeyInput.cpp \
  159. Unzip.cpp \
  160. UsercmdGen.cpp \
  161. Session_menu.cpp \
  162. Session.cpp \
  163. async/AsyncClient.cpp \
  164. async/AsyncNetwork.cpp \
  165. async/AsyncServer.cpp \
  166. async/MsgChannel.cpp \
  167. async/NetworkSystem.cpp \
  168. async/ServerScan.cpp'
  169. framework_list = scons_utils.BuildList( 'framework', framework_string )
  170. cm_string = ' \
  171. CollisionModel_contacts.cpp \
  172. CollisionModel_contents.cpp \
  173. CollisionModel_debug.cpp \
  174. CollisionModel_files.cpp \
  175. CollisionModel_load.cpp \
  176. CollisionModel_rotate.cpp \
  177. CollisionModel_trace.cpp \
  178. CollisionModel_translate.cpp'
  179. cm_list = scons_utils.BuildList( 'cm', cm_string )
  180. dmap_string = ' \
  181. dmap.cpp \
  182. facebsp.cpp \
  183. gldraw.cpp \
  184. glfile.cpp \
  185. leakfile.cpp \
  186. map.cpp \
  187. optimize.cpp \
  188. output.cpp \
  189. portals.cpp \
  190. shadowopt3.cpp \
  191. tritjunction.cpp \
  192. tritools.cpp \
  193. ubrush.cpp \
  194. usurface.cpp'
  195. dmap_list = scons_utils.BuildList( 'tools/compilers/dmap', dmap_string )
  196. aas_string = ' \
  197. AASBuild.cpp \
  198. AASBuild_file.cpp \
  199. AASBuild_gravity.cpp \
  200. AASBuild_ledge.cpp \
  201. AASBuild_merge.cpp \
  202. AASCluster.cpp \
  203. AASFile.cpp \
  204. AASFile_optimize.cpp \
  205. AASFile_sample.cpp \
  206. AASReach.cpp \
  207. AASFileManager.cpp \
  208. Brush.cpp \
  209. BrushBSP.cpp'
  210. aas_list = scons_utils.BuildList( 'tools/compilers/aas', aas_string )
  211. roq_string = ' \
  212. NSBitmapImageRep.cpp \
  213. codec.cpp \
  214. roq.cpp \
  215. roqParam.cpp'
  216. roq_list = scons_utils.BuildList( 'tools/compilers/roqvq', roq_string )
  217. renderbump_list = [ 'tools/compilers/renderbump/renderbump.cpp' ]
  218. snd_string = ' \
  219. snd_cache.cpp \
  220. snd_decoder.cpp \
  221. snd_efxfile.cpp \
  222. snd_emitter.cpp \
  223. snd_shader.cpp \
  224. snd_system.cpp \
  225. snd_wavefile.cpp \
  226. snd_world.cpp'
  227. snd_list = scons_utils.BuildList( 'sound_oal', snd_string )
  228. ui_string = ' \
  229. BindWindow.cpp \
  230. ChoiceWindow.cpp \
  231. DeviceContext.cpp \
  232. EditWindow.cpp \
  233. FieldWindow.cpp \
  234. GameBearShootWindow.cpp \
  235. GameBustOutWindow.cpp \
  236. GameSSDWindow.cpp \
  237. gamelaserduckwindow.cpp \
  238. GuiScript.cpp \
  239. ListGUI.cpp \
  240. ListWindow.cpp \
  241. MarkerWindow.cpp \
  242. RegExp.cpp \
  243. RenderWindow.cpp \
  244. SimpleWindow.cpp \
  245. SliderWindow.cpp \
  246. UserInterface.cpp \
  247. Window.cpp \
  248. Winvar.cpp'
  249. ui_list = scons_utils.BuildList( 'ui', ui_string )
  250. sys_string = ' \
  251. sys_local.cpp \
  252. posix/posix_net.cpp \
  253. posix/posix_main.cpp \
  254. posix/posix_signal.cpp \
  255. posix/posix_threads.cpp \
  256. linux/stack.cpp \
  257. linux/main.cpp \
  258. stub/util_stub.cpp'
  259. if ( local_dedicated == 0 ):
  260. sys_string += ' \
  261. glimp.cpp \
  262. events.cpp \
  263. linux/glimp.cpp \
  264. posix/posix_input.cpp \
  265. linux/input.cpp'
  266. else:
  267. sys_string += ' linux/dedicated.cpp'
  268. sys_list = scons_utils.BuildList( 'sys', sys_string )
  269. tools_string = ' \
  270. guied/GEWindowWrapper_stub.cpp'
  271. tools_list = scons_utils.BuildList( 'tools', tools_string )
  272. core_list = framework_list + jpeg_list + renderer_list + ui_list \
  273. + cm_list + dmap_list + renderbump_list + aas_list + roq_list \
  274. + snd_list + sys_list + tools_list + [ 'TypeInfo/TypeInfoGen.cpp' ]
  275. for i in range( len( core_list ) ):
  276. core_list[ i ] = '../../' + core_list[ i ]
  277. for i in range( len( ogg_list ) ):
  278. ogg_list[ i ] = '../../' + ogg_list[ i ]
  279. local_env = g_env.Clone()
  280. if ( local_dedicated == 1 ):
  281. local_env.Append( CPPDEFINES = [ 'ID_DEDICATED', 'ID_GL_HARDLINK' ] )
  282. # don't enable alsa for a dedicated server binary
  283. ALSA = '0'
  284. if ( local_gamedll == 1 ):
  285. local_env.Append( CPPDEFINES = [ '__DOOM_DLL__' ] )
  286. if ( local_demo == 1 ):
  287. local_env.Append( CPPDEFINES = [ 'ID_DEMO_BUILD' ] )
  288. if ( local_curl == 0 ):
  289. local_env.Append( CPPDEFINES = [ 'ID_ENABLE_CURL=0' ] )
  290. local_env.Append( CPPPATH = '#sound/OggVorbis' )
  291. local_env.Append( CPPPATH = '#sound/flite-1.4-release/include' )
  292. ogg_env = local_env.Clone()
  293. ogg_env.Append( CPPPATH = '#sound/OggVorbis/vorbissrc' )
  294. libogg = ogg_env.StaticLibrary( 'ogg', ogg_list )
  295. local_env.Append( LIBS = [ 'pthread', 'dl', 'SDL2' ] )
  296. if ( local_dedicated == 0 ):
  297. local_env.Append( LIBPATH = [ '../../openal/linux' ] )
  298. local_env.Append( LIBS = [ 'openal' ] )
  299. local_env.Append( LIBPATH = [ '../../sound/flite-1.4-release/build/i386-linux-gnu/lib' ] )
  300. local_env.Append( LIBS = [ 'flite_cmu_us_rms', 'flite_cmulex', 'flite_usenglish', 'flite' ] )
  301. source_list = core_list
  302. source_list += idlib_objects
  303. source_list += [ '../../glimp/sys/scons/libglimp.a' ]
  304. source_list += libogg
  305. source_list += curl_lib
  306. source_list += g_env_noopt.StaticObject( '../../tools/compilers/dmap/optimize_gcc.cpp' )
  307. if ( local_gamedll == 0 ):
  308. source_list += game_objects
  309. d3wm = local_env.Program( target = 'qc', source = source_list )
  310. Return( 'd3wm' )