1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| cmake_minimum_required(VERSION 3.12)
project(Lua)
add_definitions(-DLUA_COMPAT_5_3) if(UNIX) add_definitions(-DLUA_USE_LINUX) endif(UNIX)
### force options if(WIN32) add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>") add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>") endif()
# see https://www.lua.org/manual/5.4/readme.html#other
### build lib set(C_FILES lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lcorolib.c ldblib.c liolib.c lmathlib.c loadlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c linit.c) # prepend 'src/' list(TRANSFORM C_FILES PREPEND "src/") # in C++ style set_source_files_properties(${C_FILES} PROPERTIES LANGUAGE CXX) add_library(lua STATIC ${C_FILES})
### build interpreter set(C_FILES "src/lua.c") set_source_files_properties(${C_FILES} PROPERTIES LANGUAGE CXX) add_executable(lua-interpreter ${C_FILES}) target_link_libraries(lua-interpreter lua) if(UNIX) target_link_libraries(lua-interpreter m dl) endif(UNIX) set_target_properties(lua-interpreter PROPERTIES OUTPUT_NAME lua)
### build compiler set(C_FILES "src/luac.c") set_source_files_properties(${C_FILES} PROPERTIES LANGUAGE CXX) add_executable(luac ${C_FILES}) target_link_libraries(luac lua) if(UNIX) target_link_libraries(luac m dl) endif(UNIX)
# install target install(TARGETS lua RUNTIME DESTINATION lib LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(TARGETS lua-interpreter luac RUNTIME DESTINATION bin ) install(FILES src/lua.hpp src/lua.h src/lualib.h src/lauxlib.h src/luaconf.h DESTINATION include )
|