51 lines
1.6 KiB
Groff
51 lines
1.6 KiB
Groff
Compiling for lua 5.1
|
|
---------------------
|
|
|
|
Starting from version 1.0.8pre1, tolua++ can be compiled with both lua 5.0 and
|
|
5.1. Both versions will output the same code, and the C API (tolua++.h) is the
|
|
same.
|
|
|
|
The build system is not yet ready to detect/decide when to compile for 5.1,
|
|
the easiest way right now is to add a file called 'custom.py' on the root of
|
|
the package, with the following:
|
|
|
|
## BEGIN custom.py
|
|
|
|
CCFLAGS = ['-I/usr/local/include/lua5.1', '-O2', '-ansi']
|
|
LIBPATH = ['/usr/local/lib']
|
|
LIBS = ['lua5.1', 'dl', 'm']
|
|
tolua_bin = 'tolua++5.1'
|
|
tolua_lib = 'tolua++5.1'
|
|
TOLUAPP = 'tolua++5.1'
|
|
|
|
## END custom.py
|
|
|
|
This will build the binary as 'tolua++5.1' and the library as 'libtolua++5.1.a'
|
|
(taken from tolua_bin and tolua_lib), and take the lua headers and libraries
|
|
from /usr/local/include/lua5.1 and /usr/local/lib. It will also link with
|
|
'-llua5.1'. Modify the parameters acording to your system.
|
|
|
|
Compatibility
|
|
-------------
|
|
|
|
There are a couple of things to keep in mind when running code inside tolua
|
|
using the -L option:
|
|
|
|
* `...' and arg: you can still use 'arg' on 5.1, this is done automatically by
|
|
adding the 'arg' declaration to functions on files loaded with dofile.
|
|
|
|
For example, the line:
|
|
|
|
function foo( ... )
|
|
|
|
becomes
|
|
|
|
function foo( ... ) local arg = {n=select('#', ...), ...};
|
|
|
|
This lets you use the same code on both versions without having to make any
|
|
modifications.
|
|
|
|
* keep in mind that there are slight differences on the way string.gsub works,
|
|
and the original version of the function is always kept, so it will behave
|
|
diffently depending on which version of lua you're using.
|