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)
|