diff --git a/Bin2CPP/Sources/Bin2CPPLib/CMakeLists.txt b/Bin2CPP/Sources/Bin2CPPLib/CMakeLists.txt index d548139..e0acc2b 100644 --- a/Bin2CPP/Sources/Bin2CPPLib/CMakeLists.txt +++ b/Bin2CPP/Sources/Bin2CPPLib/CMakeLists.txt @@ -35,7 +35,6 @@ target_link_libraries(${PROJECT_NAME} PRIVATE Bin2CPPCompileAndLinkFlags PUBLIC - $,mimalloc-asan,mimalloc-static> quill::quill $<$:cpptrace::cpptrace> magic_enum::magic_enum) diff --git a/Bin2CPP/Sources/Bin2CPPLib/MimallocImpl.cpp b/Bin2CPP/Sources/Bin2CPPLib/MimallocImpl.cpp deleted file mode 100644 index bdb5e6a..0000000 --- a/Bin2CPP/Sources/Bin2CPPLib/MimallocImpl.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/********************************************************************* - * \file MimallocImpl.cpp - * - * \author Romain BOULLARD - * \date February 2026 - *********************************************************************/ -#if defined BIN2CPP_WINDOWS -#pragma comment(linker, "/include:mi_version") -#pragma warning(disable: 4100 4559) -#elif defined BIN2CPP_LINUX -#if defined(__GNUC__) && !defined(__llvm__) && !defined(__INTEL_COMPILER) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#else -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-parameter" -#endif -#endif - -// Taken from mimalloc-new-delete.h - -// clang-format off - -// ---------------------------------------------------------------------------- -// This header provides convenient overrides for the new and -// delete operations in C++. -// -// This header should be included in only one source file! -// -// On Windows, or when linking dynamically with mimalloc, these -// can be more performant than the standard new-delete operations. -// See -// --------------------------------------------------------------------------- -#if defined(__cplusplus) - #include - #include - - #if defined(_MSC_VER) && defined(_Ret_notnull_) && defined(_Post_writable_byte_size_) - // stay consistent with VCRT definitions - #define mi_decl_new(n) mi_decl_nodiscard mi_decl_restrict _Ret_notnull_ _Post_writable_byte_size_(n) - #define mi_decl_new_nothrow(n) mi_decl_nodiscard mi_decl_restrict _Ret_maybenull_ _Success_(return != NULL) _Post_writable_byte_size_(n) - #else - #define mi_decl_new(n) mi_decl_nodiscard mi_decl_restrict - #define mi_decl_new_nothrow(n) mi_decl_nodiscard mi_decl_restrict - #endif - - void operator delete(void* p) noexcept { mi_free(p); }; - void operator delete[](void* p) noexcept { mi_free(p); }; - - void operator delete (void* p, const std::nothrow_t&) noexcept { mi_free(p); } - void operator delete[](void* p, const std::nothrow_t&) noexcept { mi_free(p); } - - mi_decl_new(n) void* operator new(std::size_t n) noexcept(false) { return mi_new(n); } - mi_decl_new(n) void* operator new[](std::size_t n) noexcept(false) { return mi_new(n); } - - mi_decl_new_nothrow(n) void* operator new (std::size_t n, const std::nothrow_t& tag) noexcept { (void)(tag); return mi_new_nothrow(n); } - mi_decl_new_nothrow(n) void* operator new[](std::size_t n, const std::nothrow_t& tag) noexcept { (void)(tag); return mi_new_nothrow(n); } - - // Not from mimalloc-new-delete.h, but necessary for EASTL - void* operator new[](size_t size, const char* name, int flags, unsigned debugFlags, const char* file, int line) noexcept(false) { return mi_new(size); } - - #if (__cplusplus >= 201402L || _MSC_VER >= 1916) - void operator delete (void* p, std::size_t n) noexcept { mi_free_size(p,n); }; - void operator delete[](void* p, std::size_t n) noexcept { mi_free_size(p,n); }; - #endif - - #if (__cplusplus > 201402L || defined(__cpp_aligned_new)) - void operator delete (void* p, std::align_val_t al) noexcept { mi_free_aligned(p, static_cast(al)); } - void operator delete[](void* p, std::align_val_t al) noexcept { mi_free_aligned(p, static_cast(al)); } - void operator delete (void* p, std::size_t n, std::align_val_t al) noexcept { mi_free_size_aligned(p, n, static_cast(al)); }; - void operator delete[](void* p, std::size_t n, std::align_val_t al) noexcept { mi_free_size_aligned(p, n, static_cast(al)); }; - void operator delete (void* p, std::align_val_t al, const std::nothrow_t&) noexcept { mi_free_aligned(p, static_cast(al)); } - void operator delete[](void* p, std::align_val_t al, const std::nothrow_t&) noexcept { mi_free_aligned(p, static_cast(al)); } - - void* operator new (std::size_t n, std::align_val_t al) noexcept(false) { return mi_new_aligned(n, static_cast(al)); } - void* operator new[](std::size_t n, std::align_val_t al) noexcept(false) { return mi_new_aligned(n, static_cast(al)); } - void* operator new (std::size_t n, std::align_val_t al, const std::nothrow_t&) noexcept { return mi_new_aligned_nothrow(n, static_cast(al)); } - void* operator new[](std::size_t n, std::align_val_t al, const std::nothrow_t&) noexcept { return mi_new_aligned_nothrow(n, static_cast(al)); } - - // Not from mimalloc-new-delete.h, but necessary for EASTL - void* operator new[](size_t size, size_t alignment, size_t alignmentOffset, const char* pName, int flags, unsigned debugFlags, const char* file, int line) noexcept(false) { return mi_new_aligned(size, alignment); } - #endif - -#endif - -// clang-format on - -#if defined BIN2CPP_WINDOWS -#pragma warning(default: 4100 4559) -#elif defined BIN2CPP_LINUX -#if defined(__GNUC__) && !defined(__llvm__) && !defined(__INTEL_COMPILER) -#pragma GCC diagnostic pop -#else -#pragma clang diagnostic pop -#endif -#endif diff --git a/CMake/FindDependencies.cmake b/CMake/FindDependencies.cmake index d4c47b6..6c2d188 100644 --- a/CMake/FindDependencies.cmake +++ b/CMake/FindDependencies.cmake @@ -9,12 +9,6 @@ find_package(magic_enum REQUIRED) find_package(CLI11 REQUIRED) find_package(quill REQUIRED) -if(${ASAN}) - find_package(mimalloc-asan REQUIRED) -else() - find_package(mimalloc REQUIRED) -endif() - find_package(cpptrace REQUIRED) if(BUILD_TESTS) diff --git a/conanfile.py b/conanfile.py index 84bc3a1..428e5da 100644 --- a/conanfile.py +++ b/conanfile.py @@ -45,13 +45,9 @@ class Bin2CPP(ConanFile): if self.settings.os == "Windows": del self.options.fPIC - if(self.options.asan): - self.options["mimalloc"].asan = True - def requirements(self): self.requires("quill/11.0.2", transitive_headers=True) self.requires("magic_enum/0.9.7", transitive_headers=True) - self.requires("mimalloc/3.2.8@bigfootdev/main", transitive_headers=True) self.requires("cli11/2.6.1@bigfootdev/main") self.requires("cpptrace/1.0.4", transitive_headers=True)