Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
df5c966
Account for Smithbox paramdef RemovedVersion field
Dasaav-dsv Jul 14, 2024
2a4708e
Merge pull request #43 from Dasaav-dsv/param-fix
Dasaav-dsv Jul 14, 2024
3652850
Remove submodule dependencies
Dasaav-dsv Aug 3, 2024
a1cb33b
Remove all submodule dependencies
Dasaav-dsv Aug 11, 2024
d0f5786
Remove all dependencies and updater, set version to 0.2.0
Dasaav-dsv Aug 11, 2024
6284785
Update DLUT::DLReferenceCount* types
Dasaav-dsv Aug 11, 2024
1616bf8
GXBS::GXDrawTask is now a DLUT::DLReferenceCountObject
Dasaav-dsv Aug 11, 2024
9154dcd
Less UB
Dasaav-dsv Aug 11, 2024
cb32c78
Update base_address for speed
Dasaav-dsv Aug 11, 2024
dfcee8b
Simplify versioning
Dasaav-dsv Aug 11, 2024
59781ca
Simplify libER memory model - Removed files
Dasaav-dsv Aug 11, 2024
5c375a0
Simplify libER memory model - rewrite allocator templates
Dasaav-dsv Aug 11, 2024
d61205e
Simplify libER memory model - update allocator consumers
Dasaav-dsv Aug 11, 2024
44583c9
Simplify symbol lookup (WIP)
Dasaav-dsv Aug 11, 2024
53839f2
Simplify symbol lookup/Remove versioning
Dasaav-dsv Aug 11, 2024
4045b74
Adapt for removed submodule dependencies
Dasaav-dsv Aug 11, 2024
ad28d66
Removed versioning, repurpose STRINGIFY step
Dasaav-dsv Aug 11, 2024
cadceb7
Simplify symbol lookup
Dasaav-dsv Sep 4, 2024
940f55d
Remove singleton getters
Dasaav-dsv Sep 4, 2024
c039a01
Use min* windows headers
Dasaav-dsv Apr 23, 2025
42efde2
Remove unused source file
Dasaav-dsv Apr 23, 2025
4406cb7
Inline and remove concept
Dasaav-dsv Apr 23, 2025
c1a2c74
Update offsets for 1.16
Dasaav-dsv Apr 23, 2025
26a7f34
Update target version to 1.16
Dasaav-dsv Apr 23, 2025
6673a25
Fix offset typo
Dasaav-dsv Apr 23, 2025
2acc7a2
Add back missing call
Dasaav-dsv Apr 23, 2025
cd61c2f
Silence clang offsetof warning
Dasaav-dsv Apr 23, 2025
61618be
Fix erroneous recursive call
Dasaav-dsv Apr 23, 2025
b532a09
Merge pull request #45 from Dasaav-dsv/1.16-game-upd
Dasaav-dsv Apr 23, 2025
d522e5a
Update and remove busy loop from `DLSY::wait_for_system`
Dasaav-dsv Apr 24, 2025
d8ae5c9
Merge pull request #46 from Dasaav-dsv:1.16-game-upd
Dasaav-dsv Apr 24, 2025
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
10 changes: 1 addition & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1 @@
[submodule "dependencies/cppsv"]
path = dependencies/cppsv
url = https://github.com/Dasaav-dsv/cppsv.git
[submodule "dependencies/wintypes"]
path = dependencies/wintypes
url = https://github.com/Dasaav-dsv/wintypes.git
[submodule "dependencies/thirdparty/mimalloc"]
path = dependencies/thirdparty/mimalloc
url = https://github.com/microsoft/mimalloc.git

81 changes: 13 additions & 68 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.15.0)
project(libER VERSION 0.1.4.2 LANGUAGES C CXX)
project(libER VERSION 0.2.0.0 LANGUAGES C CXX)

# Must build with C++20 or newer
set(CMAKE_CXX_STANDARD 20)
Expand All @@ -10,54 +10,21 @@ add_library("objlibER" OBJECT)
# Set iterator debug level to 0 for ELDEN RING ABI compatibility
add_definitions(-D_ITERATOR_DEBUG_LEVEL=0)

# Dependency: WinTypes
target_link_libraries("objlibER" PUBLIC "wintypes")
add_subdirectory("dependencies/wintypes" "wintypes")

# Dependency: mimalloc
option(MI_SECURE "Use full security mitigations (like guard pages, allocation randomization, double-free mitigation, and free-list corruption detection)" OFF)
option(MI_DEBUG_FULL "Use full internal heap invariant checking in DEBUG mode (expensive)" OFF)
option(MI_PADDING "Enable padding to detect heap block overflow (always on in DEBUG or SECURE mode, or with Valgrind/ASAN)" OFF)
option(MI_OVERRIDE "Override the standard malloc interface (e.g. define entry points for malloc() etc)" OFF)
option(MI_XMALLOC "Enable abort() call on memory allocation failure by default" OFF)
option(MI_SHOW_ERRORS "Show error and warning messages by default (only enabled by default in DEBUG mode)" OFF)
option(MI_TRACK_VALGRIND "Compile with Valgrind support (adds a small overhead)" OFF)
option(MI_TRACK_ASAN "Compile with address sanitizer support (adds a small overhead)" OFF)
option(MI_TRACK_ETW "Compile with Windows event tracing (ETW) support (adds a small overhead)" OFF)
option(MI_USE_CXX "Use the C++ compiler to compile the library (instead of the C compiler)" ON)
option(MI_SEE_ASM "Generate assembly files" OFF)
option(MI_OSX_INTERPOSE "Use interpose to override standard malloc on macOS" OFF)
option(MI_OSX_ZONE "Use malloc zone to override standard malloc on macOS" OFF)
option(MI_WIN_REDIRECT "Use redirection module ('mimalloc-redirect') on Windows if compiling mimalloc as a DLL" OFF)
option(MI_LOCAL_DYNAMIC_TLS "Use slightly slower, dlopen-compatible TLS mechanism (Unix)" OFF)
option(MI_BUILD_SHARED "Build shared library" OFF)
option(MI_BUILD_STATIC "Build static library" OFF)
option(MI_BUILD_OBJECT "Build object library" ON)
option(MI_BUILD_TESTS "Build test executables" OFF)
option(MI_DEBUG_TSAN "Build with thread sanitizer (needs clang)" OFF)
option(MI_DEBUG_UBSAN "Build with undefined-behavior sanitizer (needs clang++)" OFF)
option(MI_SKIP_COLLECT_ON_EXIT "Skip collecting memory on program exit" OFF) # ON in the future?
option(MI_NO_PADDING "Force no use of padding even in DEBUG mode etc." OFF)
option(MI_INSTALL_TOPLEVEL "Install directly into $CMAKE_INSTALL_PREFIX instead of PREFIX/lib/mimalloc-version" OFF)
option(MI_NO_THP "Disable transparent huge pages support on Linux/Android for the mimalloc process only" OFF)
target_include_directories("objlibER" SYSTEM PRIVATE "dependencies/thirdparty/mimalloc/include")
add_subdirectory("dependencies/mimalloc" SYSTEM)

# Dependency: cppsv
target_include_directories("objlibER" SYSTEM PRIVATE "dependencies/cppsv/include")

# Compile definitions:
target_compile_definitions("objlibER" PUBLIC LIBERAPI_EXPORT)

if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options("objlibER" PUBLIC "-Wno-unused")
target_compile_options("objlibER" PUBLIC
"-Wno-unused"
"-Wno-inconsistent-missing-override"
"-Wno-invalid-offsetof"
)
endif()

# Include directories:
target_include_directories("objlibER"
PUBLIC
"include"
PRIVATE
"symbols"
)

Expand All @@ -69,15 +36,7 @@ target_sources("objlibER" PUBLIC

# Core source files
target_sources("objlibER" PUBLIC
"source/detail/base_address.cpp"
"source/detail/symbols.cpp"
"source/detail/preprocessor.cpp"
)

# Versioning source files
target_sources("objlibER" PUBLIC
"source/version/version.cpp"
"source/version/detail/version_fileio.cpp"
"source/detail/app_version.cpp"
)

# Memory source files
Expand All @@ -89,7 +48,6 @@ target_sources("objlibER" PUBLIC
# Namespace DL source files
target_sources("objlibER" PUBLIC
"source/dantelion2/kernel_runtime.cpp"
"source/dantelion2/reflection.cpp"
"source/dantelion2/system.cpp"
"source/dantelion2/utility.cpp"
"source/dantelion2/fileio.cpp"
Expand All @@ -98,17 +56,14 @@ target_sources("objlibER" PUBLIC
# Namespace FD4 source files
target_sources("objlibER" PUBLIC
"source/fd4/time.cpp"
"source/fd4/component.cpp"
"source/fd4/resource.cpp"
"source/fd4/detail/fd4_memory.cpp"
"source/fd4/detail/fd4_task.cpp"
)

# Namespace CS source files
target_sources("objlibER" PUBLIC
"source/coresystem/cs_param.cpp"
"source/coresystem/task.cpp"
"source/coresystem/window.cpp"
"source/coresystem/file.cpp"
"source/coresystem/sound.cpp"
)
Expand All @@ -124,26 +79,16 @@ target_sources("objlibER" PUBLIC
# )

# Target libER[d].dll
add_library("libER" SHARED $<TARGET_OBJECTS:objlibER> $<TARGET_OBJECTS:mimalloc-obj>)
target_include_directories("libER" PUBLIC "include")
add_library("libER" SHARED $<TARGET_OBJECTS:objlibER>)
target_include_directories("libER" PUBLIC "include" "symbols")
# Target libER_static[d].lib
add_library("libER_static" STATIC $<TARGET_OBJECTS:objlibER> $<TARGET_OBJECTS:mimalloc-obj>)
target_include_directories("libER_static" PUBLIC "include")
add_library("libER_static" STATIC $<TARGET_OBJECTS:objlibER>)
target_include_directories("libER_static" PUBLIC "include" "symbols")
# Debug build "d" postfix in libERd.*
set_target_properties("libER" "libER_static" PROPERTIES DEBUG_POSTFIX d)
# Target libER_updater
add_executable("libER_updater"
"source/version/version.cpp"
"source/version/updater/version_updater.cpp"
"source/version/detail/version_fileio.cpp"
"source/version/detail/version_winhttp.cpp"
)
target_link_libraries("libER_updater" PRIVATE "winhttp")
target_include_directories("libER_updater" PRIVATE "include")

# No unused warnings with clang-cl
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_options("libER" PUBLIC "-Wno-unused")
target_compile_options("libER_static" PUBLIC "-Wno-unused")
target_compile_options("libER_updater" PUBLIC "-Wno-unused")
target_compile_options("libER" PUBLIC "-Wno-unused" "-Wno-inconsistent-missing-override")
target_compile_options("libER_static" PUBLIC "-Wno-unused" "-Wno-inconsistent-missing-override")
endif()
1 change: 0 additions & 1 deletion dependencies/cppsv
Submodule cppsv deleted from bfb64b
Loading