42 lines
1.7 KiB
CMake
42 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
project(lua-cmake-build)
|
|
|
|
include(lua-config.cmake)
|
|
|
|
file(GLOB LUA_SOURCES ${LUA_SRC_DIR}/*.c)
|
|
foreach (luasourcefile ${LUA_SOURCES})
|
|
get_filename_component(testname ${luasourcefile} NAME_WLE)
|
|
get_filename_component(dirname ${luasourcefile} DIRECTORY)
|
|
## skip over lua.c and luac.c
|
|
string(FIND ${luasourcefile} "lua.c" LUA_C_NAME)
|
|
if(${LUA_C_NAME} LESS 0)
|
|
list(APPEND LUA_LIBRARY_SRC ${luasourcefile})
|
|
endif()
|
|
endforeach()
|
|
|
|
add_library(lua_static STATIC ${LUA_LIBRARY_SRC})
|
|
set_property(TARGET lua_static PROPERTY OUTPUT_NAME ${LUA_LIBRARY_NAME}_static)
|
|
set_target_properties(lua_static PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreadedDLL" PREFIX "")
|
|
install(TARGETS lua_static ARCHIVE DESTINATION ${CMAKE_BINARY_DIR})
|
|
|
|
add_executable(lua_binary ${LUA_SRC_DIR}/lua.c)
|
|
target_link_libraries(lua_binary lua_library)
|
|
set_property(TARGET lua_binary PROPERTY OUTPUT_NAME ${LUA_BINARY_NAME})
|
|
set_target_properties(lua_binary PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
|
|
|
|
add_executable(luac_binary ${LUA_SRC_DIR}/luac.c)
|
|
target_link_libraries(luac_binary lua_static)
|
|
set_property(TARGET luac_binary PROPERTY OUTPUT_NAME ${LUAC_BINARY_NAME})
|
|
set_target_properties(luac_binary PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
|
|
|
|
add_definitions(-DLUA_BUILD_AS_DLL)
|
|
add_library(lua_library SHARED ${LUA_LIBRARY_SRC})
|
|
set_property(TARGET lua_library PROPERTY OUTPUT_NAME ${LUA_LIBRARY_NAME})
|
|
set_target_properties(lua_library PROPERTIES MSVC_RUNTIME_LIBRARY "MultiThreadedDLL" PREFIX "")
|
|
|
|
install(TARGETS lua_binary luac_binary lua_static lua_library
|
|
RUNTIME DESTINATION ${CMAKE_BINARY_DIR}
|
|
LIBRARY DESTINATION ${CMAKE_BINARY_DIR}
|
|
ARCHIVE DESTINATION ${CMAKE_BINARY_DIR}
|
|
)
|