cmake_minimum_required(VERSION 3.16) include(ImHexPlugin) find_package(CoreClrEmbed) if (CoreClrEmbed_FOUND) set(IMHEX_DOTNET_SCRIPT_SUPPORT ON) add_library(nethost SHARED IMPORTED) target_include_directories(nethost INTERFACE "${CoreClrEmbed_INCLUDE_DIRS}") get_filename_component(CoreClrEmbed_FOLDER ${CoreClrEmbed_SHARED_LIBRARIES} DIRECTORY) set_target_properties(nethost PROPERTIES IMPORTED_IMPLIB ${CoreClrEmbed_SHARED_LIBRARIES} IMPORTED_LOCATION ${CoreClrEmbed_LIBRARIES} BUILD_RPATH ${CoreClrEmbed_FOLDER} INSTALL_RPATH ${CoreClrEmbed_FOLDER}) set(EXTRA_BUNDLE_LIBRARY_PATHS "${CoreClrEmbed_FOLDER}" PARENT_SCOPE) if (IMHEX_BUNDLE_DOTNET) install(FILES ${CoreClrEmbed_SHARED_LIBRARIES} DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() endif() add_subdirectory(support/c) add_imhex_plugin( NAME script_loader SOURCES source/plugin_script_loader.cpp INCLUDES include LIBRARIES c_api fonts ui ) if (IMHEX_DOTNET_SCRIPT_SUPPORT) message(STATUS "Enabling .NET Scripting support!") target_link_directories(script_loader PRIVATE ${CoreClrEmbed_FOLDER}) target_include_directories(script_loader PRIVATE ${CoreClrEmbed_INCLUDE_DIRS}) target_compile_definitions(script_loader PRIVATE IMHEX_DOTNET_SCRIPT_SUPPORT=1) target_sources(script_loader PRIVATE source/loaders/dotnet/dotnet_loader.cpp ) add_subdirectory(support/dotnet) add_dependencies(script_loader AssemblyLoader) endif()