32 lines
1.2 KiB
Lua
32 lines
1.2 KiB
Lua
local ffi = require( "ffi" )
|
|
|
|
local box3d_filename = _G.BOX3D_DLL or "box3d"
|
|
local libs = ffi_box3d or {
|
|
OSX = { x64 = box3d_filename.."_macos.so", arm64 = box3d_filename.."_macos_arm64.so" },
|
|
Windows = { x64 = box3d_filename..".dll" },
|
|
Linux = { x64 = "./bin/linux/lib"..box3d_filename..".so", arm = "./bin/linux/lib"..box3d_filename..".so" },
|
|
BSD = { x64 = box3d_filename..".so" },
|
|
POSIX = { x64 = box3d_filename..".so" },
|
|
Other = { x64 = box3d_filename..".so" },
|
|
}
|
|
|
|
local lib = ffi_box3d or libs[ ffi.os ][ ffi.arch ]
|
|
local lib_box3d = ffi.load( lib )
|
|
|
|
-- load lcpp (ffi.cdef wrapper turned on per default)
|
|
local lcpp = require("tools.lcpp")
|
|
|
|
-- just use LuaJIT ffi and lcpp together
|
|
HEADER_PATH = HEADER_PATH or ""
|
|
ffi.cdef([[
|
|
#include "]]..HEADER_PATH..[[ffi/box3d-headers/base.h"
|
|
#include "]]..HEADER_PATH..[[ffi/box3d-headers/math_functions.h"
|
|
#include "]]..HEADER_PATH..[[ffi/box3d-headers/constants.h"
|
|
#include "]]..HEADER_PATH..[[ffi/box3d-headers/id.h"
|
|
#include "]]..HEADER_PATH..[[ffi/box3d-headers/types.h"
|
|
#include "]]..HEADER_PATH..[[ffi/box3d-headers/collision.h"
|
|
|
|
#include "]]..HEADER_PATH..[[ffi/box3d-headers/box3d.h"
|
|
]])
|
|
|
|
return lib_box3d |