|
dvander@2784
|
1 |
# vim: set ts=2 sw=2 tw=99 noet ft=python: |
|
dvander@2784
|
2 |
import os |
|
skamonkey@3743
|
3 |
from ambuild.command import SymlinkCommand |
|
dvander@2784
|
4 |
|
|
dvander@2784
|
5 |
for i in SM.sdkInfo: |
|
dvander@2784
|
6 |
sdk = SM.sdkInfo[i] |
|
ds@2990
|
7 |
if AMBuild.target['platform'] not in sdk['platform']: |
|
ds@2990
|
8 |
continue |
|
ds@2990
|
9 |
|
|
dvander@2784
|
10 |
name = 'sourcemod.' + sdk['ext'] |
|
dvander@2784
|
11 |
|
|
dvander@2784
|
12 |
compiler = SM.DefaultHL2Compiler('core', i) |
|
dvander@2784
|
13 |
|
|
skamonkey@3743
|
14 |
if i == 'csgo': |
|
skamonkey@3745
|
15 |
# Protobuf 2.3 headers have some signed/unsigned compares. I believe that it's fixed in later versions, but Valve. |
|
skamonkey@3745
|
16 |
if isinstance(compiler.cxx, Cpp.CompatGCC): |
|
skamonkey@3745
|
17 |
compiler.AddToListVar('CFLAGS', '-Wno-sign-compare') |
|
skamonkey@3743
|
18 |
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'common', 'protobuf-2.3.0', 'src')) |
|
skamonkey@3743
|
19 |
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'engine', 'protobuf')) |
|
skamonkey@3743
|
20 |
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'game', 'shared', 'csgo', 'protobuf')) |
|
skamonkey@3856
|
21 |
elif i == 'dota': |
|
skamonkey@3856
|
22 |
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'common', 'protobuf-2.4.1', 'src')) |
|
skamonkey@3856
|
23 |
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'engine', 'protobuf')) |
|
skamonkey@3856
|
24 |
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'game', 'shared', 'protobuf')) |
|
skamonkey@3856
|
25 |
compiler['CXXINCLUDES'].append(os.path.join(AMBuild.cache[sdk['sdk']], 'public', 'game', 'shared', 'dota', 'protobuf')) |
|
skamonkey@3743
|
26 |
|
|
dvander@2784
|
27 |
extension = AMBuild.AddJob(name) |
|
dvander@2784
|
28 |
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) |
|
dvander@2784
|
29 |
SM.PreSetupHL2Job(extension, binary, i) |
|
skamonkey@3743
|
30 |
|
|
dvander@4027
|
31 |
if AMBuild.target['platform'] == 'linux': |
|
dvander@4027
|
32 |
compiler['POSTLINKFLAGS'].append('-lpthread') |
|
dvander@4027
|
33 |
compiler['POSTLINKFLAGS'].append('-lrt') |
|
dvander@4027
|
34 |
|
|
skamonkey@3856
|
35 |
if i in ['csgo', 'dota']: |
|
skamonkey@3743
|
36 |
if AMBuild.target['platform'] == 'linux': |
|
skamonkey@3743
|
37 |
link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a') |
|
skamonkey@3743
|
38 |
target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'linux32', 'release'), 'libprotobuf.a') |
|
skamonkey@3743
|
39 |
try: |
|
skamonkey@3743
|
40 |
os.lstat(link) |
|
skamonkey@3743
|
41 |
except: |
|
skamonkey@3743
|
42 |
extension.AddCommand(SymlinkCommand(link, target)) |
|
skamonkey@3743
|
43 |
elif AMBuild.target['platform'] == 'darwin': |
|
skamonkey@3743
|
44 |
link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a') |
|
skamonkey@3743
|
45 |
target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'osx32', 'release'), 'libprotobuf.a') |
|
skamonkey@3743
|
46 |
try: |
|
skamonkey@3743
|
47 |
os.lstat(link) |
|
skamonkey@3743
|
48 |
except: |
|
skamonkey@3743
|
49 |
extension.AddCommand(SymlinkCommand(link, target)) |
|
skamonkey@3743
|
50 |
elif AMBuild.target['platform'] == 'windows': |
|
skamonkey@3981
|
51 |
if 'DEBUG' in compiler['CDEFINES']: |
|
skamonkey@3981
|
52 |
libPath = os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'win32', 'debug', 'vs2010', 'libprotobuf.lib') |
|
skamonkey@3981
|
53 |
else: |
|
skamonkey@3981
|
54 |
libPath = os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'win32', 'release', 'vs2010', 'libprotobuf.lib') |
|
skamonkey@3743
|
55 |
binary.RebuildIfNewer(libPath) |
|
skamonkey@3743
|
56 |
binary['POSTLINKFLAGS'].append(libPath) |
|
skamonkey@3743
|
57 |
|
|
dvander@2784
|
58 |
files = [ |
|
dvander@2784
|
59 |
'AdminCache.cpp', |
|
dvander@2784
|
60 |
'MenuStyle_Valve.cpp', |
|
dvander@2784
|
61 |
'logic_bridge.cpp', |
|
dvander@2784
|
62 |
'smn_entities.cpp', |
|
dvander@2784
|
63 |
'sm_stringutil.cpp', |
|
dvander@2784
|
64 |
'ADTFactory.cpp', |
|
dvander@2784
|
65 |
'ForwardSys.cpp', |
|
dvander@2784
|
66 |
'MenuVoting.cpp', |
|
dvander@2784
|
67 |
'smn_events.cpp', |
|
dvander@2784
|
68 |
'smn_menus.cpp', |
|
dvander@2784
|
69 |
'sm_trie.cpp', |
|
dvander@2784
|
70 |
'CDataPack.cpp', |
|
dvander@2784
|
71 |
'frame_hooks.cpp', |
|
dvander@2784
|
72 |
'smn_nextmap.cpp', |
|
dvander@2784
|
73 |
'sourcemm_api.cpp', |
|
dvander@2784
|
74 |
'ChatTriggers.cpp', |
|
dvander@2784
|
75 |
'smn_player.cpp', |
|
dvander@2784
|
76 |
'sourcemod.cpp', |
|
dvander@2784
|
77 |
'concmd_cleaner.cpp', |
|
dvander@2784
|
78 |
'HalfLife2.cpp', |
|
dvander@2784
|
79 |
'NextMap.cpp', |
|
dvander@2784
|
80 |
'ConCmdManager.cpp', |
|
dvander@2784
|
81 |
'ConVarManager.cpp', |
|
dvander@2784
|
82 |
'LibrarySys.cpp', |
|
dvander@2784
|
83 |
'PlayerManager.cpp', |
|
dvander@2784
|
84 |
'TimerSys.cpp', |
|
dvander@2784
|
85 |
'CoreConfig.cpp', |
|
dvander@2784
|
86 |
'Logger.cpp', |
|
dvander@2784
|
87 |
'smn_halflife.cpp', |
|
dvander@2784
|
88 |
'smn_console.cpp', |
|
dvander@2784
|
89 |
'UserMessages.cpp', |
|
dvander@2784
|
90 |
'Database.cpp', |
|
dvander@2784
|
91 |
'MenuManager.cpp', |
|
dvander@2784
|
92 |
'smn_core.cpp', |
|
dvander@2784
|
93 |
'smn_hudtext.cpp', |
|
dvander@2784
|
94 |
'smn_usermsgs.cpp', |
|
dvander@2784
|
95 |
'MenuStyle_Base.cpp', |
|
dvander@2784
|
96 |
'smn_database.cpp', |
|
dvander@2784
|
97 |
'smn_keyvalues.cpp', |
|
dvander@2784
|
98 |
'smn_vector.cpp', |
|
dvander@2784
|
99 |
'EventManager.cpp', |
|
dvander@2784
|
100 |
'MenuStyle_Radio.cpp', |
|
dvander@2784
|
101 |
'sm_autonatives.cpp', |
|
dvander@2784
|
102 |
'sm_srvcmds.cpp', |
|
dvander@2806
|
103 |
'ConsoleDetours.cpp' |
|
dvander@2784
|
104 |
] |
|
skamonkey@3743
|
105 |
|
|
skamonkey@3856
|
106 |
if i in ['csgo', 'dota']: |
|
skamonkey@3743
|
107 |
files.append('smn_protobuf.cpp') |
|
skamonkey@3743
|
108 |
else: |
|
skamonkey@3743
|
109 |
files.append('smn_bitbuffer.cpp') |
|
skamonkey@3743
|
110 |
|
|
dvander@2784
|
111 |
binary.AddSourceFiles('core', files) |
|
skamonkey@3743
|
112 |
|
|
skamonkey@3743
|
113 |
if i == 'csgo': |
|
skamonkey@3743
|
114 |
files = [ |
|
skamonkey@3743
|
115 |
os.path.join('public', 'engine', 'protobuf', 'netmessages.pb.cc'), |
|
skamonkey@3743
|
116 |
os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'), |
|
skamonkey@3743
|
117 |
os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'), |
|
skamonkey@3743
|
118 |
] |
|
skamonkey@3743
|
119 |
binary.AddSourceFiles(AMBuild.cache[sdk['sdk']], files) |
|
skamonkey@3856
|
120 |
elif i == 'dota': |
|
skamonkey@3856
|
121 |
files = [ |
|
skamonkey@3925
|
122 |
os.path.join('public', 'engine', 'protobuf', 'networkbasetypes.pb.cc'), |
|
skamonkey@3856
|
123 |
os.path.join('public', 'engine', 'protobuf', 'netmessages.pb.cc'), |
|
skamonkey@3856
|
124 |
os.path.join('public', 'game', 'shared', 'protobuf', 'ai_activity.pb.cc'), |
|
skamonkey@3856
|
125 |
os.path.join('public', 'game', 'shared', 'protobuf', 'usermessages.pb.cc'), |
|
skamonkey@3856
|
126 |
os.path.join('public', 'game', 'shared', 'dota', 'protobuf', 'dota_commonmessages.pb.cc'), |
|
skamonkey@3856
|
127 |
os.path.join('public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessages.pb.cc'), |
|
skamonkey@3856
|
128 |
os.path.join('public', 'game', 'shared', 'dota', 'protobuf', 'dota_usermessage_helpers.cpp'), |
|
skamonkey@3856
|
129 |
] |
|
skamonkey@3856
|
130 |
binary.AddSourceFiles(AMBuild.cache[sdk['sdk']], files) |
|
skamonkey@3743
|
131 |
|
|
dvander@2784
|
132 |
SM.PostSetupHL2Job(extension, binary, i) |
|
asherkin@3748
|
133 |
|
|
skamonkey@3856
|
134 |
if i in ['csgo', 'dota']: |
|
asherkin@3748
|
135 |
if AMBuild.target['platform'] in ['linux', 'darwin']: |
|
asherkin@3748
|
136 |
binary.AddObjectFiles(['libprotobuf.a']) |
|
asherkin@3748
|
137 |
|
|
dvander@2784
|
138 |
SM.AutoVersion('core', binary) |
|
asherkin@3835
|
139 |
SM.ExtractDebugInfo(extension, binary) |
|
dvander@2784
|
140 |
binary.SendToJob() |
|
asherkin@3477
|
141 |
|