From f6c109c0cea437a645be67f37a03f37ee74cb989 Mon Sep 17 00:00:00 2001 From: Eric Kilmer Date: Wed, 29 Oct 2025 11:52:31 -0400 Subject: [PATCH] [CMake] Allow flexible user plugin install location Create a cache variable of the same name as the previous normal variable that users can set to a specific path for user plugin installation destination. This is primarily to help with CI builds to make it easier to find where the final plugin is located before uploading as a release. --- CMakeLists.txt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c1f52638..6cc21fa52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,12 +36,13 @@ target_include_directories(binaryninjaapi # Store path to user plugin dir if(WIN32) - set(BN_USER_PLUGINS_DIR "$ENV{APPDATA}\\Binary Ninja\\plugins") + set(plugin_dir "$ENV{APPDATA}\\Binary Ninja\\plugins") elseif(APPLE) - set(BN_USER_PLUGINS_DIR "$ENV{HOME}/Library/Application Support/Binary Ninja/plugins") + set(plugin_dir "$ENV{HOME}/Library/Application Support/Binary Ninja/plugins") else() - set(BN_USER_PLUGINS_DIR "$ENV{HOME}/.binaryninja/plugins") + set(plugin_dir "$ENV{HOME}/.binaryninja/plugins") endif() +set(BN_USER_PLUGINS_DIR "${plugin_dir}" CACHE PATH "Path to Binary Ninja user plugins") message(STATUS "Binary Ninja User Plugins Dir: ${BN_USER_PLUGINS_DIR}") find_package(BinaryNinjaCore) @@ -113,12 +114,13 @@ endif() function(bn_install_plugin target) if(WIN32) - set(BN_USER_PLUGINS_DIR "$ENV{APPDATA}\\Binary Ninja\\plugins") + set(plugin_dir "$ENV{APPDATA}\\Binary Ninja\\plugins") elseif(APPLE) - set(BN_USER_PLUGINS_DIR "$ENV{HOME}/Library/Application Support/Binary Ninja/plugins") + set(plugin_dir "$ENV{HOME}/Library/Application Support/Binary Ninja/plugins") else() - set(BN_USER_PLUGINS_DIR "$ENV{HOME}/.binaryninja/plugins") + set(plugin_dir "$ENV{HOME}/.binaryninja/plugins") endif() + set(BN_USER_PLUGINS_DIR "${plugin_dir}" CACHE PATH "Path to Binary Ninja user plugins") if(NOT BN_INTERNAL_BUILD) if(WIN32)