1
0
mirror of synced 2024-11-12 02:00:52 +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")
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)
set(DOTNET_EXECUTABLE dotnet)

View File

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

View File

@ -63,6 +63,13 @@ namespace hex::script::loader {
if (netHostLibrary != nullptr)
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
if (netHostLibrary == nullptr) {
@ -75,7 +82,7 @@ namespace hex::script::loader {
std::array<char_t, 300> buffer = { };
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) {
log::error(hex::format("Could not get hostfxr path! 0x{:X}", result));
return false;