cmake_minimum_required(VERSION 3.12)
project(lua VERSION 5.0.3 LANGUAGES C)

# Lua 5.0.3: 平铺源码, 无 linit.c(库需手动逐个 luaopen_*)
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -w")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

if(CMAKE_C_COMPILER MATCHES "mingw" OR CMAKE_SYSTEM_NAME STREQUAL "Windows")
    set(IS_WINDOWS TRUE)
endif()

if(NOT IS_WINDOWS)
    list(APPEND EXTRA_LIBS dl)
    add_compile_definitions(LUA_USE_LINUX)
endif()

add_library(lua STATIC
    lapi.c
    lauxlib.c
    lbaselib.c
    lcode.c
    ldblib.c
    ldebug.c
    ldo.c
    ldump.c
    lfunc.c
    lgc.c
    liolib.c
    llex.c
    lmathlib.c
    lmem.c
    loadlib.c
    lobject.c
    lopcodes.c
    lparser.c
    lstate.c
    lstring.c
    lstrlib.c
    ltable.c
    ltablib.c
    ltm.c
    lundump.c
    lvm.c
    lzio.c
)

# ltests.c 仅调试用, 不参与构建
