lua-cmake-build/CMakeLists.txt

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}
)