Skip to content

Instantly share code, notes, and snippets.

@skyone-wzw
Last active December 22, 2021 05:19
Show Gist options
  • Save skyone-wzw/b40164a62e58492425a40c990c93e440 to your computer and use it in GitHub Desktop.
Save skyone-wzw/b40164a62e58492425a40c990c93e440 to your computer and use it in GitHub Desktop.
Use CMake to build lua
project(lua C)
cmake_minimum_required(VERSION 3.16)
set(src_code
src/lapi.c src/lcode.c src/lctype.c src/ldebug.c src/ldo.c src/ldump.c src/lfunc.c src/lgc.c src/llex.c
src/lmem.c src/lobject.c src/lopcodes.c src/lparser.c src/lstate.c src/lstring.c src/ltable.c src/ltm.c
src/lundump.c src/lvm.c src/lzio.c)
set(src_lib
src/lauxlib.c src/lbaselib.c src/lcorolib.c src/ldblib.c src/liolib.c src/lmathlib.c src/loadlib.c
src/loslib.c src/lstrlib.c src/ltablib.c src/lutf8lib.c src/linit.c)
set(src_exec src/lua.c)
set(src_comp src/luac.c)
add_library(liblua_static STATIC ${src_code} ${src_lib})
set_target_properties(liblua_static PROPERTIES OUTPUT_NAME lua)
add_library(liblua_share SHARED ${src_code} ${src_lib})
set_target_properties(liblua_share PROPERTIES OUTPUT_NAME lua)
add_executable(lua ${src_code} ${src_lib} ${src_exec})
set_target_properties(lua PROPERTIES OUTPUT_NAME lua)
add_executable(luac ${src_code} ${src_lib} ${src_comp})
set_target_properties(luac PROPERTIES OUTPUT_NAME luac)
@skyone-wzw
Copy link
Author

skyone-wzw commented Dec 22, 2021

使用CMake构建lua。包含lua动态链接库、lua静态链接库、lua解释器、lua编译器。

  1. 这里下载 lua 源码。 这里我使用 5.4.3 版。
cd ~
wget https://www.lua.org/ftp/lua-5.4.3.tar.gz
  1. 解压下载好的文件并将其中 src 目录复制到一个空文件夹中。
tar -zxvf lua-5.4.3.tar.gz
mkdir build-lua
cp -p lua-5.4.3/src build-lua
cd build-lua
  1. 下载此文件并开始构建。
wget \
  https://gist.github.com/skyone-wzw/b40164a62e58492425a40c990c93e440/raw/d8d0bf768fc8b5022b455ec4f4ba801242b8b673/CMakeLists.txt
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release  ..
make

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment