diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index 526a364b4..9f9899553 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -543,16 +543,16 @@ function(downloadImHexPatternsFiles dest) # Maybe patterns are cloned to a subdirectory if (NOT EXISTS ${imhex_patterns_SOURCE_DIR}) - set(imhex_patterns_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ImHex-Patterns") + set(imhex_patterns_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ImHex-Patterns") endif() # Or a sibling directory if (NOT EXISTS ${imhex_patterns_SOURCE_DIR}) - set(imhex_patterns_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../ImHex-Patterns") + set(imhex_patterns_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../ImHex-Patterns") endif() endif () - if (NOT EXISTS ${imhex_patterns_SOURCE_DIR}) + if (NOT EXISTS ${imhex_patterns_SOURCE_DIR}) message(WARNING "Failed to locate ImHex-Patterns repository, some resources will be missing during install!") elseif(XCODE) # The Xcode build has multiple configurations, which each need a copy of these files @@ -843,17 +843,20 @@ function(enableUnityBuild TARGET) endif () endfunction() -function(generateSDKDirectory) +function(setSDKPaths) if (WIN32) - set(SDK_PATH "./sdk") + set(SDK_PATH "./sdk" PARENT_SCOPE) elseif (APPLE) - set(SDK_PATH "${CMAKE_INSTALL_PREFIX}/${BUNDLE_NAME}/Contents/Resources/sdk") + set(SDK_PATH "${CMAKE_INSTALL_PREFIX}/${BUNDLE_NAME}/Contents/Resources/sdk" PARENT_SCOPE) else() - set(SDK_PATH "share/imhex/sdk") + set(SDK_PATH "share/imhex/sdk" PARENT_SCOPE) endif() - set(SDK_BUILD_PATH "${CMAKE_BINARY_DIR}/sdk") + set(SDK_BUILD_PATH "${CMAKE_BINARY_DIR}/sdk" PARENT_SCOPE) +endfunction() +function(generateSDKDirectory) + setSDKPaths() install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/libimhex DESTINATION "${SDK_PATH}/lib" PATTERN "**/source/*" EXCLUDE) install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/external DESTINATION "${SDK_PATH}/lib") install(DIRECTORY ${CMAKE_SOURCE_DIR}/lib/third_party/imgui DESTINATION "${SDK_PATH}/lib/third_party" PATTERN "**/source/*" EXCLUDE) @@ -897,4 +900,4 @@ function(precompileHeaders target includeFolder) PUBLIC "$<$:${INCLUDES}>" ) -endfunction() \ No newline at end of file +endfunction() diff --git a/cmake/modules/ImHexPlugin.cmake b/cmake/modules/ImHexPlugin.cmake index a5a4b2691..b771b0568 100644 --- a/cmake/modules/ImHexPlugin.cmake +++ b/cmake/modules/ImHexPlugin.cmake @@ -1,4 +1,5 @@ macro(add_imhex_plugin) + setSDKPaths() # Parse arguments set(options LIBRARY_PLUGIN) set(oneValueArgs NAME IMHEX_VERSION) @@ -28,6 +29,10 @@ macro(add_imhex_plugin) endif() endif() + if (IMHEX_PLUGIN_LIBRARY_PLUGIN) + install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/" DESTINATION "${CMAKE_INSTALL_PREFIX}/${SDK_PATH}/lib/plugins/${IMHEX_PLUGIN_NAME}/") + endif() + # Define new project for plugin project(${IMHEX_PLUGIN_NAME}) @@ -151,4 +156,4 @@ macro (enable_plugin_feature feature) remove_definitions(-DIMHEX_PLUGIN_${IMHEX_PLUGIN_NAME}_FEATURE_${feature}=0) add_definitions(-DIMHEX_PLUGIN_${IMHEX_PLUGIN_NAME}_FEATURE_${feature}=1) -endmacro() \ No newline at end of file +endmacro()