2024-10-08 16:47:56 +08:00
|
|
|
local ffi = require( "ffi" )
|
|
|
|
|
|
|
|
|
|
local sokol_filename = _G.SOKOL_DLL or "sokol_dll"
|
|
|
|
|
local libs = ffi_sokol_libs or {
|
2025-05-06 08:04:36 +08:00
|
|
|
OSX = { x64 = sokol_filename.."_macos.so", arm64 = sokol_filename.."_macos_arm64.so" },
|
2024-10-08 16:47:56 +08:00
|
|
|
Windows = { x64 = sokol_filename..".dll" },
|
2025-11-07 14:50:43 +08:00
|
|
|
Linux = { x64 = "./bin/linux/lib"..sokol_filename..".so", arm = "./bin/linux/lib"..sokol_filename..".so" },
|
2024-10-08 16:47:56 +08:00
|
|
|
BSD = { x64 = sokol_filename..".so" },
|
|
|
|
|
POSIX = { x64 = sokol_filename..".so" },
|
|
|
|
|
Other = { x64 = sokol_filename..".so" },
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local lib = ffi_sokol_libs or libs[ ffi.os ][ ffi.arch ]
|
|
|
|
|
local sokol_libs = ffi.load( lib )
|
|
|
|
|
|
2024-12-29 17:05:30 +08:00
|
|
|
-- load lcpp (ffi.cdef wrapper turned on per default)
|
|
|
|
|
local lcpp = require("tools.lcpp")
|
|
|
|
|
|
|
|
|
|
-- just use LuaJIT ffi and lcpp together
|
2025-01-29 14:18:21 +08:00
|
|
|
HEADER_PATH = HEADER_PATH or ""
|
2024-12-29 17:05:30 +08:00
|
|
|
ffi.cdef([[
|
2025-01-29 14:18:21 +08:00
|
|
|
#include "]]..HEADER_PATH..[[ffi/sokol-headers/sokol_args.h"
|
|
|
|
|
#include "]]..HEADER_PATH..[[ffi/sokol-headers/sokol_fetch.h"
|
|
|
|
|
#include "]]..HEADER_PATH..[[ffi/sokol-headers/sokol_glue.h"
|
|
|
|
|
#include "]]..HEADER_PATH..[[ffi/sokol-headers/sokol_time.h"
|
2024-12-29 17:05:30 +08:00
|
|
|
]])
|
2024-10-08 16:47:56 +08:00
|
|
|
|
|
|
|
|
return sokol_libs
|