|
|
|
@@ -0,0 +1,67 @@
|
|
|
|
|
# BSD-3-Clause
|
|
|
|
|
# Copyright (c) 2022, Rochet2 <[email protected]>
|
|
|
|
|
# All rights reserved.
|
|
|
|
|
|
|
|
|
|
project (lua C)
|
|
|
|
|
|
|
|
|
|
include(FetchContent)
|
|
|
|
|
FetchContent_Declare(
|
|
|
|
|
lua52
|
|
|
|
|
URL https://www.lua.org/ftp/lua-5.2.4.tar.gz
|
|
|
|
|
URL_HASH SHA256=b9e2e4aad6789b3b63a056d442f7b39f0ecfca3ae0f1fc0ae4e9614401b69f4b
|
|
|
|
|
)
|
|
|
|
|
FetchContent_MakeAvailable(lua52)
|
|
|
|
|
|
|
|
|
|
set(LUA_SOURCE_FOLDER "${lua52_SOURCE_DIR}/src")
|
|
|
|
|
|
|
|
|
|
file(GLOB LOCAL_SOURCES_H "${LUA_SOURCE_FOLDER}/*.h")
|
|
|
|
|
file(GLOB LOCAL_SOURCES_C "${LUA_SOURCE_FOLDER}/*.c")
|
|
|
|
|
list(REMOVE_ITEM LOCAL_SOURCES_C "${LUA_SOURCE_FOLDER}/lua.c")
|
|
|
|
|
list(REMOVE_ITEM LOCAL_SOURCES_C "${LUA_SOURCE_FOLDER}/luac.c")
|
|
|
|
|
|
|
|
|
|
if (LUA_STATIC)
|
|
|
|
|
add_library(lualib STATIC ${LOCAL_SOURCES_H} ${LOCAL_SOURCES_C})
|
|
|
|
|
set_property(TARGET lualib PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
|
|
|
else()
|
|
|
|
|
add_library(lualib SHARED ${LOCAL_SOURCES_H} ${LOCAL_SOURCES_C})
|
|
|
|
|
set_property(TARGET lualib PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
|
|
|
endif()
|
|
|
|
|
add_library(lualib_static STATIC ${LOCAL_SOURCES_H} ${LOCAL_SOURCES_C})
|
|
|
|
|
set_target_properties(lualib PROPERTIES LINKER_LANGUAGE C)
|
|
|
|
|
set_target_properties(lualib_static PROPERTIES LINKER_LANGUAGE C)
|
|
|
|
|
target_include_directories(lualib PUBLIC "${LUA_SOURCE_FOLDER}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
|
target_include_directories(lualib_static PUBLIC "${LUA_SOURCE_FOLDER}" "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
set_target_properties(lualib PROPERTIES OUTPUT_NAME lua52)
|
|
|
|
|
install(TARGETS lualib DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
|
|
|
|
if (NOT LUA_STATIC)
|
|
|
|
|
install(FILES $<TARGET_PDB_FILE:lualib> DESTINATION "${CMAKE_INSTALL_PREFIX}" OPTIONAL)
|
|
|
|
|
endif()
|
|
|
|
|
else()
|
|
|
|
|
set_target_properties(lualib PROPERTIES OUTPUT_NAME lua52)
|
|
|
|
|
install(TARGETS lualib DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
|
|
|
|
|
install(TARGETS lualib_static DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
target_compile_definitions(lualib PRIVATE _CRT_SECURE_NO_WARNINGS)
|
|
|
|
|
target_compile_definitions(lualib_static PRIVATE _CRT_SECURE_NO_WARNINGS)
|
|
|
|
|
if (NOT LUA_STATIC)
|
|
|
|
|
target_compile_definitions(lualib PRIVATE LUA_BUILD_AS_DLL)
|
|
|
|
|
endif()
|
|
|
|
|
elseif (APPLE)
|
|
|
|
|
target_compile_definitions(lualib PUBLIC LUA_USE_MACOSX)
|
|
|
|
|
target_compile_definitions(lualib_static PUBLIC LUA_USE_MACOSX)
|
|
|
|
|
target_compile_options(lualib PRIVATE -Wno-deprecated-declarations -Wno-empty-body)
|
|
|
|
|
target_compile_options(lualib_static PRIVATE -Wno-deprecated-declarations -Wno-empty-body)
|
|
|
|
|
target_link_libraries(lualib readline)
|
|
|
|
|
target_link_libraries(lualib_static readline)
|
|
|
|
|
elseif (UNIX)
|
|
|
|
|
target_compile_definitions(lualib PUBLIC LUA_USE_LINUX)
|
|
|
|
|
target_link_libraries(lualib ${CMAKE_DL_LIBS} m readline)
|
|
|
|
|
target_compile_definitions(lualib_static PUBLIC LUA_USE_LINUX)
|
|
|
|
|
target_link_libraries(lualib_static ${CMAKE_DL_LIBS} m readline)
|
|
|
|
|
set_target_properties(lualib PROPERTIES OUTPUT_NAME lua52)
|
|
|
|
|
set_target_properties(lualib_static PROPERTIES OUTPUT_NAME lua52)
|
|
|
|
|
endif()
|