112 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
 | 
						|
import os
 | 
						|
 | 
						|
project = SM.HL2Project(builder, 'sourcemod')
 | 
						|
project.sources += [
 | 
						|
  'MenuStyle_Valve.cpp',
 | 
						|
  'logic_bridge.cpp',
 | 
						|
  'smn_entities.cpp',
 | 
						|
  'sm_stringutil.cpp',
 | 
						|
  'MenuVoting.cpp',
 | 
						|
  'smn_events.cpp',
 | 
						|
  'frame_hooks.cpp',
 | 
						|
  'smn_nextmap.cpp',
 | 
						|
  'sourcemm_api.cpp',
 | 
						|
  'ChatTriggers.cpp',
 | 
						|
  'smn_player.cpp',
 | 
						|
  'sourcemod.cpp',
 | 
						|
  'concmd_cleaner.cpp',
 | 
						|
  'HalfLife2.cpp',
 | 
						|
  'NextMap.cpp',
 | 
						|
  'ConCmdManager.cpp',
 | 
						|
  'ConVarManager.cpp',
 | 
						|
  'PlayerManager.cpp',
 | 
						|
  'TimerSys.cpp',
 | 
						|
  'CoreConfig.cpp',
 | 
						|
  'Logger.cpp',
 | 
						|
  'smn_halflife.cpp',
 | 
						|
  'smn_console.cpp',
 | 
						|
  'UserMessages.cpp',
 | 
						|
  'MenuManager.cpp',
 | 
						|
  'smn_hudtext.cpp',
 | 
						|
  'smn_usermsgs.cpp',
 | 
						|
  'MenuStyle_Base.cpp',
 | 
						|
  'smn_keyvalues.cpp',
 | 
						|
  'smn_vector.cpp',
 | 
						|
  'EventManager.cpp',
 | 
						|
  'MenuStyle_Radio.cpp',
 | 
						|
  'sm_autonatives.cpp',
 | 
						|
  'ConsoleDetours.cpp',
 | 
						|
  'vprof_tool.cpp',
 | 
						|
  'smn_commandline.cpp',
 | 
						|
  'GameHooks.cpp',
 | 
						|
]
 | 
						|
 | 
						|
for sdk_name in SM.sdks:
 | 
						|
  sdk = SM.sdks[sdk_name]
 | 
						|
  for arch in SM.archs:
 | 
						|
    if not arch in sdk.platformSpec[builder.target.platform]:
 | 
						|
      continue
 | 
						|
 | 
						|
    binary_name = 'sourcemod.' + sdk.ext
 | 
						|
 | 
						|
    binary = SM.HL2Config(project, binary_name, sdk, arch)
 | 
						|
    compiler = binary.compiler
 | 
						|
 | 
						|
    compiler.cxxincludes += [
 | 
						|
      builder.sourcePath
 | 
						|
    ]
 | 
						|
 | 
						|
    if sdk.name == 'csgo':
 | 
						|
      compiler.cxxincludes += [
 | 
						|
        os.path.join(sdk.path, 'common', 'protobuf-2.5.0', 'src'),
 | 
						|
        os.path.join(sdk.path, 'public', 'engine', 'protobuf'),
 | 
						|
        os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf')
 | 
						|
      ]
 | 
						|
 | 
						|
    if compiler.like('msvc'):
 | 
						|
      compiler.defines += ['_ALLOW_KEYWORD_MACROS']
 | 
						|
    if builder.target.platform == 'linux':
 | 
						|
      compiler.postlink += ['-lpthread', '-lrt']
 | 
						|
 | 
						|
    if sdk.name == 'csgo':
 | 
						|
      if builder.target.platform == 'linux':
 | 
						|
        if arch == 'x86':
 | 
						|
          lib_path = os.path.join(sdk.path, 'lib', 'linux32', 'release', 'libprotobuf.a')
 | 
						|
        elif arch == 'x64':
 | 
						|
          lib_path = os.path.join(sdk.path, 'lib', 'linux64', 'release', 'libprotobuf.a')
 | 
						|
        compiler.linkflags += ['-Wl,--exclude-libs=libprotobuf.a']
 | 
						|
      elif builder.target.platform == 'mac':
 | 
						|
        if arch == 'x86':
 | 
						|
          lib_path = os.path.join(sdk.path, 'lib', 'osx32', 'release', 'libprotobuf.a')
 | 
						|
        elif arch == 'x64':
 | 
						|
          lib_path = os.path.join(sdk.path, 'lib', 'osx64', 'release', 'libprotobuf.a')
 | 
						|
      elif builder.target.platform == 'windows':
 | 
						|
        msvc_ver = compiler.version
 | 
						|
        vs_year = ''
 | 
						|
        if 1900 <= msvc_ver < 2000:
 | 
						|
          vs_year = '2015'
 | 
						|
        else:
 | 
						|
          raise Exception('Cannot find libprotobuf for MSVC version "' + str(compiler.version) + '"')
 | 
						|
 | 
						|
        if 'DEBUG' in compiler.defines:
 | 
						|
          lib_path = os.path.join(sdk.path, 'lib', 'win32', 'debug', 'vs' + vs_year, 'libprotobuf.lib')
 | 
						|
        else:
 | 
						|
          lib_path = os.path.join(sdk.path, 'lib', 'win32', 'release', 'vs' + vs_year, 'libprotobuf.lib')
 | 
						|
      compiler.linkflags.insert(0, binary.Dep(lib_path))
 | 
						|
  
 | 
						|
    if sdk.name == 'csgo':
 | 
						|
      binary.sources += ['smn_protobuf.cpp']
 | 
						|
    else:
 | 
						|
      binary.sources += ['smn_bitbuffer.cpp']
 | 
						|
 | 
						|
    if sdk.name == 'csgo':
 | 
						|
      binary.sources += [
 | 
						|
        os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'),
 | 
						|
        os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessages.pb.cc'),
 | 
						|
        os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf', 'cstrike15_usermessage_helpers.cpp'),
 | 
						|
      ]
 | 
						|
 | 
						|
SM.binaries += builder.Add(project)
 | 
						|
 |