- Added sunplug (Mapcoordinator-plugin for ET) by Topsun
[xonotic/netradiant.git] / SConscript
1 import os, sys, commands, string
2 from makeversion import get_version
3 # OS Detection:
4 OS = commands.getoutput('uname')
5
6 Import('GLOBALS')
7 Import(GLOBALS)
8
9 def build_list(s_prefix, s_string):
10   s_list = Split(s_string)
11   for i in range(len(s_list)):
12     s_list[i] = s_prefix + '/' + s_list[i]
13   return s_list
14
15 # common code ------------------------------------------------------
16
17 cmdlib_lib = g_env.StaticLibrary(target='libs/cmdlib', source='libs/cmdlib/cmdlib.cpp')
18
19 mathlib_src = 'mathlib.c bbox.c line.c m4x4.c ray.c'
20 mathlib_lib = g_env.StaticLibrary(target='libs/mathlib', source=build_list('libs/mathlib', mathlib_src))
21
22 md5lib_lib = g_env.StaticLibrary(target='libs/md5lib', source='libs/md5lib/md5lib.c')
23
24 ddslib_lib = g_env.StaticLibrary(target='libs/ddslib', source='libs/ddslib/ddslib.c')
25
26 jpeg_env = g_env.Copy()
27 jpeg_env.Prepend(CPPPATH = 'libs/jpeg6')
28 jpeg_src = 'jcomapi.cpp jdcoefct.cpp jdinput.cpp jdpostct.cpp jfdctflt.cpp jpgload.cpp jdapimin.cpp jdcolor.cpp jdmainct.cpp jdsample.cpp jidctflt.cpp jutils.cpp jdapistd.cpp jddctmgr.cpp jdmarker.cpp jdtrans.cpp jmemmgr.cpp jdatasrc.cpp jdhuff.cpp jdmaster.cpp jerror.cpp jmemnobs.cpp'
29 jpeg_lib = jpeg_env.StaticLibrary(target='libs/jpeg6', source=build_list('libs/jpeg6', jpeg_src))
30
31 l_net_lib = g_env.StaticLibrary(target='libs/l_net', source=['libs/l_net/l_net.c', 'libs/l_net/l_net_berkley.c'])
32
33 picomodel_src = 'picointernal.c picomodel.c picomodules.c pm_3ds.c pm_ase.c pm_md3.c pm_obj.c\
34   pm_ms3d.c pm_mdc.c pm_fm.c pm_md2.c pm_lwo.c pm_terrain.c lwo/clip.c lwo/envelope.c lwo/list.c lwo/lwio.c\
35   lwo/lwo2.c lwo/lwob.c lwo/pntspols.c lwo/surface.c lwo/vecmath.c lwo/vmap.c'
36 picomodel_lib = g_env.StaticLibrary(target='libs/picomodel', source=build_list('libs/picomodel', picomodel_src))
37
38 #splines_env = g_env.Copy()
39 #splines_src = build_list('libs/splines', 'math_angles.cpp math_matrix.cpp math_quaternion.cpp math_vector.cpp q_parse.cpp q_shared.cpp splines.cpp util_str.cpp')
40 #splines_env['CPPPATH'].append('include')
41 #splines_lib = splines_env.StaticLibrary(target='libs/splines', source=splines_src)
42
43 profile_env = g_env.Copy();
44 profile_env['CPPPATH'].append('include')
45 profile_src = 'profile.cpp file.cpp'
46 profile_lib = profile_env.StaticLibrary(target='libs/profile', source=build_list('libs/profile', profile_src))
47
48 gtkutil_env = g_env.Copy();
49 gtkutil_env['CPPPATH'].append('include')
50 gtkutil_env.useGlib2()
51 gtkutil_env.useGtk2()
52 gtkutil_env.useGtkGLExt()
53
54 gtkutil_src = '\
55   accelerator.cpp\
56   button.cpp\
57   clipboard.cpp\
58   closure.cpp\
59   container.cpp\
60   cursor.cpp\
61   dialog.cpp\
62   entry.cpp\
63   frame.cpp\
64   filechooser.cpp\
65   glfont.cpp\
66   glwidget.cpp\
67   image.cpp\
68   idledraw.cpp\
69   menu.cpp\
70   messagebox.cpp\
71   nonmodal.cpp\
72   paned.cpp\
73   pointer.cpp\
74   toolbar.cpp\
75   widget.cpp\
76   window.cpp\
77   xorrectangle.cpp\
78 '
79
80 gtkutil_lib = gtkutil_env.StaticLibrary(target='libs/gtkutil', source=build_list('libs/gtkutil', gtkutil_src))
81
82 # end static / common libraries ---------------------------------------------------
83
84 # q3map ---------------------------------------------------------------------------
85
86 q3map_env = g_env.Copy()
87 q3map_env['CPPPATH'].append('include')
88 q3map_env.useXML2()
89 q3map_env.useGlib2()
90 q3map_env.usePNG()
91 q3map_env.useMHash()
92 q3map_env.usePThread()
93 q3map_env.Prepend(CPPPATH='tools/quake3/common')
94
95 q3map_common_src = [
96   'common/cmdlib.c',
97   'common/imagelib.c',
98   'common/inout.c',
99   'common/mutex.c',
100   'common/polylib.c',
101   'common/scriplib.c',
102   'common/threads.c',
103   'common/unzip.c',
104   'common/vfs.c' ]
105
106 q3map_src = [
107   'q3map2/brush.c',
108   'q3map2/brush_primit.c',
109   'q3map2/bsp.c',
110   'q3map2/facebsp.c',
111   'q3map2/fog.c',
112   'q3map2/leakfile.c',
113   'q3map2/map.c',
114   'q3map2/model.c',
115   'q3map2/patch.c',
116   'q3map2/portals.c',
117   'q3map2/prtfile.c',
118   'q3map2/surface.c',
119   'q3map2/surface_fur.c',
120   'q3map2/surface_meta.c',
121   'q3map2/tjunction.c',
122   'q3map2/tree.c',
123   'q3map2/writebsp.c',
124   'q3map2/image.c',
125   'q3map2/light.c',
126   'q3map2/light_bounce.c',
127   'q3map2/light_trace.c',
128   'q3map2/light_ydnar.c',
129   'q3map2/lightmaps_ydnar.c',
130   'q3map2/vis.c',
131   'q3map2/visflow.c',
132   'q3map2/bspfile_abstract.c',
133   'q3map2/bspfile_ibsp.c',
134   'q3map2/bspfile_rbsp.c',
135   'q3map2/decals.c',
136   'q3map2/main.c',
137   'q3map2/mesh.c',
138   'q3map2/path_init.c',
139   'q3map2/shaders.c',
140   'q3map2/surface_extra.c',
141   'q3map2/surface_foliage.c',
142   'q3map2/convert_ase.c',
143   'q3map2/convert_map.c' ]
144
145 q3map_full_src = [ ]
146 for i in q3map_common_src + q3map_src:
147   q3map_full_src.append('tools/quake3/' + i)
148
149 q3map_libs = ['mathlib', 'l_net', 'jpeg6', 'picomodel', 'ddslib']
150
151 q3map_prog = q3map_env.Program(target='q3map2.' + g_cpu, source=q3map_full_src, LIBS=q3map_libs, LIBPATH='libs')
152 q3map_env.Depends(q3map_prog, mathlib_lib)
153 q3map_env.Depends(q3map_prog, l_net_lib)
154 q3map_env.Depends(q3map_prog, jpeg_lib)
155 q3map_env.Depends(q3map_prog, picomodel_lib)
156 q3map_env.Depends(q3map_prog, ddslib_lib)
157 q3map_env.Install(INSTALL, q3map_prog)
158
159 # end q3map2 ----------------------------------------------------------------------
160
161 # q3data ---------------------------------------------------------------------------
162
163 q3data_env = q3map_env.Copy()
164
165 q3data_common_src = [
166   'common/aselib.c',
167   'common/bspfile.c',
168   'common/cmdlib.c',
169   'common/imagelib.c',
170   'common/inout.c',
171   'common/md4.c',
172   'common/scriplib.c',
173   'common/trilib.c',
174   'common/unzip.c',
175   'common/vfs.c'
176   ]
177
178 q3data_src = [
179   'q3data/3dslib.c',
180   'q3data/compress.c',
181   'q3data/images.c',
182   'q3data/md3lib.c',
183   'q3data/models.c',
184   'q3data/p3dlib.c',
185   'q3data/polyset.c',
186   'q3data/q3data.c',
187   'q3data/stripper.c',
188   'q3data/video.c' ]
189
190 q3data_full_src = [ ]
191 for i in q3data_common_src + q3data_src:
192   q3data_full_src.append('tools/quake3/' + i)
193
194 q3data_prog = q3data_env.Program( target = 'q3data.' + g_cpu, source = q3data_full_src, LIBS=['mathlib', 'l_net'], LIBPATH='libs' )
195 q3data_env.Depends(q3data_prog, mathlib_lib)
196 q3data_env.Depends(q3data_prog, l_net_lib)
197 q3data_env.Install( INSTALL, q3data_prog )
198
199 # end q3data ----------------------------------------------------------------------
200
201 # q2_tools ---------------------------------------------------------------------------
202
203 q2_tools_env = g_env.Copy()
204 q2_tools_env['CPPPATH'].append('include')
205 q2_tools_env.useXML2()
206 q2_tools_env.usePThread()
207 q2_tools_env.Prepend(CPPPATH='tools/quake2/common')
208
209 q2_tools_common_src = [
210   'common/bspfile.c',
211   'common/cmdlib.c',
212   'common/inout.c',
213   'common/l3dslib.c',
214   'common/lbmlib.c',
215   'common/mathlib.c',
216   'common/md4.c',
217   'common/path_init.c',
218   'common/polylib.c',
219   'common/scriplib.c',
220   'common/threads.c',
221   'common/trilib.c'
222 ]
223
224
225 q2_tools_q2map_src = [
226   'q2map/brushbsp.c',
227   'q2map/csg.c',
228   'q2map/faces.c',
229   'q2map/flow.c',
230   'q2map/glfile.c',
231   'q2map/leakfile.c',
232   'q2map/lightmap.c',
233   'q2map/main.c',
234   'q2map/map.c',
235   'q2map/nodraw.c',
236   'q2map/patches.c',
237   'q2map/portals.c',
238   'q2map/prtfile.c',
239   'q2map/qbsp.c',
240   'q2map/qrad.c',
241   'q2map/qvis.c',
242   'q2map/textures.c',
243   'q2map/trace.c',
244   'q2map/tree.c',
245   'q2map/writebsp.c'
246 ]
247
248 q2_tools_qdata3_common_src = [
249   'common/bspfile.c',
250   'common/cmdlib.c',
251   'common/inout.c',
252   'common/l3dslib.c',
253   'common/lbmlib.c',
254   'common/mathlib.c',
255   'common/md4.c',
256   'common/path_init.c',
257   'common/scriplib.c',
258   'common/threads.c',
259   'common/trilib.c'
260 ]
261
262 q2_tools_qdata3_src = [
263   'qdata/images.c',
264   'qdata/models.c',
265   'qdata/qdata.c',
266   'qdata/sprites.c',
267   'qdata/tables.c',
268   'qdata/video.c'
269 ]
270
271 q2_tools_q2map_full_src = [ ]
272 for i in q2_tools_common_src + q2_tools_q2map_src:
273   q2_tools_q2map_full_src.append('tools/quake2/' + i)
274
275 q2_tools_qdata3_full_src = [ ]
276 for i in q2_tools_common_src + q2_tools_qdata3_src:
277   q2_tools_qdata3_full_src.append('tools/quake2/' + i)
278
279 if ( OS != 'Darwin' ):
280   q2_tools_q2map_prog = q2_tools_env.Program(target='quake2_tools/q2map', source=q2_tools_q2map_full_src, LIBS='l_net', LIBPATH='libs')
281   q2_tools_env.Depends(q2_tools_q2map_prog, l_net_lib)
282   q2_tools_env.Install(INSTALL, q2_tools_q2map_prog )
283
284   q2_tools_qdata3_prog = q2_tools_env.Program(target='quake2_tools/qdata3', source=q2_tools_qdata3_full_src, LIBS='l_net', LIBPATH='libs')
285   q2_tools_env.Depends(q2_tools_qdata3_prog, l_net_lib)
286   q2_tools_env.Install(INSTALL, q2_tools_qdata3_prog )
287
288
289 # end q2_tools ----------------------------------------------------------------------
290
291 # qdata3_heretic2 ---------------------------------------------------------------------------
292
293 heretic2_tools_env = g_env.Copy()
294 heretic2_tools_env['CPPPATH'].append('include')
295 heretic2_tools_env.useXML2()
296 heretic2_tools_env.usePThread()
297 heretic2_tools_env.Prepend(CPPPATH='tools/quake2/qdata_heretic2')
298 heretic2_tools_env.Prepend(CPPPATH='tools/quake2/qdata_heretic2/qcommon')
299 heretic2_tools_env.Prepend(CPPPATH='tools/quake2/qdata_heretic2/common')
300
301 heretic2_tools_qdata3_common_src = [
302   'qdata_heretic2/common/bspfile.c',
303   'qdata_heretic2/common/cmdlib.c',
304   'qdata_heretic2/common/inout.c',
305   'qdata_heretic2/common/l3dslib.c',
306   'qdata_heretic2/common/lbmlib.c',
307   'qdata_heretic2/common/mathlib.c',
308   'qdata_heretic2/common/md4.c',
309   'qdata_heretic2/common/path_init.c',
310   'qdata_heretic2/common/qfiles.c',
311   'qdata_heretic2/common/scriplib.c',
312   'qdata_heretic2/common/threads.c',
313   'qdata_heretic2/common/token.c',
314   'qdata_heretic2/common/trilib.c'
315 ]
316
317 heretic2_tools_qdata3_qcommon_src = [
318   'qdata_heretic2/qcommon/reference.c',
319   'qdata_heretic2/qcommon/resourcemanager.c',
320   'qdata_heretic2/qcommon/skeletons.c'
321 ]
322
323 heretic2_tools_qdata3_src = [
324   'qdata_heretic2/animcomp.c',
325   'qdata_heretic2/book.c',
326   'qdata_heretic2/fmodels.c',
327   'qdata_heretic2/images.c',
328   'qdata_heretic2/jointed.c',
329   'qdata_heretic2/models.c',
330   'qdata_heretic2/pics.c',
331   'qdata_heretic2/qdata.c',
332   'qdata_heretic2/qd_skeletons.c',
333   'qdata_heretic2/sprites.c',
334   'qdata_heretic2/svdcmp.c',
335   'qdata_heretic2/tables.c',
336   'qdata_heretic2/tmix.c',
337   'qdata_heretic2/video.c'
338 ]
339
340 heretic2_tools_qdata3_full_src = [ ]
341 for i in heretic2_tools_qdata3_common_src + heretic2_tools_qdata3_qcommon_src + heretic2_tools_qdata3_src:
342   heretic2_tools_qdata3_full_src.append('tools/quake2/' + i)
343
344
345 heretic2_tools_env['CCFLAGS'] += '-D_LINUX '
346
347 if ( OS != 'Darwin' ):
348   heretic2_tools_prog = heretic2_tools_env.Program(target='h2data', source=heretic2_tools_qdata3_full_src, LIBS='l_net', LIBPATH='libs')
349   heretic2_tools_env.Depends(heretic2_tools_prog, l_net_lib)
350   heretic2_tools_env.Install(INSTALL + '/heretic2', heretic2_tools_prog )
351
352 # end heretic2_tools ----------------------------------------------------------------------
353
354
355
356 # radiant, modules and plugins ----------------------------------------------------
357
358 module_env = g_env.Copy()
359 module_env['CPPPATH'].append('include')
360 if ( OS == 'Darwin' ):
361   module_env['LINKFLAGS'] += '-dynamiclib -ldl '
362 else:
363   module_env['LINKFLAGS'] += '-ldl '
364 module_env['LIBPREFIX'] = ''
365
366
367 vfspk3_env = module_env.Copy()
368 vfspk3_lst = build_list('plugins/vfspk3', 'vfspk3.cpp vfs.cpp archive.cpp')
369 vfspk3_env.useGlib2()
370 vfspk3_lib = vfspk3_env.SharedLibrarySafe(target='vfspk3', source=vfspk3_lst)
371 vfspk3_env.Install(INSTALL + '/modules', vfspk3_lib)
372
373 archivepak_env = module_env.Copy()
374 archivepak_lst = build_list('plugins/archivepak', 'plugin.cpp archive.cpp pak.cpp')
375 archivepak_lib = archivepak_env.SharedLibrarySafe(target='archivepak', source=archivepak_lst, LIBS='cmdlib', LIBPATH='libs')
376 archivepak_env.Depends(archivepak_lib, cmdlib_lib)
377 archivepak_env.Install(INSTALL + '/modules', archivepak_lib)
378
379 archivewad_env = module_env.Copy()
380 archivewad_lst = build_list('plugins/archivewad', 'plugin.cpp archive.cpp wad.cpp')
381 archivewad_lib = archivewad_env.SharedLibrarySafe(target='archivewad', source=archivewad_lst, LIBS='cmdlib', LIBPATH='libs')
382 archivewad_env.Depends(archivewad_lib, cmdlib_lib)
383 archivewad_env.Install(INSTALL + '/modules', archivewad_lib)
384
385 archivezip_env = module_env.Copy()
386 archivezip_lst = build_list('plugins/archivezip', 'plugin.cpp archive.cpp pkzip.cpp zlibstream.cpp')
387 archivezip_env.useZLib()
388 archivezip_lib = archivezip_env.SharedLibrarySafe(target='archivezip', source=archivezip_lst, LIBS='cmdlib', LIBPATH='libs')
389 archivezip_env.Depends(archivezip_lib, cmdlib_lib)
390 archivezip_env.Install(INSTALL + '/modules', archivezip_lib)
391
392 shaders_env = module_env.Copy()
393 shaders_lst = build_list('plugins/shaders', 'shaders.cpp plugin.cpp')
394 shaders_env.useGlib2()
395 shaders_lib = shaders_env.SharedLibrarySafe(target='shaders', source=shaders_lst, LIBS='cmdlib', LIBPATH='libs')
396 shaders_env.Depends(shaders_lib, cmdlib_lib)
397 shaders_env.Install(INSTALL + '/modules', shaders_lib)
398
399 image_env = module_env.Copy()
400 image_lst = build_list('plugins/image', 'bmp.cpp jpeg.cpp image.cpp pcx.cpp tga.cpp dds.cpp')
401 image_lib = image_env.SharedLibrarySafe(target='image', source=image_lst, LIBS=['jpeg6', 'ddslib'], LIBPATH='libs')
402 image_env.Depends(image_lib, jpeg_lib)
403 image_env.Depends(image_lib, ddslib_lib)
404 image_env.Install(INSTALL + '/modules', image_lib)
405
406 imagehl_lst=build_list('plugins/imagehl', 'imagehl.cpp hlw.cpp mip.cpp sprite.cpp')
407 imagehl_lib = module_env.SharedLibrarySafe(target='imagehl', source=imagehl_lst)
408 module_env.Install(INSTALL + '/modules', imagehl_lib)
409
410 imageq2_lst = build_list('plugins/imageq2', 'imageq2.cpp wal.cpp wal32.cpp')
411 imageq2_lib = module_env.SharedLibrarySafe(target='imageq2', source=imageq2_lst)
412 module_env.Install(INSTALL + '/modules', imageq2_lib)
413
414 mapq3_env = module_env.Copy()
415 mapq3_lst=build_list('plugins/mapq3', 'plugin.cpp parse.cpp write.cpp')
416 mapq3_lib = mapq3_env.SharedLibrarySafe(target='mapq3', source=mapq3_lst, LIBS='cmdlib', LIBPATH='libs')
417 mapq3_env.Depends(mapq3_lib, cmdlib_lib)
418 mapq3_env.Install(INSTALL + '/modules', mapq3_lib)
419
420 imagepng_env = module_env.Copy()
421 imagepng_lst = build_list('plugins/imagepng', 'plugin.cpp')
422 imagepng_env.usePNG()
423 imagepng_lib = imagepng_env.SharedLibrarySafe(target='imagepng', source=imagepng_lst)
424 imagepng_env.Install(INSTALL + '/modules', imagepng_lib)
425
426 mapxml_env = module_env.Copy()
427 mapxml_lst = build_list('plugins/mapxml', 'plugin.cpp xmlparse.cpp xmlwrite.cpp')
428 mapxml_lib = mapxml_env.SharedLibrarySafe(target='mapxml', source=mapxml_lst)
429 mapxml_env.useXML2()
430 mapxml_env.useGlib2()
431 mapxml_env.Install(INSTALL + '/modules', mapxml_lib)
432
433 model_env = module_env.Copy()
434 model_lst = build_list('plugins/model', 'plugin.cpp model.cpp')
435 model_lib = model_env.SharedLibrarySafe(target='model', source=model_lst, LIBS=['mathlib', 'picomodel'], LIBPATH='libs')
436 model_env.Depends(model_lib, mathlib_lib)
437 model_env.Depends(model_lib, picomodel_lib)
438 model_env.Install(INSTALL + '/modules', model_lib)
439
440 md3model_lst=build_list('plugins/md3model', 'plugin.cpp mdl.cpp md3.cpp md2.cpp mdc.cpp mdlimage.cpp md5.cpp')
441 md3model_lib = module_env.SharedLibrarySafe(target='md3model', source=md3model_lst)
442 module_env.Install(INSTALL + '/modules', md3model_lib)
443
444 entity_lst = build_list('plugins/entity', 'plugin.cpp entity.cpp eclassmodel.cpp generic.cpp group.cpp light.cpp miscmodel.cpp doom3group.cpp skincache.cpp angle.cpp angles.cpp colour.cpp filters.cpp model.cpp namedentity.cpp origin.cpp scale.cpp targetable.cpp rotation.cpp modelskinkey.cpp')
445 entity_lib = module_env.SharedLibrarySafe(target='entity', source=entity_lst)
446 module_env.Install(INSTALL + '/modules', entity_lib)
447
448 bob_env = module_env.Copy()
449 bob_lst = build_list('contrib/bobtoolz/',
450 'dialogs/dialogs-gtk.cpp bobToolz-GTK.cpp bsploader.cpp cportals.cpp DBobView.cpp \
451 DBrush.cpp DEntity.cpp DEPair.cpp DMap.cpp DPatch.cpp DPlane.cpp DPoint.cpp \
452 DShape.cpp DTrainDrawer.cpp DTreePlanter.cpp DVisDrawer.cpp DWinding.cpp funchandlers-GTK.cpp \
453 lists.cpp misc.cpp ScriptParser.cpp shapes.cpp visfind.cpp')
454 bob_lib = bob_env.SharedLibrarySafe(target='bobtoolz', source=bob_lst, LIBS=['mathlib', 'cmdlib', 'profile'], LIBPATH='libs')
455 bob_env.Depends(bob_lib, mathlib_lib)
456 bob_env.Depends(bob_lib, cmdlib_lib)
457 bob_env.Depends(bob_lib, profile_lib)
458 bob_env.useGlib2()
459 bob_env.useGtk2()
460 bob_env.Install(INSTALL + '/plugins', bob_lib)
461
462 #camera_lst = build_list('contrib/camera', 
463 #'camera.cpp dialogs.cpp dialogs_common.cpp funchandlers.cpp listener.cpp misc.cpp renderer.cpp')
464 #camera_lst.append('libs/libsplines.a')
465 #bob_env.SharedLibrarySafe(target='camera', source=camera_lst)
466 #bob_env.Install(INSTALL + '/plugins', 'camera.so')
467
468 prtview_env = module_env.Copy()
469 prtview_lst = build_list('contrib/prtview', 'AboutDialog.cpp ConfigDialog.cpp LoadPortalFileDialog.cpp portals.cpp prtview.cpp')
470 prtview_env.useGlib2()
471 prtview_env.useGtk2()
472 prtview_lib = prtview_env.SharedLibrarySafe(target='prtview', source=prtview_lst, LIBS='profile', LIBPATH='libs')
473 prtview_env.Depends(prtview_lib, profile_lib)
474 prtview_env.Install(INSTALL + '/plugins', prtview_lib)
475
476
477 brushexport_env = module_env.Copy()
478 brushexport_lst = build_list('contrib/brushexport', 'plugin.cpp')
479 brushexport_env.useGlib2()
480 brushexport_env.useGtk2()
481 brushexport_lib = brushexport_env.SharedLibrarySafe(target='brushexport', source=brushexport_lst, LIBPATH='libs')
482 brushexport_env.Install(INSTALL + '/plugins', brushexport_lib)
483
484 sunplug_env = module_env.Copy()
485 sunplug_lst = build_list('contrib/sunplug', 'sunplug.cpp')
486 sunplug_env.useGlib2()
487 sunplug_env.useGtk2()
488 sunplug_lib = sunplug_env.SharedLibrarySafe(target='sunplug', source=sunplug_lst, LIBPATH='libs')
489 sunplug_env.Install(INSTALL + '/plugins', sunplug_lib)
490
491 #gensurf_lst = build_list('contrib/gtkgensurf',
492 #'bitmap.cpp dec.cpp face.cpp font.cpp gendlgs.cpp genmap.cpp gensurf.cpp heretic.cpp plugin.cpp view.cpp triangle.c')
493 #bob_env.SharedLibrarySafe(target='gensurf', source=gensurf_lst)
494 #bob_env.Install(INSTALL + '/plugins', 'gensurf.so')
495
496 #bkgrnd2d_list = build_list( 'contrib/bkgrnd2d', 'bkgrnd2d.cpp plugin.cpp dialog.cpp' )
497 #bkgrnd2d_list.append( 'libs/libsynapse.a' )
498 #bkgrnd2d_env = module_env.Copy()
499 #bkgrnd2d_env.useGtk2()
500 #bkgrnd2d_env.SharedLibrarySafe( target='bkgrnd2d', source=bkgrnd2d_list )
501 #bkgrnd2d_env.Install( INSTALL + '/plugins', 'bkgrnd2d.so' )
502
503 radiant_env = g_env.Copy()
504 radiant_env['CPPPATH'].append('include')
505 radiant_env['LINKFLAGS'] += '-ldl -lGL '
506 if ( OS == 'Darwin' ):
507   radiant_env['CXXFLAGS'] += '-fno-common '
508   radiant_env['CCFLAGS'] += '-fno-common '
509   radiant_env['LINKFLAGS'] += '-lX11 -lGL -lGLU '
510 radiant_env['LIBPREFIX'] = ''
511 radiant_env.useGlib2()
512 radiant_env.useXML2()
513 radiant_env.useGtk2()
514 radiant_env.useGtkGLExt()
515
516 radiant_src = [
517 'autosave.cpp',
518 'brush.cpp',
519 'brushmanip.cpp',
520 'brushmodule.cpp',
521 'brushnode.cpp',
522 'brushtokens.cpp',
523 'brushxml.cpp',
524 'brush_primit.cpp',
525 'build.cpp',
526 'camwindow.cpp',
527 'clippertool.cpp',
528 'commands.cpp',
529 'console.cpp',
530 'csg.cpp',
531 'dialog.cpp',
532 'eclass.cpp',
533 'eclass_def.cpp',
534 'eclass_doom3.cpp',
535 'eclass_fgd.cpp',
536 'eclass_xml.cpp',
537 'entity.cpp',
538 'entityinspector.cpp',
539 'entitylist.cpp',
540 'environment.cpp',
541 'error.cpp',
542 'feedback.cpp',
543 'filetypes.cpp',
544 'filters.cpp',
545 'findtexturedialog.cpp',
546 'glwidget.cpp',
547 'grid.cpp',
548 'groupdialog.cpp',
549 'gtkdlgs.cpp',
550 'gtkmisc.cpp',
551 'help.cpp',
552 'image.cpp',
553 'main.cpp',
554 'mainframe.cpp',
555 'map.cpp',
556 'mru.cpp',
557 'nullmodel.cpp',
558 'parse.cpp',
559 'patch.cpp',
560 'patchdialog.cpp',
561 'patchmanip.cpp',
562 'patchmodule.cpp',
563 'plugin.cpp',
564 'pluginapi.cpp',
565 'pluginmanager.cpp',
566 'pluginmenu.cpp',
567 'plugintoolbar.cpp',
568 'points.cpp',
569 'preferencedictionary.cpp',
570 'preferences.cpp',
571 'qe3.cpp',
572 'qgl.cpp',
573 'referencecache.cpp',
574 'renderer.cpp',
575 'renderstate.cpp',
576 'scenegraph.cpp',
577 'stacktrace.cpp',
578 'select.cpp',
579 'selection.cpp',
580 'server.cpp',
581 'shaders.cpp',
582 'sockets.cpp',
583 'surfacedialog.cpp',
584 'texmanip.cpp',
585 'textures.cpp',
586 'texwindow.cpp',
587 'timer.cpp',
588 'treemodel.cpp',
589 'undo.cpp',
590 'url.cpp',
591 'view.cpp',
592 'watchbsp.cpp',
593 'winding.cpp',
594 'windowobservers.cpp',
595 'xmlstuff.cpp',
596 'xywindow.cpp',
597 ]
598
599 for i in range(len(radiant_src)):
600   radiant_src[i] = 'radiant/' + radiant_src[i]
601
602 radiant_libs = ['mathlib', 'cmdlib', 'l_net', 'profile', 'gtkutil']
603 radiant_prog = radiant_env.Program(target='radiant.' + g_cpu, source=radiant_src, LIBS=radiant_libs, LIBPATH='libs')
604 radiant_env.Depends(radiant_prog, mathlib_lib)
605 radiant_env.Depends(radiant_prog, cmdlib_lib)
606 radiant_env.Depends(radiant_prog, l_net_lib)
607 radiant_env.Depends(radiant_prog, profile_lib)
608 radiant_env.Depends(radiant_prog, gtkutil_lib)
609 radiant_env.Install(INSTALL, radiant_prog)
610
611
612 # end setup ---------------------------------------------------------------------------------------