1
0
mirror of synced 2024-11-24 07:40:17 +01:00

fix: .NET script loader not initializing correctly on macOS

This commit is contained in:
WerWolv 2024-05-18 11:10:55 +02:00
parent 9e2f228d9a
commit 1e91505e6e
3 changed files with 17 additions and 1 deletions

View File

@ -11,6 +11,14 @@ if (UNIX)
set(CORECLR_SUBARCH "arm64") set(CORECLR_SUBARCH "arm64")
endif() endif()
endif() endif()
if (APPLE)
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
set(CORECLR_ARCH "osx-arm64")
set(CORECLR_SUBARCH "arm64")
else()
set(CORECLR_ARCH "osx-x64")
endif()
endif()
if (NOT DOTNET_EXECUTABLE) if (NOT DOTNET_EXECUTABLE)
set(DOTNET_EXECUTABLE dotnet) set(DOTNET_EXECUTABLE dotnet)

View File

@ -6,6 +6,7 @@
#include <functional> #include <functional>
#include <map> #include <map>
#include <mutex>
#include <span> #include <span>
#include <string> #include <string>
#include <utility> #include <utility>

View File

@ -63,6 +63,13 @@ namespace hex::script::loader {
if (netHostLibrary != nullptr) if (netHostLibrary != nullptr)
break; break;
} }
if (netHostLibrary == nullptr) {
for (const auto &librariesPath : fs::getDefaultPaths(fs::ImHexPath::Libraries)) {
netHostLibrary = loadLibrary((librariesPath / "libnethost.dylib").c_str());
if (netHostLibrary != nullptr)
break;
}
}
#endif #endif
if (netHostLibrary == nullptr) { if (netHostLibrary == nullptr) {
@ -75,7 +82,7 @@ namespace hex::script::loader {
std::array<char_t, 300> buffer = { }; std::array<char_t, 300> buffer = { };
size_t bufferSize = buffer.size(); size_t bufferSize = buffer.size();
auto result = get_hostfxr_path_ptr(buffer.data(), &bufferSize, nullptr); u32 result = get_hostfxr_path_ptr(buffer.data(), &bufferSize, nullptr);
if (result != 0) { if (result != 0) {
log::error(hex::format("Could not get hostfxr path! 0x{:X}", result)); log::error(hex::format("Could not get hostfxr path! 0x{:X}", result));
return false; return false;