This is an automated email from the ASF dual-hosted git repository.

martinzink pushed a commit to branch controller_c_api_requirements
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git

commit d5798cd9eea084a816f1b21fd5471ecfc9e96ffe
Author: Adam Debreceni <[email protected]>
AuthorDate: Thu Mar 12 14:46:15 2026 +0100

    MINIFICPP-2715 - Windows fix
---
 .../cpp-extension-lib/include/api/utils/minifi-c-utils.h            | 6 ++++++
 extensions/llamacpp/processors/ExtensionInitializer.cpp             | 4 ++--
 .../test/integration/extension-verification-test/CApiExtension.cpp  | 4 ++--
 .../test/integration/extension-verification-test/CMakeLists.txt     | 2 +-
 .../integration/extension-verification-test/CreateNotCalled.cpp     | 5 +++--
 5 files changed, 14 insertions(+), 7 deletions(-)

diff --git 
a/extension-framework/cpp-extension-lib/include/api/utils/minifi-c-utils.h 
b/extension-framework/cpp-extension-lib/include/api/utils/minifi-c-utils.h
index 756c52113..76a5a43ae 100644
--- a/extension-framework/cpp-extension-lib/include/api/utils/minifi-c-utils.h
+++ b/extension-framework/cpp-extension-lib/include/api/utils/minifi-c-utils.h
@@ -24,6 +24,12 @@
 #include "utils/StringUtils.h"
 #include "minifi-cpp/core/PropertyDefinition.h"
 
+#ifdef WIN32
+  #define CEXTENSIONAPI __declspec(dllexport) extern "C"
+#else
+  #define CEXTENSIONAPI extern "C"
+#endif
+
 namespace org::apache::nifi::minifi::api::utils {
 
 inline MinifiStringView toStringView(std::string_view str) {
diff --git a/extensions/llamacpp/processors/ExtensionInitializer.cpp 
b/extensions/llamacpp/processors/ExtensionInitializer.cpp
index 8c223dc70..4b3c5b4e0 100644
--- a/extensions/llamacpp/processors/ExtensionInitializer.cpp
+++ b/extensions/llamacpp/processors/ExtensionInitializer.cpp
@@ -24,9 +24,9 @@
 
 namespace minifi = org::apache::nifi::minifi;
 
-extern "C" const uint32_t MinifiApiVersion = MINIFI_API_VERSION;
+CEXTENSIONAPI const uint32_t MinifiApiVersion = MINIFI_API_VERSION;
 
-extern "C" void MinifiInitExtension(MinifiExtension* extension, MinifiConfig* 
/*config*/) {
+CEXTENSIONAPI void MinifiInitExtension(MinifiExtension* extension, 
MinifiConfig* /*config*/) {
   
minifi::api::core::useProcessorClassDescription<minifi::extensions::llamacpp::processors::RunLlamaCppInference>([&]
 (const MinifiProcessorClassDefinition& description) {
     MinifiExtensionCreateInfo ext_create_info{
       .name = minifi::api::utils::toStringView(MAKESTRING(EXTENSION_NAME)),
diff --git 
a/libminifi/test/integration/extension-verification-test/CApiExtension.cpp 
b/libminifi/test/integration/extension-verification-test/CApiExtension.cpp
index c93f1c1f2..18f47f280 100644
--- a/libminifi/test/integration/extension-verification-test/CApiExtension.cpp
+++ b/libminifi/test/integration/extension-verification-test/CApiExtension.cpp
@@ -24,9 +24,9 @@
 
 namespace minifi = org::apache::nifi::minifi;
 
-extern "C" const uint32_t MinifiApiVersion = MINIFI_TEST_API_VERSION;
+CEXTENSIONAPI const uint32_t MinifiApiVersion = MINIFI_TEST_API_VERSION;
 
-extern "C" void MinifiInitExtension(MinifiExtension* extension, MinifiConfig* 
/*config*/) {
+CEXTENSIONAPI void MinifiInitExtension(MinifiExtension* extension, 
MinifiConfig* /*config*/) {
   MinifiExtensionCreateInfo ext_create_info{
     .name = minifi::api::utils::toStringView(MAKESTRING(EXTENSION_NAME)),
     .version = minifi::api::utils::toStringView(MAKESTRING(EXTENSION_VERSION)),
diff --git 
a/libminifi/test/integration/extension-verification-test/CMakeLists.txt 
b/libminifi/test/integration/extension-verification-test/CMakeLists.txt
index 2ef595e9b..d0069db32 100644
--- a/libminifi/test/integration/extension-verification-test/CMakeLists.txt
+++ b/libminifi/test/integration/extension-verification-test/CMakeLists.txt
@@ -77,5 +77,5 @@ create_c_test_extension(smaller-version 4)
 create_loading_test_extension(test-extension-loading-missing-init 
InvalidMissingInitExtension.cpp)
 
 create_loading_test_extension(test-extension-loading-create-not-called 
CreateNotCalled.cpp)
-target_link_libraries(test-extension-loading-create-not-called minifi-c-api)
+target_link_libraries(test-extension-loading-create-not-called 
minifi-cpp-extension-lib)
 target_compile_definitions(test-extension-loading-create-not-called PRIVATE 
MINIFI_TEST_API_VERSION=10)
diff --git 
a/libminifi/test/integration/extension-verification-test/CreateNotCalled.cpp 
b/libminifi/test/integration/extension-verification-test/CreateNotCalled.cpp
index 1ae88ebf8..276ffa6d5 100644
--- a/libminifi/test/integration/extension-verification-test/CreateNotCalled.cpp
+++ b/libminifi/test/integration/extension-verification-test/CreateNotCalled.cpp
@@ -17,9 +17,10 @@
  */
 
 #include "minifi-c.h"
+#include "api/utils/minifi-c-utils.h"
 
-extern "C" const uint32_t MinifiApiVersion = MINIFI_TEST_API_VERSION;
+CEXTENSIONAPI const uint32_t MinifiApiVersion = MINIFI_TEST_API_VERSION;
 
-extern "C" void MinifiInitExtension(MinifiExtension* extension, MinifiConfig* 
/*config*/) {
+CEXTENSIONAPI void MinifiInitExtension(MinifiExtension* extension, 
MinifiConfig* /*config*/) {
   // NOT CALLING CREATE
 }

Reply via email to