File: SConscript

package info (click to toggle)
btanks 0.9.8083-9
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 43,616 kB
  • sloc: cpp: 46,425; ansic: 12,005; xml: 4,262; python: 313; sh: 13; makefile: 13
file content (147 lines) | stat: -rw-r--r-- 5,504 bytes parent folder | download | duplicates (5)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
import sys

Import('env')
Import('version')
Import('revision')
Import('debug')
Import('sdl_cflags')
Import('sdl_libs')
Import('lib_dir')
Import('smpeg_lib')

venv = env.Clone()
env = env.Clone()
env.Append(CPPPATH=['#/engine', '#/engine/src'])
bt_env = env.Clone()

env.MergeFlags(sdl_cflags, sdl_libs)
bt_env.MergeFlags(sdl_cflags, sdl_libs)

venv.Append(CPPDEFINES=['VERSION="\\"' + version + '\\""'])
venv.Append(CPPDEFINES=['REVISION=%d' % revision])

venv.Append(CPPDEFINES=['BTANKSAPI=DLLEXPORT']);
env.Append(CPPDEFINES=['BTANKSAPI=DLLEXPORT']);

vobj = venv.SharedObject('src/version.cpp')
bt_sources = 	[
#networking
	'net/message.cpp', 'net/server.cpp', 'net/client.cpp', 'net/connection.cpp', 'net/monitor.cpp', 'net/scanner.cpp', 
#menu
	'menu/checkbox.cpp', 'menu/shop.cpp', 'menu/image_view.cpp', 'menu/shop_item.cpp', 'menu/popup_menu.cpp', 
	'menu/start_server_menu.cpp', 'menu/join_server_menu.cpp', 'menu/campaign_menu.cpp', 'menu/chat.cpp',
	'menu/menu.cpp', 'menu/box.cpp', 'menu/upper_box.cpp', 'menu/container.cpp', 'menu/menu_item.cpp',
	'menu/map_picker.cpp', 'menu/scroll_list.cpp', 'menu/control.cpp', 'menu/map_details.cpp', 'menu/player_picker.cpp', 
	'menu/chooser.cpp', 'menu/label.cpp', 'menu/button.cpp', 'menu/menu_config.cpp', 'menu/map_desc.cpp', 
	'menu/prompt.cpp', 'menu/text_control.cpp', 'menu/host_list.cpp', 'menu/options_menu.cpp', 'menu/control_picker.cpp',
	'menu/slider.cpp', 'menu/redefine_keys.cpp', 'menu/tooltip.cpp', 'menu/player_name_control.cpp', 
	'menu/host_item.cpp', 'menu/number_control.cpp', 'menu/video_control.cpp', 'menu/network_status.cpp', 
	'menu/join_team.cpp', 'menu/mode_panel.cpp', 'menu/grid.cpp', 'menu/notepad.cpp', 'menu/video_control_disabled.cpp', 
	'menu/simple_gamepad_setup.cpp', 'menu/medals.cpp', 'menu/image.cpp', 'menu/main_menu.cpp', 'menu/profiles_menu.cpp', 
	'menu/new_profile_dialog.cpp', 
#end of menu

	'src/finder.cpp', 'src/zbox.cpp', 'src/campaign.cpp', 'src/netstats.cpp', 
	
	'src/alarm.cpp', 'src/base_object.cpp', 'src/notifying_xml_parser.cpp', 'src/xml_parser.cpp', 
	'src/special_zone.cpp', 'src/game_monitor.cpp', 
	'src/player_manager.cpp', 'src/variants.cpp', 

	'ai/base.cpp', 'ai/buratino.cpp', 'ai/herd.cpp', 'ai/traits.cpp', 'ai/waypoints.cpp', 'ai/rush.cpp', 'ai/old_school.cpp', 'ai/trooper.cpp', 'ai/targets.cpp', 
		
	'src/player_state.cpp', 'controls/control_method.cpp', 'controls/simple_joy_bindings.cpp', 
	'controls/joyplayer.cpp', 'controls/keyplayer.cpp', 'controls/mouse_control.cpp', 

	'src/object.cpp', 'src/animation_model.cpp', 'src/rotating_object.cpp', 
	'src/resource_manager.cpp', 'src/world.cpp',
	
	'tmx/generator_object.cpp', 'tmx/tileset.cpp', 'tmx/generator.cpp', 'tmx/tileset_list.cpp',  
	'tmx/map.cpp', 'tmx/layer.cpp',
	
	'src/var.cpp', 'src/config.cpp', 'src/registrar.cpp', 'src/profiler.cpp', 
	
	'src/player_slot.cpp', 'src/hud.cpp', 'src/console.cpp',
	'src/i18n.cpp', 'src/game.cpp', 'src/window.cpp', 'src/logo.cpp', 
	'src/credits.cpp', 'src/cheater.cpp', 
	'src/vehicle_traits.cpp', 'src/nickname.cpp',
	'src/rt_config.cpp', 'src/team.cpp', 
	
	'sound/mixer.cpp', 'sound/ogg_ex.cpp', 'sound/ogg_stream.cpp', 

	vobj
	]

vorbis = 'vorbisfile'
if debug and sys.platform == "win32": 
	vorbis = 'vorbisfile_d'

bt_libs = ['mrt', 'sdlx', smpeg_lib, 'SDL', vorbis, 'clunk']

if sys.platform != 'win32':
	got_lua = False
	for lua in ['lua5.1', 'lua5.0', 'lua']: 
		try: 
			env.ParseConfig("pkg-config --cflags --libs %s 2>/dev/null" %lua);
			got_lua = True
			env.Append(CPPDEFINES=['ENABLE_LUA'])
			bt_libs.append(lua)
			break
		except: 
			continue
	if not got_lua: 
		raise Exception("Cannot find lua5.1/lua5.0 or lua pkg-config information")

env.Append(CPPDEFINES=['ENABLE_LUA'])
bt_sources.append('luaxx/state.cpp')
bt_sources.append('luaxx/lua_hooks.cpp')

if sys.platform == "win32":
	bt_libs.append('lua')
	bt_libs.append('Ws2_32')
	bt_libs.append('user32')
	#bt_libs.append('gdi32')
#	bt_libs.append('opengl32')
#else: 
#	bt_libs.append('GL')

if sys.platform != 'win32':
	env.Append(LINKFLAGS=['-Wl,-rpath,'+ lib_dir])
	env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/mrt'])
	env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/sdlx'])
	env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/clunk'])


bt = env.SharedLibrary('btanks_engine', bt_sources, LIBS=bt_libs)

if sys.platform != 'win32' and len(env['prefix']) > 0:
	Import('install_targets')
	Import('lib_dir')
	install_targets.append(Install(lib_dir, bt))
else:
	Install('#', bt[0])

bt_main_sources = ['src/main.cpp']
bt_main_libs =  ['mrt', 'btanks_engine', 'SDL', 'sdlx']

if sys.platform == "win32":
	bt_rc = env.RES('src/bt.rc')
	bt_main_sources.append(bt_rc)
	bt_main_libs.append('user32')
	bt_main_libs.append('sdlx_main')

if sys.platform != 'win32':
	bt_env.Append(LINKFLAGS=['-Wl,-rpath,'+ lib_dir])
	bt_env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/mrt'])
	bt_env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/sdlx'])
	bt_env.Append(LINKFLAGS=['-Wl,-rpath-link,build/' + env['mode'] + '/clunk'])

bt_main = bt_env.Program('btanks', bt_main_sources, LIBS=bt_main_libs, RPATH=[lib_dir])

if sys.platform == 'win32': 
	bt_env.AddPostAction(bt_main, 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;2')

if sys.platform != 'win32' and len(bt_env['prefix']) > 0:
	Import('install_targets');
	install_targets.append(Install(bt_env['prefix'] + '/bin', bt_main))
else: 
	Install('#', bt_main)