Vendor PatchELF
This commit is contained in:
parent
eb96d80e5a
commit
67002006f3
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -10,3 +10,6 @@
|
||||
[submodule "dependencies/zenity/src"]
|
||||
path = dependencies/zenity/src
|
||||
url = https://gitea.thebrokenrail.com/TheBrokenRail/zenity.git
|
||||
[submodule "launcher/dependencies/patchelf/src"]
|
||||
path = launcher/dependencies/patchelf/src
|
||||
url = https://github.com/NixOS/patchelf.git
|
||||
|
@ -1,8 +1,31 @@
|
||||
# Setup Toolchain
|
||||
macro(setup_toolchain target)
|
||||
# Use ARM Cross-Compiler
|
||||
set(CMAKE_C_COMPILER "${target}-gcc")
|
||||
set(CMAKE_CXX_COMPILER "${target}-g++")
|
||||
# Target Variants
|
||||
set(target_variants "${target}")
|
||||
macro(add_target_variant value)
|
||||
string(REPLACE "-linux" "-${value}-linux" target_variant "${target}")
|
||||
list(APPEND target_variants "${target_variant}")
|
||||
endmacro()
|
||||
add_target_variant(unknown)
|
||||
add_target_variant(none)
|
||||
add_target_variant(pc)
|
||||
# Find Compiler
|
||||
macro(find_compiler output name)
|
||||
set(possible_names "")
|
||||
foreach(possible_target IN LISTS target_variants)
|
||||
list(APPEND possible_names "${possible_target}-${name}")
|
||||
endforeach()
|
||||
find_program(
|
||||
"${output}"
|
||||
NAMES ${possible_names}
|
||||
NO_CACHE
|
||||
)
|
||||
if("${${output}}" STREQUAL "${output}-NOTFOUND")
|
||||
message(FATAL_ERROR "Unable To Find ${name}")
|
||||
endif()
|
||||
endmacro()
|
||||
find_compiler(CMAKE_C_COMPILER "gcc")
|
||||
find_compiler(CMAKE_CXX_COMPILER "g++")
|
||||
# Extra
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
# Custom Search Paths
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
#include <libreborn/libreborn.h>
|
||||
#include <symbols/minecraft.h>
|
||||
#include <mods/init/init.h>
|
||||
#include <mods/misc/misc.h>
|
||||
|
||||
// The Actual Mod
|
||||
@ -633,11 +632,7 @@ static void Inventory_setupDefault_FillingContainer_addItem_call_injection(unsig
|
||||
}
|
||||
|
||||
// Init
|
||||
HOOK(init_creative, void, ()) {
|
||||
ensure_init_creative();
|
||||
(*real_init_creative)();
|
||||
|
||||
__attribute__((constructor)) static void init_expanded_creative() {
|
||||
INFO("Loading Expanded Creative Mod");
|
||||
|
||||
misc_run_on_creative_inventory_setup(Inventory_setupDefault_FillingContainer_addItem_call_injection);
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
project(launcher)
|
||||
|
||||
# Dependencies
|
||||
add_subdirectory(dependencies)
|
||||
|
||||
# Launcher
|
||||
add_executable(launcher src/bootstrap.c src/patchelf.c src/crash-report.c)
|
||||
if(MCPI_SERVER_MODE)
|
||||
|
4
launcher/dependencies/CMakeLists.txt
Normal file
4
launcher/dependencies/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
project(launcher-dependencies)
|
||||
|
||||
# PatchELF
|
||||
add_subdirectory(patchelf)
|
14
launcher/dependencies/patchelf/CMakeLists.txt
Normal file
14
launcher/dependencies/patchelf/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
||||
project(patchelf)
|
||||
|
||||
# Silence Warnings
|
||||
add_compile_options(-w)
|
||||
|
||||
## PatchELF
|
||||
|
||||
# Build
|
||||
add_executable(patchelf src/src/patchelf.cc)
|
||||
target_compile_definitions(patchelf PRIVATE -D_FILE_OFFSET_BITS=64)
|
||||
set_target_properties(patchelf PROPERTIES CXX_STANDARD 17)
|
||||
|
||||
# Install
|
||||
install(TARGETS patchelf DESTINATION "${MCPI_BIN_DIR}")
|
1
launcher/dependencies/patchelf/src
Submodule
1
launcher/dependencies/patchelf/src
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 734daa3d0f79cf1a0c81f927d846ace5d6a2c8e1
|
@ -72,8 +72,9 @@ static void duplicate_mcpi_executable(const char *original_path, char *new_path)
|
||||
"--remove-needed", "libbcm_host.so", \
|
||||
"--remove-needed", "libX11.so.6", \
|
||||
"--remove-needed", "libEGL.so", \
|
||||
"--replace-needed", "libGLESv2.so", "libGLESv1_CM.so.1", \
|
||||
"--replace-needed", "libSDL-1.2.so.0", "libmedia-layer-core.so", \
|
||||
"--remove-needed", "libGLESv2.so", \
|
||||
"--remove-needed", "libSDL-1.2.so.0", \
|
||||
"--add-needed", "libmedia-layer-core.so", \
|
||||
new_path, \
|
||||
NULL \
|
||||
}; \
|
||||
|
@ -1,19 +1,19 @@
|
||||
project(media-layer-gles)
|
||||
|
||||
# Build
|
||||
if(NOT MCPI_HEADLESS_MODE)
|
||||
if(MCPI_USE_GLES1_COMPATIBILITY_LAYER)
|
||||
# GLESv1_CM Compatibility Layer
|
||||
set(GLES_SRC src/compatibility-layer/state.c src/compatibility-layer/passthrough.c src/compatibility-layer/matrix.c src/compatibility-layer/draw.c src/compatibility-layer/buffer.cpp)
|
||||
else()
|
||||
# Passthrough To glfwGetProcAddress()
|
||||
set(GLES_SRC src/passthrough.c)
|
||||
endif()
|
||||
add_library(GLESv1_CM SHARED ${GLES_SRC})
|
||||
target_link_libraries(GLESv1_CM PRIVATE glfw PUBLIC reborn-util PRIVATE dl PRIVATE m)
|
||||
else()
|
||||
if(MCPI_HEADLESS_MODE)
|
||||
# Stubs For Headless Mode
|
||||
add_library(GLESv1_CM SHARED src/stubs.c)
|
||||
set(GLES_SRC src/stubs.c)
|
||||
elseif(MCPI_USE_GLES1_COMPATIBILITY_LAYER)
|
||||
# GLESv1_CM Compatibility Layer
|
||||
set(GLES_SRC src/compatibility-layer/state.c src/compatibility-layer/passthrough.c src/compatibility-layer/matrix.c src/compatibility-layer/draw.c src/compatibility-layer/buffer.cpp)
|
||||
else()
|
||||
# Passthrough To glfwGetProcAddress()
|
||||
set(GLES_SRC src/passthrough.c)
|
||||
endif()
|
||||
add_library(GLESv1_CM SHARED ${GLES_SRC})
|
||||
if(NOT MCPI_HEADLESS_MODE)
|
||||
target_link_libraries(GLESv1_CM PRIVATE glfw PUBLIC reborn-util PRIVATE dl PRIVATE m)
|
||||
endif()
|
||||
|
||||
# Common
|
||||
|
@ -19,6 +19,4 @@ elseif(BUILD_ARM_COMPONENTS)
|
||||
# Install
|
||||
install(TARGETS media-layer-core DESTINATION "${MCPI_LIB_DIR}")
|
||||
install(TARGETS media-layer-core EXPORT sdk DESTINATION "${MCPI_SDK_LIB_DIR}")
|
||||
# Symlink GLESv1_CM To Media Layer Proxy Server
|
||||
install_symlink("libmedia-layer-core.so" "${MCPI_LIB_DIR}/libGLESv1_CM.so.1")
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user