|
dvander@4182
|
1 |
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python: |
|
dvander@2784
|
2 |
import os |
|
dvander@2784
|
3 |
|
|
dvander@4182
|
4 |
for sdk_name in SM.sdks: |
|
dvander@4182
|
5 |
sdk = SM.sdks[sdk_name] |
|
dvander@4182
|
6 |
binary_name = 'sourcemod.' + sdk.ext |
|
dvander@4182
|
7 |
|
|
dvander@4182
|
8 |
binary = SM.HL2Library(builder, binary_name, sdk) |
|
dvander@4182
|
9 |
compiler = binary.compiler |
|
skamonkey@3743
|
10 |
|
|
ds@4241
|
11 |
if sdk.name == 'csgo': |
|
dvander@4182
|
12 |
# Protobuf 2.3 headers have some signed/unsigned compares. I believe that it's fixed in later versions, but Valve. |
|
ds@4241
|
13 |
if compiler.cxx.behavior == 'gcc': |
|
dvander@4182
|
14 |
compiler.cflags += ['-Wno-sign-compare'] |
|
dvander@4182
|
15 |
compiler.cxxincludes += [ |
|
dvander@4182
|
16 |
os.path.join(sdk.path, 'common', 'protobuf-2.3.0', 'src'), |
|
dvander@4182
|
17 |
os.path.join(sdk.path, 'public', 'engine', 'protobuf'), |
|
dvander@4182
|
18 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf') |
|
dvander@4182
|
19 |
] |
|
ds@4241
|
20 |
elif sdk.name == 'dota': |
|
dvander@4182
|
21 |
compiler.cxxincludes += [ |
|
dvander@4182
|
22 |
os.path.join(sdk.path, 'common', 'protobuf-2.4.1', 'src'), |
|
dvander@4182
|
23 |
os.path.join(sdk.path, 'public', 'engine', 'protobuf'), |
|
dvander@4182
|
24 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf'), |
|
dvander@4182
|
25 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf') |
|
dvander@4182
|
26 |
] |
|
dvander@4027
|
27 |
|
|
ds@4241
|
28 |
if builder.target_platform == 'linux': |
|
dvander@4182
|
29 |
compiler.postlink += ['-lpthread', '-lrt'] |
|
dvander@4182
|
30 |
|
|
ds@4241
|
31 |
if sdk.name == 'csgo' or sdk.name == 'dota': |
|
ds@4241
|
32 |
if builder.target_platform == 'linux': |
|
dvander@4182
|
33 |
lib_path = os.path.join(sdk.path, 'lib', 'linux32', 'release', 'libprotobuf.a') |
|
ds@4241
|
34 |
elif builder.target_platform == 'mac': |
|
dvander@4182
|
35 |
lib_path = os.path.join(sdk.path, 'lib', 'osx32', 'release', 'libprotobuf.a') |
|
ds@4241
|
36 |
elif builder.target_platform == 'windows': |
|
skamonkey@4265
|
37 |
msvc_ver = int(compiler.cxx.version) |
|
skamonkey@4265
|
38 |
vs_year = '' |
|
skamonkey@4265
|
39 |
if msvc_ver == 1800: |
|
skamonkey@4265
|
40 |
vs_year = '2013' |
|
skamonkey@4265
|
41 |
elif msvc_ver == 1700: |
|
skamonkey@4265
|
42 |
vs_year = '2012' |
|
skamonkey@4265
|
43 |
elif msvc_ver == 1600: |
|
skamonkey@4265
|
44 |
vs_year = '2010' |
|
skamonkey@4265
|
45 |
else: |
|
skamonkey@4265
|
46 |
raise Exception('Cannot find libprotobuf for MSVC version "' + compiler.cxx.version + '"') |
|
skamonkey@4265
|
47 |
|
|
dvander@4182
|
48 |
if 'DEBUG' in compiler.defines: |
|
skamonkey@4265
|
49 |
lib_path = os.path.join(sdk.path, 'lib', 'win32', 'debug', 'vs' + vs_year, 'libprotobuf.lib') |
|
dvander@4182
|
50 |
else: |
|
skamonkey@4265
|
51 |
lib_path = os.path.join(sdk.path, 'lib', 'win32', 'release', 'vs' + vs_year, 'libprotobuf.lib') |
|
dvander@4182
|
52 |
compiler.linkflags.insert(0, binary.Dep(lib_path)) |
|
skamonkey@3743
|
53 |
|
|
dvander@4182
|
54 |
binary.sources += [ |
|
dvander@4182
|
55 |
'AdminCache.cpp', |
|
dvander@4182
|
56 |
'MenuStyle_Valve.cpp', |
|
dvander@4182
|
57 |
'logic_bridge.cpp', |
|
dvander@4182
|
58 |
'smn_entities.cpp', |
|
dvander@4182
|
59 |
'sm_stringutil.cpp', |
|
dvander@4182
|
60 |
'MenuVoting.cpp', |
|
dvander@4182
|
61 |
'smn_events.cpp', |
|
dvander@4182
|
62 |
'smn_menus.cpp', |
|
dvander@4182
|
63 |
'sm_trie.cpp', |
|
dvander@4182
|
64 |
'CDataPack.cpp', |
|
dvander@4182
|
65 |
'frame_hooks.cpp', |
|
dvander@4182
|
66 |
'smn_nextmap.cpp', |
|
dvander@4182
|
67 |
'sourcemm_api.cpp', |
|
dvander@4182
|
68 |
'ChatTriggers.cpp', |
|
dvander@4182
|
69 |
'smn_player.cpp', |
|
dvander@4182
|
70 |
'sourcemod.cpp', |
|
dvander@4182
|
71 |
'concmd_cleaner.cpp', |
|
dvander@4182
|
72 |
'HalfLife2.cpp', |
|
dvander@4182
|
73 |
'NextMap.cpp', |
|
dvander@4182
|
74 |
'ConCmdManager.cpp', |
|
dvander@4182
|
75 |
'ConVarManager.cpp', |
|
dvander@4182
|
76 |
'LibrarySys.cpp', |
|
dvander@4182
|
77 |
'PlayerManager.cpp', |
|
dvander@4182
|
78 |
'TimerSys.cpp', |
|
dvander@4182
|
79 |
'CoreConfig.cpp', |
|
dvander@4182
|
80 |
'Logger.cpp', |
|
dvander@4182
|
81 |
'smn_halflife.cpp', |
|
dvander@4182
|
82 |
'smn_console.cpp', |
|
dvander@4182
|
83 |
'UserMessages.cpp', |
|
dvander@4182
|
84 |
'MenuManager.cpp', |
|
dvander@4182
|
85 |
'smn_core.cpp', |
|
dvander@4182
|
86 |
'smn_hudtext.cpp', |
|
dvander@4182
|
87 |
'smn_usermsgs.cpp', |
|
dvander@4182
|
88 |
'MenuStyle_Base.cpp', |
|
dvander@4182
|
89 |
'smn_keyvalues.cpp', |
|
dvander@4182
|
90 |
'smn_vector.cpp', |
|
dvander@4182
|
91 |
'EventManager.cpp', |
|
dvander@4182
|
92 |
'MenuStyle_Radio.cpp', |
|
dvander@4182
|
93 |
'sm_autonatives.cpp', |
|
dvander@4182
|
94 |
'sm_srvcmds.cpp', |
|
dvander@4182
|
95 |
'ConsoleDetours.cpp' |
|
dvander@4182
|
96 |
] |
|
dvander@4182
|
97 |
|
|
dvander@4182
|
98 |
if sdk.name in ['csgo', 'dota']: |
|
dvander@4182
|
99 |
binary.sources += ['smn_protobuf.cpp'] |
|
dvander@4182
|
100 |
else: |
|
dvander@4182
|
101 |
binary.sources += ['smn_bitbuffer.cpp'] |
|
skamonkey@3743
|
102 |
|
|
ds@4241
|
103 |
if sdk.name == 'csgo': |
|
dvander@4182
|
104 |
binary.sources += [ |
|
dvander@4182
|
105 |
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'), |
|
dvander@4182
|
106 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'), |
|
dvander@4182
|
107 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'), |
|
dvander@4182
|
108 |
] |
|
ds@4241
|
109 |
elif sdk.name == 'dota': |
|
dvander@4182
|
110 |
binary.sources += [ |
|
dvander@4182
|
111 |
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'networkbasetypes.pb.cc'), |
|
dvander@4182
|
112 |
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'), |
|
dvander@4182
|
113 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'ai_activity.pb.cc'), |
|
dvander@4182
|
114 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'usermessages.pb.cc'), |
|
dvander@4182
|
115 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_commonmessages.pb.cc'), |
|
dvander@4182
|
116 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessages.pb.cc'), |
|
dvander@4182
|
117 |
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessage_helpers.cpp'), |
|
dvander@4182
|
118 |
] |
|
skamonkey@3743
|
119 |
|
|
dvander@4182
|
120 |
SM.binaries += [builder.Add(binary)] |
|
skamonkey@3743
|
121 |
|