-
Notifications
You must be signed in to change notification settings - Fork 155
/
SConstruct
70 lines (54 loc) · 1.47 KB
/
SConstruct
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- mode: python -*-
# GtkRadiant build scripts
# TTimo <ttimo@ttimo.net>
# http://scons.org/
import sys, os, platform, pickle
import utils, config
conf_filename = 'site.sconf'
try:
sys.argv.index( '-h' )
except:
pass
else:
Help(
"""
======================================================================
GtkRadiant build system quick help
You need scons v0.97.0d20070918.r2446 or newer
Default build (release), just run scons at the toplevel
debug build:
$ scons config=debug
build using 8 parallel build jobs
but do not download any game packs
$ scons -j8 --no-packs
======================================================================
""" )
Return()
AddOption('--no-packs',
dest='no_packs',
action='store_true',
help="don't fetch game packs")
active_configs = []
# load up configurations from the save file
if ( os.path.exists( conf_filename ) ):
f = open( conf_filename )
print( 'reading saved configuration from site.conf' )
try:
while ( True ):
c = pickle.load( f )
active_configs.append( c )
except:
pass
# read the command line and build configs
config_statements = sys.argv[1:]
active_configs = config.ConfigParser().parseStatements( active_configs, config_statements )
assert( len( active_configs ) >= 1 )
# save the config
print( 'saving updated configuration' )
f = open( conf_filename, 'wb' )
for c in active_configs:
pickle.dump( c, f, -1 )
print( 'emit build rules' )
for c in active_configs:
print( 'emit configuration: %s' % repr( c ) )
c.emit()