Generate .scp files as part of the build process.
This commit is contained in:
		
							parent
							
								
									94b64cd6fc
								
							
						
					
					
						commit
						fa446f74a1
					
				@ -1,6 +1,39 @@
 | 
				
			|||||||
# vim: set ts=2 sw=2 tw=99 noet ft=python: 
 | 
					# vim: set ts=2 sw=2 tw=99 noet ft=python: 
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build the packing binary garbage.
 | 
				
			||||||
 | 
					scpack = SM.Program(builder, 'scpack')
 | 
				
			||||||
 | 
					scpack.sources = ['scpack.c']
 | 
				
			||||||
 | 
					scpack = builder.Add(scpack)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Generate pack files.
 | 
				
			||||||
 | 
					packed_files = ['sc5', 'sc7']
 | 
				
			||||||
 | 
					packed_includes = []
 | 
				
			||||||
 | 
					for packed_file in packed_files:
 | 
				
			||||||
 | 
						# The absolute path to sc5-in.scp etc.
 | 
				
			||||||
 | 
						in_path = os.path.join(builder.currentSourcePath, '{0}-in.scp'.format(packed_file))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# The output file relative to the output folder, i.e. sourcepawn/compiler/sc5.scp.
 | 
				
			||||||
 | 
						out_path = os.path.join(builder.buildFolder, '{0}.scp'.format(packed_file))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# The absolute path to the build folder, i.e. /Users/.../sourcepawn/compiler.
 | 
				
			||||||
 | 
						build_folder = os.path.join(builder.buildPath, builder.buildFolder)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# scpack runs in ./sourcepawn/compiler/scpack/ so we build relative paths
 | 
				
			||||||
 | 
						# from there.
 | 
				
			||||||
 | 
						scpack_argv = [
 | 
				
			||||||
 | 
							os.path.join(builder.buildPath, scpack.binary.path),
 | 
				
			||||||
 | 
							os.path.relpath(in_path, build_folder),
 | 
				
			||||||
 | 
							os.path.relpath(os.path.join(builder.buildPath, out_path), build_folder),
 | 
				
			||||||
 | 
						]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						_, (entry,) = builder.AddCommand(
 | 
				
			||||||
 | 
							inputs = [scpack.binary, in_path],
 | 
				
			||||||
 | 
							argv = scpack_argv,
 | 
				
			||||||
 | 
							outputs = ['{0}.scp'.format(packed_file)],
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
						packed_includes += [entry]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
binary = SM.Program(builder, 'spcomp')
 | 
					binary = SM.Program(builder, 'spcomp')
 | 
				
			||||||
compiler = binary.compiler
 | 
					compiler = binary.compiler
 | 
				
			||||||
compiler.includes += [
 | 
					compiler.includes += [
 | 
				
			||||||
@ -8,7 +41,9 @@ compiler.includes += [
 | 
				
			|||||||
  os.path.join(builder.sourcePath, 'public', 'sourcepawn'),
 | 
					  os.path.join(builder.sourcePath, 'public', 'sourcepawn'),
 | 
				
			||||||
  os.path.join(builder.sourcePath, 'sourcepawn', 'compiler'),
 | 
					  os.path.join(builder.sourcePath, 'sourcepawn', 'compiler'),
 | 
				
			||||||
  os.path.join(builder.buildPath, 'includes'),
 | 
					  os.path.join(builder.buildPath, 'includes'),
 | 
				
			||||||
 | 
						os.path.join(builder.buildPath, builder.buildFolder),
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					compiler.sourcedeps += packed_includes
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
if compiler.cc.behavior == 'gcc':
 | 
					if compiler.cc.behavior == 'gcc':
 | 
				
			||||||
  compiler.cflags += ['-std=c99', '-Wno-format']
 | 
					  compiler.cflags += ['-std=c99', '-Wno-format']
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,7 @@
 | 
				
			|||||||
  #pragma warning(disable:4125)  /* decimal digit terminates octal escape sequence */
 | 
					  #pragma warning(disable:4125)  /* decimal digit terminates octal escape sequence */
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "sc5.scp"
 | 
					#include <sc5.scp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined _MSC_VER
 | 
					#if defined _MSC_VER
 | 
				
			||||||
  #pragma warning(pop)
 | 
					  #pragma warning(pop)
 | 
				
			||||||
 | 
				
			|||||||
@ -62,7 +62,7 @@
 | 
				
			|||||||
  #pragma warning(disable:4125)  /* decimal digit terminates octal escape sequence */
 | 
					  #pragma warning(disable:4125)  /* decimal digit terminates octal escape sequence */
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "sc7.scp"
 | 
					#include <sc7.scp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined _MSC_VER
 | 
					#if defined _MSC_VER
 | 
				
			||||||
  #pragma warning(pop)
 | 
					  #pragma warning(pop)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user