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