build: Fix external plugins linking with plugin libraries

This commit is contained in:
WerWolv
2025-08-21 23:19:31 +02:00
parent c83173098c
commit 8e8c553da4
2 changed files with 110 additions and 85 deletions

View File

@@ -36,6 +36,24 @@ macro(add_imhex_plugin)
# Define new project for plugin
project(${IMHEX_PLUGIN_NAME})
if (IMHEX_PLUGIN_IMPORTED)
add_library(${IMHEX_PLUGIN_NAME} SHARED IMPORTED GLOBAL)
if (WIN32)
set_target_properties(${IMHEX_PLUGIN_NAME} PROPERTIES
IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../../../plugins/${IMHEX_PLUGIN_NAME}${IMHEX_PLUGIN_SUFFIX}"
IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/../lib${IMHEX_PLUGIN_NAME}.dll.a"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include/include")
elseif (APPLE)
set_target_properties(${IMHEX_PLUGIN_NAME} PROPERTIES
IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../../../../MacOS/plugins/${IMHEX_PLUGIN_NAME}${IMHEX_PLUGIN_SUFFIX}"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include/include")
else()
set_target_properties(${IMHEX_PLUGIN_NAME} PROPERTIES
IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../../../plugins/${IMHEX_PLUGIN_NAME}${IMHEX_PLUGIN_SUFFIX}"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include/include")
endif()
else()
# Create a new shared library for the plugin source code
add_library(${IMHEX_PLUGIN_NAME} ${IMHEX_PLUGIN_LIBRARY_TYPE} ${IMHEX_PLUGIN_SOURCES})
@@ -137,6 +155,7 @@ macro(add_imhex_plugin)
target_link_libraries(${IMHEX_PLUGIN_NAME} PUBLIC ${IMHEX_PLUGIN_NAME}_tests)
target_compile_definitions(${IMHEX_PLUGIN_NAME}_tests PRIVATE IMHEX_PROJECT_NAME="${IMHEX_PLUGIN_NAME}-tests")
endif()
endif()
endmacro()
macro(add_romfs_resource input output)

View File

@@ -38,8 +38,14 @@ add_subdirectory(lib/external/libwolv EXCLUDE_FROM_ALL)
set(LIBPL_ENABLE_CLI OFF CACHE BOOL "" FORCE)
add_subdirectory(lib/external/pattern_language EXCLUDE_FROM_ALL)
set(IMHEX_PLUGIN_IMPORTED ON)
add_subdirectory(lib/libimhex)
add_subdirectory(lib/trace)
add_subdirectory(lib/fonts)
add_subdirectory(lib/ui)
set(IMHEX_PLUGIN_IMPORTED OFF)
if (WIN32)
set_target_properties(libimhex PROPERTIES