sourcepawn/compiler/AMBuilder
author Kyle Sanderson <kyle.leet@gmail.com>
Thu Jul 18 15:50:57 2013 -0400 (2013-07-18)
changeset 3951 c3f26df2183f
parent 3835 ac5919d50903
child 4177 14bb936ba41f
permissions -rw-r--r--
Removed -Wno-parentheses from posix build and fixed warnings (bug 5745, r=psychonic).
dvander@2784
     1
# vim: set ts=2 sw=2 tw=99 noet ft=python: 
dvander@2784
     2
import os
dvander@2784
     3
dvander@2784
     4
compiler = SM.DefaultCompiler()
dvander@2784
     5
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public'))
dvander@2784
     6
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'public', 'sourcepawn'))
dvander@2784
     7
compiler['CINCLUDES'].append(os.path.join(AMBuild.sourceFolder, 'sourcepawn', 'compiler'))
dvander@2784
     8
compiler['CINCLUDES'].append(os.path.join(AMBuild.outputFolder, 'includes'))
dvander@2784
     9
ds@3261
    10
if compiler.cc.name == 'gcc' or compiler.cc.name == 'clang':
kyle@3951
    11
	compiler['CFLAGS'].append('-Wno-format')
dvander@2983
    12
	if AMBuild.target['platform'] == 'linux':
dvander@2983
    13
		compiler['POSTLINKFLAGS'].extend(['-lgcc', '-lm'])
dvander@2784
    14
elif compiler.cc.name == 'msvc':
dvander@2784
    15
	compiler['POSTLINKFLAGS'].remove('/SUBSYSTEM:WINDOWS')
dvander@2784
    16
	compiler['POSTLINKFLAGS'].append('/SUBSYSTEM:CONSOLE')
dvander@2784
    17
dvander@2784
    18
if AMBuild.target['platform'] == 'linux':
skamonkey@3444
    19
	compiler['CDEFINES'].extend(['LINUX', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC', '_GNU_SOURCE'])
dvander@2983
    20
elif AMBuild.target['platform'] == 'darwin':
dvander@2983
    21
	compiler['CDEFINES'].extend(['DARWIN', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC'])
dvander@2784
    22
dvander@2784
    23
extension = AMBuild.AddJob('spcomp')
dvander@2784
    24
binary = Cpp.ExecutableBuilder('spcomp', AMBuild, extension, compiler)
dvander@2784
    25
files = [
dvander@2784
    26
	'libpawnc.c',
dvander@2784
    27
	'lstring.c',
dvander@2784
    28
	'memfile.c',
dvander@2784
    29
	'pawncc.c',
dvander@2784
    30
	'sc1.c',
dvander@2784
    31
	'sc2.c',
dvander@2784
    32
	'sc3.c',
dvander@2784
    33
	'sc4.c',
dvander@2784
    34
	'sc5.c',
dvander@2784
    35
	'sc6.c',
dvander@2784
    36
	'sc7.c',
dvander@2784
    37
	'scexpand.c',
dvander@2784
    38
	'sci18n.c',
dvander@2784
    39
	'sclist.c',
dvander@2784
    40
	'scmemfil.c',
dvander@2784
    41
	'scstate.c',
dvander@2784
    42
	'sctracker.c',
dvander@2784
    43
	'scvars.c',
dvander@2784
    44
	'sp_file.c',
dvander@2784
    45
	'zlib/adler32.c',
dvander@2784
    46
	'zlib/compress.c',
dvander@2784
    47
	'zlib/crc32.c',
dvander@2784
    48
	'zlib/deflate.c',
dvander@2784
    49
	'zlib/gzio.c',
dvander@2784
    50
	'zlib/infback.c',
dvander@2784
    51
	'zlib/inffast.c',
dvander@2784
    52
	'zlib/inflate.c',
dvander@2784
    53
	'zlib/inftrees.c',
dvander@2784
    54
	'zlib/trees.c',
dvander@2784
    55
	'zlib/uncompr.c',
dvander@3075
    56
	'zlib/zutil.c',
dvander@3075
    57
	'sp_symhash.c'
dvander@2784
    58
	]
dvander@2784
    59
if AMBuild.target['platform'] == 'linux':
dvander@2784
    60
	files.append('binreloc.c')
dvander@2784
    61
binary.AddSourceFiles('sourcepawn/compiler', files)
dvander@2784
    62
dvander@2784
    63
if AMBuild.target['platform'] == 'windows':
asherkin@3630
    64
	env = {'RCDEFINES': ['BINARY_NAME="' + binary.binaryFile + '"', 'SM_GENERATED_BUILD']}
dvander@2784
    65
	binary.AddResourceFile('sourcepawn/compiler/libpawnc.rc', env)
asherkin@3630
    66
elif AMBuild.target['platform'] == 'darwin' and isinstance(binary, Cpp.LibraryBuilder):
asherkin@3630
    67
	binary.compiler['POSTLINKFLAGS'].extend(['-compatibility_version', '1.0.0'])
asherkin@3630
    68
	binary.compiler['POSTLINKFLAGS'].extend(['-current_version', AMBuild.cache['version']])
dvander@2784
    69
asherkin@3835
    70
SM.ExtractDebugInfo(extension, binary)
dvander@2784
    71
binary.SendToJob()
asherkin@3477
    72