core/AMBuilder
author Nicholas Hastings <skamonkey@gmail.com>
Tue Jan 22 23:18:27 2013 -0500 (2013-01-22)
changeset 3749 4dc3d723c490
parent 3748 f968eb892d4c
child 3790 98b099a406d2
permissions -rw-r--r--
Triggering build against new mac libprotobuf.
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@3743
    21
dvander@2784
    22
	extension = AMBuild.AddJob(name)
dvander@2784
    23
	binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
dvander@2784
    24
	SM.PreSetupHL2Job(extension, binary, i)
skamonkey@3743
    25
skamonkey@3743
    26
	if i == 'csgo':
skamonkey@3743
    27
		if AMBuild.target['platform'] == 'linux':
skamonkey@3743
    28
			link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a')
skamonkey@3743
    29
			target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'linux32', 'release'), 'libprotobuf.a')
skamonkey@3743
    30
			try:
skamonkey@3743
    31
				os.lstat(link)
skamonkey@3743
    32
			except:
skamonkey@3743
    33
				extension.AddCommand(SymlinkCommand(link, target))
skamonkey@3743
    34
		elif AMBuild.target['platform'] == 'darwin':
skamonkey@3743
    35
			link = os.path.join(os.path.join(AMBuild.outputFolder, extension.workFolder), 'libprotobuf.a')
skamonkey@3743
    36
			target = os.path.join(os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'osx32', 'release'), 'libprotobuf.a')
skamonkey@3743
    37
			try:
skamonkey@3743
    38
				os.lstat(link)
skamonkey@3743
    39
			except:
skamonkey@3743
    40
				extension.AddCommand(SymlinkCommand(link, target))
skamonkey@3743
    41
		elif AMBuild.target['platform'] == 'windows':
skamonkey@3743
    42
			libPath = os.path.join(AMBuild.cache[sdk['sdk']], 'lib', 'win32', 'release', 'vs2010', 'libprotobuf.lib')
skamonkey@3743
    43
			binary.RebuildIfNewer(libPath)
skamonkey@3743
    44
			binary['POSTLINKFLAGS'].append(libPath)
skamonkey@3743
    45
dvander@2784
    46
	files = [
dvander@2784
    47
		'AdminCache.cpp',
dvander@2784
    48
		'ExtensionSys.cpp',
dvander@2784
    49
		'MenuStyle_Valve.cpp',
dvander@2784
    50
		'logic_bridge.cpp',
dvander@2784
    51
		'smn_entities.cpp',
dvander@2784
    52
		'sm_stringutil.cpp',
dvander@2784
    53
		'ADTFactory.cpp',
dvander@2784
    54
		'ForwardSys.cpp',
dvander@2784
    55
		'MenuVoting.cpp',
dvander@2784
    56
		'smn_events.cpp',
dvander@2784
    57
		'smn_menus.cpp',
dvander@2784
    58
		'sm_trie.cpp',
dvander@2784
    59
		'CDataPack.cpp',
dvander@2784
    60
		'frame_hooks.cpp',
dvander@2784
    61
		'NativeInvoker.cpp',
dvander@2784
    62
		'smn_fakenatives.cpp',
dvander@2784
    63
		'smn_nextmap.cpp',
dvander@2784
    64
		'sourcemm_api.cpp',
dvander@2784
    65
		'ChatTriggers.cpp',
dvander@2784
    66
		'NativeOwner.cpp',
dvander@2784
    67
		'smn_filesystem.cpp',
dvander@2784
    68
		'smn_player.cpp',
dvander@2784
    69
		'sourcemod.cpp',
dvander@2784
    70
		'concmd_cleaner.cpp',
dvander@2784
    71
		'HalfLife2.cpp',
dvander@2784
    72
		'NextMap.cpp',
dvander@2784
    73
		'ConCmdManager.cpp',
dvander@2784
    74
		'HandleSys.cpp',
dvander@2784
    75
		'ConVarManager.cpp',
dvander@2784
    76
		'LibrarySys.cpp',
dvander@2784
    77
		'PlayerManager.cpp',
dvander@2784
    78
		'TimerSys.cpp',
dvander@2784
    79
		'CoreConfig.cpp',
dvander@2784
    80
		'Logger.cpp',
dvander@2784
    81
		'PluginInfoDatabase.cpp',
dvander@2784
    82
		'smn_halflife.cpp',
dvander@2784
    83
		'PluginSys.cpp',
dvander@2784
    84
		'smn_console.cpp',
dvander@2784
    85
		'UserMessages.cpp',
dvander@2784
    86
		'Database.cpp',
dvander@2784
    87
		'MenuManager.cpp',
dvander@2784
    88
		'smn_core.cpp',
dvander@2784
    89
		'smn_hudtext.cpp',
dvander@2784
    90
		'smn_usermsgs.cpp',
dvander@2784
    91
		'DebugReporter.cpp',
dvander@2784
    92
		'MenuStyle_Base.cpp',
dvander@2784
    93
		'ShareSys.cpp',
dvander@2784
    94
		'smn_database.cpp',
dvander@2784
    95
		'smn_keyvalues.cpp',
dvander@2784
    96
		'smn_vector.cpp',
dvander@2784
    97
		'EventManager.cpp',
dvander@2784
    98
		'MenuStyle_Radio.cpp',
dvander@2784
    99
		'sm_autonatives.cpp',
dvander@2784
   100
		'sm_srvcmds.cpp',
dvander@2806
   101
		'ConsoleDetours.cpp'
dvander@2784
   102
		]
skamonkey@3743
   103
	
skamonkey@3743
   104
	if i == 'csgo':
skamonkey@3743
   105
		files.append('smn_protobuf.cpp')
skamonkey@3743
   106
	else:
skamonkey@3743
   107
		files.append('smn_bitbuffer.cpp')
skamonkey@3743
   108
dvander@2784
   109
	binary.AddSourceFiles('core', files)
skamonkey@3743
   110
skamonkey@3743
   111
	if i == 'csgo':
skamonkey@3743
   112
		files = [
skamonkey@3743
   113
			os.path.join('public', 'engine', 'protobuf', 'netmessages.pb.cc'),
skamonkey@3743
   114
			os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'),
skamonkey@3743
   115
			os.path.join('public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'),
skamonkey@3743
   116
			]
skamonkey@3743
   117
		binary.AddSourceFiles(AMBuild.cache[sdk['sdk']], files)
skamonkey@3743
   118
dvander@2784
   119
	SM.PostSetupHL2Job(extension, binary, i)
asherkin@3748
   120
	
asherkin@3748
   121
	if i == 'csgo':
asherkin@3748
   122
		if AMBuild.target['platform'] in ['linux', 'darwin']:
asherkin@3748
   123
			binary.AddObjectFiles(['libprotobuf.a'])
asherkin@3748
   124
	
dvander@2784
   125
	SM.AutoVersion('core', binary)
dvander@2784
   126
	binary.SendToJob()
asherkin@3477
   127