Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,6 @@
[submodule "libs/imgui"]
path = libs/imgui
url = https://github.com/TeamREPENTOGON/imgui
[submodule "libs/luasocket"]
path = libs/luasocket
url = https://github.com/lunarmodules/luasocket.git
72 changes: 71 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,33 @@ set (ISAAC_DIRECTORY "" CACHE PATH "Path to the root directory of the game")
set (CMAKE_BUILD_TYPE "Debug")
set (ZHL_LOG_FILE "" CACHE PATH "Path to the file in which logs will be written")

function(apply_patch patch_file patch_dir)
execute_process(
COMMAND ${GIT_EXECUTABLE} apply --check ${patch_file}
WORKING_DIRECTORY ${patch_dir}
RESULT_VARIABLE check_result
OUTPUT_QUIET
ERROR_QUIET
)

if(check_result EQUAL 0)
message(STATUS "Applying patch ${patch_file}")
execute_process(
COMMAND ${GIT_EXECUTABLE} apply ${patch_file}
WORKING_DIRECTORY ${patch_dir}
RESULT_VARIABLE apply_result
OUTPUT_QUIET
ERROR_QUIET
)

if(NOT apply_result EQUAL 0)
message(FATAL_ERROR "Failed to apply patch ${patch_file}: ${apply_result}")
endif()
else()
message(STATUS "Patch ${patch_file} has already been applied or cannot be applied cleanly")
endif()
endfunction()

project(RepExtender)

find_package(OpenGL REQUIRED)
Expand All @@ -14,7 +41,8 @@ include_directories(${CMAKE_SOURCE_DIR}/include "${CMAKE_SOURCE_DIR}/libs/lua"
"${CMAKE_SOURCE_DIR}/libs/LuaBridge/Source/LuaBridge"
"${CMAKE_SOURCE_DIR}/libzhl" "${CMAKE_SOURCE_DIR}/libs/imgui"
"${CMAKE_SOURCE_DIR}/libs/imgui/misc/freetype" "${CMAKE_SOURCE_DIR}/libs/imgui/backends"
"${CMAKE_SOURCE_DIR}/libs/NaturalSort" "${CMAKE_SOURCE_DIR}/libs/glad/include" "${CMAKE_SOURCE_DIR}/libs/mINI/src/mini")
"${CMAKE_SOURCE_DIR}/libs/NaturalSort" "${CMAKE_SOURCE_DIR}/libs/glad/include" "${CMAKE_SOURCE_DIR}/libs/mINI/src/mini"
"${CMAKE_SOURCE_DIR}/libs/luasocket")

# Zydis
option(ZYDIS_BUILD_TOOLS "" OFF)
Expand Down Expand Up @@ -77,6 +105,46 @@ list(REMOVE_ITEM LUA_SRC "${CMAKE_SOURCE_DIR}/libs/lua/onelua.c")
add_compile_definitions(LUA_BUILD_AS_DLL)
add_library(Lua5.4 SHARED ${LUA_SRC})

# LuaSocket
set(LUASOCKET_SRC
${CMAKE_SOURCE_DIR}/libs/luasocket/src/luasocket.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/timeout.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/buffer.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/io.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/auxiliar.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/compat.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/options.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/inet.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/except.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/select.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/tcp.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/udp.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/mime.c
${CMAKE_SOURCE_DIR}/libs/luasocket/src/wsocket.c
)

set(LUASOCKET_HEADERS
${CMAKE_SOURCE_DIR}/libs/luasocket/src/luasocket.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/timeout.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/buffer.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/io.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/auxiliar.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/compat.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/options.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/inet.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/except.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/select.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/tcp.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/udp.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/mime.h
${CMAKE_SOURCE_DIR}/libs/luasocket/src/wsocket.h
)
apply_patch(${CMAKE_SOURCE_DIR}/libs/luasocket_patch.diff ${CMAKE_SOURCE_DIR}/libs/luasocket)
add_compile_definitions(_WIN32)
add_library(LuaSocket SHARED ${LUASOCKET_SRC} ${LUASOCKET_HEADERS})
target_link_libraries(LuaSocket ws2_32 Lua5.4)
# target_include_directories(LuaSocket PUBLIC ${CMAKE_SOURCE_DIR}/libs/luasocket/src)

# IsaacRepentance.h/.cpp
FILE(GLOB ZHL_FILES ${CMAKE_SOURCE_DIR}/libzhl/functions/*.zhl)
LIST(APPEND ZHL_FILES ${CMAKE_SOURCE_DIR}/libzhl/functions/ExtraTypes)
Expand Down Expand Up @@ -207,6 +275,7 @@ target_compile_options(zhlDelirium PUBLIC "/MD")

add_custom_command(TARGET zhlREPENTOGON POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/repentogon/resources" "$<TARGET_FILE_DIR:zhlREPENTOGON>/resources")
add_custom_command(TARGET zhlREPENTOGON POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/repentogon/resources-repentogon" "$<TARGET_FILE_DIR:zhlREPENTOGON>/resources-repentogon")
add_custom_command(TARGET zhlREPENTOGON POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE_DIR:dsound>/LuaSocket.dll" "$<TARGET_FILE_DIR:zhlREPENTOGON>/resources/scripts/repentogon_socket/core.dll")
# add_custom_command(TARGET zhlDelirium POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/delirium/resources-delirium" "$<TARGET_FILE_DIR:zhlDelirium>/resources-delirium")

if(NOT ISAAC_DIRECTORY STREQUAL "")
Expand All @@ -218,6 +287,7 @@ if(NOT ISAAC_DIRECTORY STREQUAL "")
add_custom_command(TARGET zhlREPENTOGON POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE_DIR:zhlREPENTOGON>/zhlREPENTOGON.dll" "${ISAAC_DIRECTORY}")
add_custom_command(TARGET zhlREPENTOGON POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/repentogon/resources" "${ISAAC_DIRECTORY}/resources")
add_custom_command(TARGET zhlREPENTOGON POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/repentogon/resources-repentogon" "${ISAAC_DIRECTORY}/resources-repentogon")
add_custom_command(TARGET zhlREPENTOGON POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE_DIR:dsound>/LuaSocket.dll" "${ISAAC_DIRECTORY}/resources/scripts/repentogon_socket/core.dll")
add_custom_command(TARGET zhlDelirium POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE_DIR:zhlDelirium>/zhlDelirium.dll" "${ISAAC_DIRECTORY}")
# add_custom_command(TARGET zhlDelirium POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/delirium/resources-delirium" "${ISAAC_DIRECTORY}/resources-delirium")
endif()
Expand Down
1 change: 1 addition & 0 deletions libs/luasocket
Submodule luasocket added at 1fad16
13 changes: 13 additions & 0 deletions libs/luasocket_patch.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/src/luasocket.c b/src/luasocket.c
index 0fd99f7..683fa08 100644
--- a/src/luasocket.c
+++ b/src/luasocket.c
@@ -96,7 +96,7 @@ static int base_open(lua_State *L) {
/*-------------------------------------------------------------------------*\
* Initializes all library modules.
\*-------------------------------------------------------------------------*/
-LUASOCKET_API int luaopen_socket_core(lua_State *L) {
+LUASOCKET_API int luaopen_repentogon_socket_core(lua_State *L) {
int i;
base_open(L);
for (i = 0; mod[i].name; i++) mod[i].func(L);
4 changes: 4 additions & 0 deletions repentogon/resources/scripts/main_ex.lua
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ end
local oldrequire = require

function require(modname)
if modname == "socket.core" then
return oldrequire("repentogon_socket.core")
end

local ret = oldrequire(modname)
return ret
end
Expand Down
Loading