umegaya/ffiex — pull request #4 by umegaya (2014-05-13 06:38:48+00:00)
Title: ffi.csrc improvement

refs #3

- now csrc's compile backend become pluggable. it make ffiex less gcc-dependent and for more compiler can be supported. started limited support of tcc. but still gcc is our first class backend because only tcc --run is supported for OSX.

- according to above plan, to hide each compiler's difference, now option format which is passed to copt is changed. (more abstract. still old format supported)
new format is like following:
``` lua
options = {
path = {
include = { path1, path2, ... },
sys_include = { syspath1, syspath2, ... },
lib = { libpath1, libpath2, ... }
},
lib = { libname1, libname2, ... },
extra = { opt1, opt2, ... },
define = { booldef1, booldef2, ... def1 = val1, def2 = val2 }
}
```
old format option table which has not "extra" key will be treated as { extra = old_option }.

- support __has_include_next correctly (also more correct handling for #include_next)