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

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

commit 2c46147cfb9c26f2290f111675161d9348a47054
Author: Gabor Gyimesi <gamezb...@gmail.com>
AuthorDate: Tue Feb 6 16:58:14 2024 +0100

    MINIFICPP-2231 Replace global CXX flags with target specific ones
    
    Also: fix class member initialization order on Mac and Windows
    
    Signed-off-by: Ferenc Gerlits <fgerl...@gmail.com>
    This fixes #1724
---
 CMakeLists.txt                                     | 42 ++++++++++++++--------
 cmake/BuildTests.cmake                             | 10 +++---
 cmake/CivetWeb.cmake                               |  4 ---
 cmake/Date.cmake                                   |  6 ----
 cmake/GoogleCloudCpp.cmake                         | 13 -------
 cmake/Grpc.cmake                                   | 19 ----------
 cmake/JsonSchemaValidator.cmake                    |  3 --
 controller/CMakeLists.txt                          |  2 +-
 controller/tests/CMakeLists.txt                    |  2 +-
 encrypt-config/CMakeLists.txt                      |  2 +-
 encrypt-config/tests/CMakeLists.txt                |  2 +-
 extensions/aws/CMakeLists.txt                      |  3 +-
 extensions/aws/tests/CMakeLists.txt                |  2 +-
 extensions/azure/CMakeLists.txt                    |  2 +-
 extensions/azure/tests/CMakeLists.txt              |  2 +-
 extensions/bustache/CMakeLists.txt                 |  2 +-
 extensions/bustache/tests/CMakeLists.txt           |  2 +-
 extensions/civetweb/CMakeLists.txt                 |  2 +-
 extensions/civetweb/tests/CMakeLists.txt           |  2 +-
 extensions/coap/CMakeLists.txt                     |  4 +--
 extensions/coap/tests/CMakeLists.txt               |  2 +-
 extensions/elasticsearch/CMakeLists.txt            |  2 +-
 extensions/elasticsearch/tests/CMakeLists.txt      |  2 +-
 extensions/expression-language/CMakeLists.txt      |  2 +-
 .../expression-language/tests/CMakeLists.txt       |  4 +--
 extensions/gcp/CMakeLists.txt                      |  2 +-
 extensions/gcp/tests/CMakeLists.txt                |  2 +-
 extensions/gps/CMakeLists.txt                      |  2 +-
 extensions/gps/tests/CMakeLists.txt                |  2 +-
 extensions/grafana-loki/CMakeLists.txt             |  7 ++--
 extensions/grafana-loki/PushGrafanaLokiGrpc.h      |  2 +-
 extensions/grafana-loki/tests/CMakeLists.txt       |  4 +--
 extensions/http-curl/CMakeLists.txt                |  2 +-
 extensions/http-curl/client/HTTPClient.h           |  6 ++--
 extensions/http-curl/tests/CMakeLists.txt          |  4 +--
 extensions/jni/CMakeLists.txt                      |  2 +-
 extensions/kubernetes/CMakeLists.txt               |  2 +-
 extensions/kubernetes/tests/CMakeLists.txt         |  2 +-
 extensions/libarchive/CMakeLists.txt               |  2 +-
 extensions/libarchive/tests/CMakeLists.txt         |  2 +-
 extensions/librdkafka/CMakeLists.txt               |  2 +-
 extensions/librdkafka/tests/CMakeLists.txt         |  2 +-
 extensions/lua/CMakeLists.txt                      |  2 +-
 extensions/lua/tests/CMakeLists.txt                |  2 +-
 extensions/mqtt/CMakeLists.txt                     |  2 +-
 extensions/mqtt/tests/CMakeLists.txt               |  2 +-
 extensions/opc/CMakeLists.txt                      |  2 +-
 extensions/opencv/CMakeLists.txt                   |  2 +-
 extensions/opencv/tests/CMakeLists.txt             |  2 +-
 extensions/openwsman/CMakeLists.txt                |  2 +-
 extensions/pcap/CMakeLists.txt                     |  2 +-
 extensions/pcap/tests/CMakeLists.txt               |  2 +-
 extensions/pdh/CMakeLists.txt                      |  2 +-
 extensions/pdh/tests/CMakeLists.txt                |  2 +-
 extensions/procfs/CMakeLists.txt                   |  2 +-
 extensions/procfs/tests/CMakeLists.txt             |  2 +-
 extensions/prometheus/CMakeLists.txt               |  2 +-
 extensions/prometheus/tests/CMakeLists.txt         |  2 +-
 extensions/python/CMakeLists.txt                   |  2 +-
 extensions/python/tests/CMakeLists.txt             |  4 +--
 extensions/rocksdb-repos/CMakeLists.txt            |  2 +-
 extensions/rocksdb-repos/tests/CMakeLists.txt      |  2 +-
 extensions/script/CMakeLists.txt                   |  2 +-
 extensions/script/tests/CMakeLists.txt             |  2 +-
 extensions/sensors/CMakeLists.txt                  |  2 +-
 extensions/sensors/tests/CMakeLists.txt            |  2 +-
 extensions/sftp/CMakeLists.txt                     |  2 +-
 extensions/sftp/tests/CMakeLists.txt               |  2 +-
 extensions/sftp/tests/tools/CMakeLists.txt         |  2 +-
 extensions/smb/CMakeLists.txt                      |  2 +-
 extensions/smb/tests/CMakeLists.txt                |  2 +-
 extensions/splunk/CMakeLists.txt                   |  2 +-
 extensions/splunk/tests/CMakeLists.txt             |  2 +-
 extensions/sql/CMakeLists.txt                      |  2 +-
 extensions/sql/tests/CMakeLists.txt                |  4 +--
 extensions/standard-processors/CMakeLists.txt      |  2 +-
 .../standard-processors/tests/CMakeLists.txt       |  6 ++--
 extensions/systemd/CMakeLists.txt                  |  2 +-
 extensions/systemd/tests/CMakeLists.txt            |  2 +-
 extensions/test-processors/CMakeLists.txt          |  2 +-
 extensions/usb-camera/CMakeLists.txt               |  2 +-
 extensions/windows-event-log/CMakeLists.txt        |  2 +-
 extensions/windows-event-log/tests/CMakeLists.txt  |  2 +-
 libminifi/CMakeLists.txt                           |  9 +----
 libminifi/include/FlowController.h                 |  5 ++-
 libminifi/include/c2/C2Agent.h                     |  9 ++---
 libminifi/include/controllers/SSLContextService.h  |  2 +-
 libminifi/include/utils/SystemCpuUsageTracker.h    | 14 ++++----
 libminifi/src/provenance/Provenance.cpp            |  4 +--
 libminifi/src/utils/SystemCpuUsageTracker.cpp      |  5 +--
 libminifi/test/flow-tests/CMakeLists.txt           |  2 +-
 libminifi/test/keyvalue-tests/CMakeLists.txt       |  2 +-
 libminifi/test/persistence-tests/CMakeLists.txt    |  2 +-
 libminifi/test/schema-tests/CMakeLists.txt         |  2 +-
 minifi_main/CMakeLists.txt                         |  2 +-
 minifi_main/tests/CMakeLists.txt                   |  2 +-
 nanofi/CMakeLists.txt                              |  2 +-
 nanofi/ecu/CMakeLists.txt                          |  6 ++--
 nanofi/examples/CMakeLists.txt                     | 10 +++---
 99 files changed, 160 insertions(+), 193 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9f3a72f2..9d710a7b7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -201,6 +201,9 @@ set(PASSTHROUGH_CMAKE_ARGS -DANDROID_ABI=${ANDROID_ABI}
     -G${CMAKE_GENERATOR}
     )
 
+set(MINIFI_CPP_COMPILE_OPTIONS "")
+set(MINIFI_CPP_COMPILE_DEFINITIONS "")
+
 if(CUSTOM_MALLOC)
     if (CUSTOM_MALLOC STREQUAL jemalloc)
         include(BundledJemalloc)
@@ -227,8 +230,7 @@ endif()
 
 if(NOT WIN32)
     if (ENABLE_JNI)
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_JNI")
-        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_JNI")
+        list(APPEND MINIFI_CPP_COMPILE_DEFINITIONS ENABLE_JNI)
     endif()
 endif()
 
@@ -248,16 +250,14 @@ if (NOT OPENSSL_OFF)
     include(BundledOpenSSL)
     use_openssl("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")
     list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/ssl")
-
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DOPENSSL_SUPPORT")
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DOPENSSL_SUPPORT")
+    list(APPEND MINIFI_CPP_COMPILE_DEFINITIONS OPENSSL_SUPPORT)
 endif()
 
 # libsodium
 include(BundledLibSodium)
 use_bundled_libsodium("${CMAKE_CURRENT_SOURCE_DIR}" 
"${CMAKE_CURRENT_BINARY_DIR}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSODIUM_STATIC=1")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSODIUM_STATIC=1")
+
+list(APPEND MINIFI_CPP_COMPILE_DEFINITIONS SODIUM_STATIC=1)
 
 # zlib
 include(BundledZLIB)
@@ -274,8 +274,7 @@ if(NOT DISABLE_CURL)
     use_bundled_curl(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
     list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/curl/dummy")
 else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDISABLE_CURL")
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDISABLE_CURL")
+    list(APPEND MINIFI_CPP_COMPILE_DEFINITIONS DISABLE_CURL)
 endif()
 
 # spdlog
@@ -325,20 +324,33 @@ include(MagicEnum)
 
 # Setup warning flags
 if(MSVC)
+    list(APPEND MINIFI_CPP_COMPILE_OPTIONS /W3)
     if(FAIL_ON_WARNINGS)
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+        list(APPEND MINIFI_CPP_COMPILE_OPTIONS /WX)
     endif()
 else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")
+    list(APPEND MINIFI_CPP_COMPILE_OPTIONS -Wall -Wextra)
     if(FAIL_ON_WARNINGS)
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+        list(APPEND MINIFI_CPP_COMPILE_OPTIONS -Werror)
         # -Wrestrict may cause build failure in GCC 12  
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104336
         if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=restrict")
+            list(APPEND MINIFI_CPP_COMPILE_OPTIONS -Wno-error=restrict)
         endif()
     endif()
 endif()
 
+function(add_minifi_library LIBRARY_NAME LINK_TYPE)
+    add_library(${LIBRARY_NAME} ${LINK_TYPE} ${ARGN})
+    target_compile_options(${LIBRARY_NAME} PRIVATE 
${MINIFI_CPP_COMPILE_OPTIONS})
+    target_compile_definitions(${LIBRARY_NAME} PRIVATE 
${MINIFI_CPP_COMPILE_DEFINITIONS})
+endfunction()
+
+function(add_minifi_executable EXECUTABLE_NAME)
+    add_executable(${EXECUTABLE_NAME} ${ARGN})
+    target_compile_options(${EXECUTABLE_NAME} PRIVATE 
${MINIFI_CPP_COMPILE_OPTIONS})
+    target_compile_definitions(${EXECUTABLE_NAME} PRIVATE 
${MINIFI_CPP_COMPILE_DEFINITIONS})
+endfunction()
+
 #### Extensions ####
 SET(TEST_DIR ${CMAKE_SOURCE_DIR}/libminifi/test)
 include(Extensions)
@@ -396,7 +408,7 @@ if (WIN32)
         ${CMAKE_CURRENT_BINARY_DIR}/libminifi
         "${CMAKE_CXX_COMPILER}"
         "${CMAKE_CXX_COMPILER_VERSION}"
-        "${CMAKE_CXX_FLAGS}"
+        
"${CMAKE_CXX_FLAGS};${MINIFI_CPP_COMPILE_OPTIONS};${MINIFI_CPP_COMPILE_DEFINITIONS}"
         \"${selected_extensions}\"
         "${BUILD_IDENTIFIER}"
         "${BUILD_REV}")
@@ -408,7 +420,7 @@ else()
         ${CMAKE_CURRENT_BINARY_DIR}/libminifi
         "${CMAKE_CXX_COMPILER}"
         "${CMAKE_CXX_COMPILER_VERSION}"
-        "${CMAKE_CXX_FLAGS}"
+        
"${CMAKE_CXX_FLAGS};${MINIFI_CPP_COMPILE_OPTIONS};${MINIFI_CPP_COMPILE_DEFINITIONS}"
         "${selected_extensions}"
         "${BUILD_IDENTIFIER}")
 endif()
diff --git a/cmake/BuildTests.cmake b/cmake/BuildTests.cmake
index 7df44bec3..cd25b4d61 100644
--- a/cmake/BuildTests.cmake
+++ b/cmake/BuildTests.cmake
@@ -88,7 +88,7 @@ enable_testing(test)
 SET(TEST_BASE_LIB test_base)
 set(TEST_BASE_SOURCES "TestBase.cpp" "StatefulProcessor.cpp" 
"WriteToFlowFileTestProcessor.cpp" "ReadFromFlowFileTestProcessor.cpp" 
"DummyProcessor.cpp")
 list(TRANSFORM TEST_BASE_SOURCES PREPEND "${TEST_DIR}/")
-add_library(${TEST_BASE_LIB} STATIC "${TEST_BASE_SOURCES}")
+add_minifi_library(${TEST_BASE_LIB} STATIC ${TEST_BASE_SOURCES})
 target_link_libraries(${TEST_BASE_LIB} core-minifi)
 target_include_directories(${TEST_BASE_LIB} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/include/")
 if(WIN32)
@@ -112,7 +112,7 @@ endif()
 SET(UNIT_TEST_COUNT 0)
 FOREACH(testfile ${UNIT_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${TEST_DIR}/unit/${testfile}")
+    add_minifi_executable("${testfilename}" "${TEST_DIR}/unit/${testfile}")
     target_compile_definitions("${testfilename}" PRIVATE 
TZ_DATA_DIR="${CMAKE_BINARY_DIR}/tzdata")
     createTests("${testfilename}")
     target_link_libraries(${testfilename} Catch2WithMain)
@@ -125,7 +125,7 @@ if (NOT OPENSSL_OFF)
     SET(UNIT_TEST_COUNT 0)
     FOREACH(testfile ${TLS_UNIT_TESTS})
         get_filename_component(testfilename "${testfile}" NAME_WE)
-        add_executable("${testfilename}" "${TEST_DIR}/unit/tls/${testfile}")
+        add_minifi_executable("${testfilename}" 
"${TEST_DIR}/unit/tls/${testfile}")
         createTests("${testfilename}")
         MATH(EXPR UNIT_TEST_COUNT "${UNIT_TEST_COUNT}+1")
         add_test(NAME "${testfilename}" COMMAND "${testfilename}" 
"${TEST_RESOURCES}/")
@@ -137,7 +137,7 @@ if(NOT WIN32 AND ENABLE_NANOFI)
     SET(UNIT_TEST_COUNT 0)
     FOREACH(testfile ${NANOFI_UNIT_TESTS})
         get_filename_component(testfilename "${testfile}" NAME_WE)
-        add_executable("${testfilename}" "${NANOFI_TEST_DIR}/${testfile}")
+        add_minifi_executable("${testfilename}" 
"${NANOFI_TEST_DIR}/${testfile}")
         target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/nanofi/include")
         target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/")
         target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/processors/")
@@ -160,7 +160,7 @@ endif()
 SET(INT_TEST_COUNT 0)
 FOREACH(testfile ${INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${TEST_DIR}/integration/${testfile}")
+    add_minifi_executable("${testfilename}" 
"${TEST_DIR}/integration/${testfile}")
     createTests("${testfilename}")
     MATH(EXPR INT_TEST_COUNT "${INT_TEST_COUNT}+1")
 ENDFOREACH()
diff --git a/cmake/CivetWeb.cmake b/cmake/CivetWeb.cmake
index f1614817d..7ab39e9a8 100644
--- a/cmake/CivetWeb.cmake
+++ b/cmake/CivetWeb.cmake
@@ -40,10 +40,6 @@ add_dependencies(civetweb-c-library OpenSSL::Crypto 
OpenSSL::SSL)
 add_dependencies(civetweb-cpp OpenSSL::Crypto OpenSSL::SSL)
 
 target_compile_definitions(civetweb-c-library PRIVATE 
SOCKET_TIMEOUT_QUANTUM=200)
-if (NOT WIN32)
-  target_compile_options(civetweb-c-library PRIVATE -Wno-error)
-  target_compile_options(civetweb-cpp PRIVATE -Wno-error)
-endif()
 
 add_library(civetweb::c-library ALIAS civetweb-c-library)
 add_library(civetweb::civetweb-cpp ALIAS civetweb-cpp)
diff --git a/cmake/Date.cmake b/cmake/Date.cmake
index 51e89133e..696f51ba4 100644
--- a/cmake/Date.cmake
+++ b/cmake/Date.cmake
@@ -58,18 +58,12 @@ if (NOT date_src_POPULATED)
     target_sources(date INTERFACE ${DATE_INCLUDE_DIR}/date/date.h)
     target_include_directories(date SYSTEM INTERFACE ${DATE_INCLUDE_DIR})
     target_compile_features(date INTERFACE cxx_std_11)
-    if (NOT WIN32)
-        target_compile_options(date INTERFACE -Wno-error)
-    endif()
 
     add_library(date-tz STATIC ${date_src_SOURCE_DIR}/src/tz.cpp)
     add_library(date::tz ALIAS date-tz)
     target_include_directories(date-tz SYSTEM PUBLIC ${DATE_INCLUDE_DIR})
     target_compile_features(date-tz PUBLIC cxx_std_11)
     target_compile_options(date-tz PRIVATE $<IF:$<CXX_COMPILER_ID:MSVC>,/w,-w>)
-    if (NOT WIN32)
-        target_compile_options(date-tz PRIVATE -Wno-error)
-    endif()
     target_compile_definitions(date-tz PRIVATE AUTO_DOWNLOAD=0 
HAS_REMOTE_API=0)
     if (WIN32)
         target_compile_definitions(date-tz PRIVATE INSTALL=. PUBLIC 
USE_OS_TZDB=0)
diff --git a/cmake/GoogleCloudCpp.cmake b/cmake/GoogleCloudCpp.cmake
index 4612959b4..3df0dcc41 100644
--- a/cmake/GoogleCloudCpp.cmake
+++ b/cmake/GoogleCloudCpp.cmake
@@ -55,16 +55,3 @@ FetchContent_Declare(google-cloud-cpp
         PATCH_COMMAND "${PC}")
 add_compile_definitions(_SILENCE_CXX20_REL_OPS_DEPRECATION_WARNING 
_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING CURL_STATICLIB)
 FetchContent_MakeAvailable(google-cloud-cpp)
-
-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION 
VERSION_GREATER_EQUAL "14.0.0" )
-    target_compile_options(google_cloud_cpp_common PUBLIC 
-Wno-error=deprecated-pragma)
-endif()
-
-# MD5_Init, MD5_Update and MD5_Final used in Google Cloud C++ library are 
deprecated since OpenSSL 3.0
-if (WIN32)
-    target_compile_options(google_cloud_cpp_storage PUBLIC /wd4996)
-else()
-    target_compile_options(google_cloud_cpp_storage PUBLIC 
-Wno-error=deprecated-declarations)
-    target_compile_options(google_cloud_cpp_rest_internal PUBLIC -Wno-error)
-endif()
-
diff --git a/cmake/Grpc.cmake b/cmake/Grpc.cmake
index 9349bc933..bdf3870a0 100644
--- a/cmake/Grpc.cmake
+++ b/cmake/Grpc.cmake
@@ -38,25 +38,6 @@ FetchContent_Declare(
 set(FETCHCONTENT_QUIET OFF)
 FetchContent_MakeAvailable(grpc)
 
-if (NOT WIN32)
-  target_compile_options(re2 PRIVATE -Wno-error)
-  target_compile_options(gpr PRIVATE -Wno-error)
-  target_compile_options(upb PRIVATE -Wno-error)
-  target_compile_options(libprotobuf-lite PRIVATE -Wno-error)
-  target_compile_options(libprotobuf PRIVATE -Wno-error)
-  target_compile_options(libprotoc PRIVATE -Wno-error)
-  target_compile_options(grpc PRIVATE -Wno-error)
-  target_compile_options(grpc_authorization_provider PRIVATE -Wno-error)
-  target_compile_options(grpc_unsecure PRIVATE -Wno-error)
-  target_compile_options(grpc_plugin_support PRIVATE -Wno-error)
-  target_compile_options(grpcpp_channelz PRIVATE -Wno-error)
-  target_compile_options(grpc++ PRIVATE -Wno-error)
-  target_compile_options(grpc++_unsecure PRIVATE -Wno-error)
-  target_compile_options(grpc++_alts PRIVATE -Wno-error)
-  target_compile_options(grpc++_reflection PRIVATE -Wno-error)
-  target_compile_options(grpc++_error_details PRIVATE -Wno-error)
-endif()
-
 add_dependencies(grpc++ OpenSSL::SSL OpenSSL::Crypto ZLIB::ZLIB)
 
 set(GRPC_INCLUDE_DIR "${grpc_SOURCE_DIR}/include" CACHE STRING "" FORCE)
diff --git a/cmake/JsonSchemaValidator.cmake b/cmake/JsonSchemaValidator.cmake
index 5474be4eb..372798d8d 100644
--- a/cmake/JsonSchemaValidator.cmake
+++ b/cmake/JsonSchemaValidator.cmake
@@ -24,6 +24,3 @@ FetchContent_Declare(json-schema-validator
 FetchContent_MakeAvailable(json-schema-validator)
 
 target_compile_options(nlohmann_json_schema_validator PRIVATE -fsigned-char)
-if (NOT WIN32)
-  target_compile_options(nlohmann_json_schema_validator PRIVATE -Wno-error)
-endif()
diff --git a/controller/CMakeLists.txt b/controller/CMakeLists.txt
index 5ad98fbd4..4eaa1cf07 100644
--- a/controller/CMakeLists.txt
+++ b/controller/CMakeLists.txt
@@ -39,7 +39,7 @@ if (WIN32)
     list(APPEND MINIFI_CONTROLLER_SOURCES 
"${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc")
 endif()
 
-add_executable(minificontroller ${MINIFI_CONTROLLER_SOURCES})
+add_minifi_executable(minificontroller ${MINIFI_CONTROLLER_SOURCES})
 include(ArgParse)
 target_link_libraries(minificontroller ${LIBMINIFI} argparse Threads::Threads)
 
diff --git a/controller/tests/CMakeLists.txt b/controller/tests/CMakeLists.txt
index e51c2eb82..b00d3aa8b 100644
--- a/controller/tests/CMakeLists.txt
+++ b/controller/tests/CMakeLists.txt
@@ -29,7 +29,7 @@ list(REMOVE_ITEM CONTROLLER_SOURCES 
"${CMAKE_SOURCE_DIR}/controller/MiNiFiContro
 set(CONTROLLER_TEST_COUNT 0)
 foreach(testfile ${CONTROLLER_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable(${testfilename} "${testfile}" ${CONTROLLER_SOURCES})
+    add_minifi_executable(${testfilename} "${testfile}" ${CONTROLLER_SOURCES})
 
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/controller")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/include")
diff --git a/encrypt-config/CMakeLists.txt b/encrypt-config/CMakeLists.txt
index e3c490d61..1b8129fb8 100644
--- a/encrypt-config/CMakeLists.txt
+++ b/encrypt-config/CMakeLists.txt
@@ -23,7 +23,7 @@ if (WIN32)
     configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc.in 
${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc @ONLY)
     list(APPEND ENCRYPT_CONFIG_FILES 
"${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc")
 endif()
-add_executable(encrypt-config "${ENCRYPT_CONFIG_FILES}")
+add_minifi_executable(encrypt-config "${ENCRYPT_CONFIG_FILES}")
 target_include_directories(encrypt-config PRIVATE ../libminifi/include)
 include(ArgParse)
 target_link_libraries(encrypt-config libsodium argparse ${LIBMINIFI})
diff --git a/encrypt-config/tests/CMakeLists.txt 
b/encrypt-config/tests/CMakeLists.txt
index 5545d0020..a394a3c97 100644
--- a/encrypt-config/tests/CMakeLists.txt
+++ b/encrypt-config/tests/CMakeLists.txt
@@ -24,7 +24,7 @@ list(REMOVE_ITEM ENCRYPT_CONFIG_SOURCES 
"${CMAKE_SOURCE_DIR}/encrypt-config/Encr
 set(ENCRYPT_CONFIG_TEST_COUNT 0)
 foreach(testfile ${ENCRYPT_CONFIG_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable(${testfilename} "${testfile}" ${ENCRYPT_CONFIG_SOURCES})
+    add_minifi_executable(${testfilename} "${testfile}" 
${ENCRYPT_CONFIG_SOURCES})
 
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/encrypt-config")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/include")
diff --git a/extensions/aws/CMakeLists.txt b/extensions/aws/CMakeLists.txt
index 9dc3f01b0..11ae83543 100644
--- a/extensions/aws/CMakeLists.txt
+++ b/extensions/aws/CMakeLists.txt
@@ -29,8 +29,7 @@ include_directories(controllerservices processors s3 
${CMAKE_SOURCE_DIR}/extensi
 
 file(GLOB SOURCES "*.cpp" "s3/*.cpp" "controllerservices/*.cpp" 
"processors/*.cpp" "utils/*.cpp")
 
-add_library(minifi-aws SHARED ${SOURCES})
-
+add_minifi_library(minifi-aws SHARED ${SOURCES})
 target_link_libraries(minifi-aws PUBLIC ${LIBMINIFI} Threads::Threads)
 
 target_wholearchive_library_private(minifi-aws AWS::aws-cpp-sdk-s3)
diff --git a/extensions/aws/tests/CMakeLists.txt 
b/extensions/aws/tests/CMakeLists.txt
index 3cb068055..6d99060ab 100644
--- a/extensions/aws/tests/CMakeLists.txt
+++ b/extensions/aws/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB AWS_INTEGRATION_TESTS  "*.cpp")
 SET(AWS_TEST_COUNT 0)
 FOREACH(testfile ${AWS_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/aws")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/aws/s3")
diff --git a/extensions/azure/CMakeLists.txt b/extensions/azure/CMakeLists.txt
index eab013088..209aa028a 100644
--- a/extensions/azure/CMakeLists.txt
+++ b/extensions/azure/CMakeLists.txt
@@ -28,7 +28,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "*.cpp" "storage/*.cpp" "controllerservices/*.cpp" 
"processors/*.cpp" "utils/*.cpp")
 
-add_library(minifi-azure SHARED ${SOURCES})
+add_minifi_library(minifi-azure SHARED ${SOURCES})
 
 target_compile_features(minifi-azure PUBLIC cxx_std_14)
 
diff --git a/extensions/azure/tests/CMakeLists.txt 
b/extensions/azure/tests/CMakeLists.txt
index 59b87529f..195cea6f8 100644
--- a/extensions/azure/tests/CMakeLists.txt
+++ b/extensions/azure/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB AZURE_INTEGRATION_TESTS  "*.cpp")
 SET(AZURE_TEST_COUNT 0)
 FOREACH(testfile ${AZURE_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/azure")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/azure/storage")
diff --git a/extensions/bustache/CMakeLists.txt 
b/extensions/bustache/CMakeLists.txt
index 5185e3ab4..b5e76956c 100644
--- a/extensions/bustache/CMakeLists.txt
+++ b/extensions/bustache/CMakeLists.txt
@@ -27,7 +27,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "*.cpp")
 
-add_library(minifi-bustache-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-bustache-extensions SHARED ${SOURCES})
 
 target_link_libraries(minifi-bustache-extensions ${LIBMINIFI})
 target_link_libraries(minifi-bustache-extensions bustache)
diff --git a/extensions/bustache/tests/CMakeLists.txt 
b/extensions/bustache/tests/CMakeLists.txt
index b184d16ce..9b03bc98a 100644
--- a/extensions/bustache/tests/CMakeLists.txt
+++ b/extensions/bustache/tests/CMakeLists.txt
@@ -21,7 +21,7 @@ file(GLOB BUSTACHE_INTEGRATION_TESTS "*.cpp")
 SET(BUSTACHE-EXTENSIONS_TEST_COUNT 0)
 FOREACH(testfile ${BUSTACHE_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/bustache")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/civetweb/CMakeLists.txt 
b/extensions/civetweb/CMakeLists.txt
index 0678305f9..391054073 100644
--- a/extensions/civetweb/CMakeLists.txt
+++ b/extensions/civetweb/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "processors/*.cpp" "protocols/*.cpp")
 
-add_library(minifi-civet-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-civet-extensions SHARED ${SOURCES})
 target_include_directories(minifi-civet-extensions BEFORE PUBLIC
                            ${CMAKE_SOURCE_DIR}/libminifi/include
                            ${CMAKE_SOURCE_DIR}/libminifi/include/core
diff --git a/extensions/civetweb/tests/CMakeLists.txt 
b/extensions/civetweb/tests/CMakeLists.txt
index da835ae91..5452f2836 100644
--- a/extensions/civetweb/tests/CMakeLists.txt
+++ b/extensions/civetweb/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ if(NOT DISABLE_CURL)
     SET(CIVETWEB-EXTENSIONS_TEST_COUNT 0)
     FOREACH(testfile ${CIVETWEB_INTEGRATION_TESTS})
         get_filename_component(testfilename "${testfile}" NAME_WE)
-        add_executable("${testfilename}" "${testfile}")
+        add_minifi_executable("${testfilename}" "${testfile}")
         target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
         target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/civetweb")
         target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
diff --git a/extensions/coap/CMakeLists.txt b/extensions/coap/CMakeLists.txt
index d1de0e31d..2ef66e72e 100644
--- a/extensions/coap/CMakeLists.txt
+++ b/extensions/coap/CMakeLists.txt
@@ -31,8 +31,8 @@ include_directories(../http-curl/)
 file(GLOB CSOURCES "nanofi/*.c")
 file(GLOB SOURCES "*.cpp" "protocols/*.cpp" "processors/*.cpp" 
"controllerservice/*.cpp" "server/*.cpp" )
 
-add_library(nanofi-coap-c STATIC ${CSOURCES})
-add_library(minifi-coap SHARED ${SOURCES})
+add_minifi_library(nanofi-coap-c STATIC ${CSOURCES})
+add_minifi_library(minifi-coap SHARED ${SOURCES})
 
 target_link_libraries(nanofi-coap-c COAP::libcoap Threads::Threads)
 target_link_libraries(minifi-coap ${LIBMINIFI})
diff --git a/extensions/coap/tests/CMakeLists.txt 
b/extensions/coap/tests/CMakeLists.txt
index 472331563..cbea3b4a4 100644
--- a/extensions/coap/tests/CMakeLists.txt
+++ b/extensions/coap/tests/CMakeLists.txt
@@ -24,7 +24,7 @@ SET(CURL_INT_TEST_COUNT 0)
 if (NOT DISABLE_CURL)
     FOREACH(testfile ${COAP_INTEGRATION_TESTS})
         get_filename_component(testfilename "${testfile}" NAME_WE)
-        add_executable("${testfilename}" "${testfile}")
+        add_minifi_executable("${testfilename}" "${testfile}")
         target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
         target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
         target_include_directories(${testfilename} BEFORE PRIVATE "../")
diff --git a/extensions/elasticsearch/CMakeLists.txt 
b/extensions/elasticsearch/CMakeLists.txt
index 35634a02c..3c6961e05 100644
--- a/extensions/elasticsearch/CMakeLists.txt
+++ b/extensions/elasticsearch/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-elasticsearch SHARED ${SOURCES})
+add_minifi_library(minifi-elasticsearch SHARED ${SOURCES})
 
 target_include_directories(minifi-elasticsearch PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/http-curl")
 target_link_libraries(minifi-elasticsearch ${LIBMINIFI})
diff --git a/extensions/elasticsearch/tests/CMakeLists.txt 
b/extensions/elasticsearch/tests/CMakeLists.txt
index 32269c187..516b606e9 100644
--- a/extensions/elasticsearch/tests/CMakeLists.txt
+++ b/extensions/elasticsearch/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB ELASTICSEARCH_TESTS  "*.cpp")
 SET(ELASTICSEARCH_TEST_COUNT 0)
 FOREACH(testfile ${ELASTICSEARCH_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/elasticsearch")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/expression-language/CMakeLists.txt 
b/extensions/expression-language/CMakeLists.txt
index 775b4116a..5fe897071 100644
--- a/extensions/expression-language/CMakeLists.txt
+++ b/extensions/expression-language/CMakeLists.txt
@@ -103,7 +103,7 @@ if (NOT WIN32)
     set_source_files_properties(${FLEX_el-scanner_OUTPUTS} PROPERTIES 
COMPILE_FLAGS -Wno-error)
 endif()
 
-add_library(minifi-expression-language-extensions SHARED ${SOURCES} 
${BISON_el-parser_OUTPUTS} ${FLEX_el-scanner_OUTPUTS})
+add_minifi_library(minifi-expression-language-extensions SHARED ${SOURCES} 
${BISON_el-parser_OUTPUTS} ${FLEX_el-scanner_OUTPUTS})
 
 target_link_libraries(minifi-expression-language-extensions ${LIBMINIFI})
 target_link_libraries(minifi-expression-language-extensions RapidJSON 
CURL::libcurl)
diff --git a/extensions/expression-language/tests/CMakeLists.txt 
b/extensions/expression-language/tests/CMakeLists.txt
index f8a85a446..10688c874 100644
--- a/extensions/expression-language/tests/CMakeLists.txt
+++ b/extensions/expression-language/tests/CMakeLists.txt
@@ -23,7 +23,7 @@ file(GLOB EXPRESSION_LANGUAGE_TESTS  "*.cpp")
 SET(EXTENSIONS_TEST_COUNT 0)
 FOREACH(testfile ${EXPRESSION_LANGUAGE_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable(${testfilename} "${testfile}")
+    add_minifi_executable(${testfilename} "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/include")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
@@ -51,7 +51,7 @@ SET(INT_EXTENSIONS_TEST_COUNT 0)
 
 FOREACH(testfile ${INT_EXPRESSION_LANGUAGE_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable(${testfilename} "${testfile}")
+    add_minifi_executable(${testfilename} "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/processors")
diff --git a/extensions/gcp/CMakeLists.txt b/extensions/gcp/CMakeLists.txt
index 0f8c0c62f..8dbe37e08 100644
--- a/extensions/gcp/CMakeLists.txt
+++ b/extensions/gcp/CMakeLists.txt
@@ -25,7 +25,7 @@ include(GoogleCloudCpp)
 include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 file(GLOB SOURCES "*.cpp" "controllerservices/*.cpp" "processors/*.cpp")
 
-add_library(minifi-gcp SHARED ${SOURCES})
+add_minifi_library(minifi-gcp SHARED ${SOURCES})
 
 target_link_libraries(minifi-gcp ${LIBMINIFI} google-cloud-cpp::storage)
 target_include_directories(minifi-gcp SYSTEM PUBLIC 
${google-cloud-cpp_INCLUDE_DIRS})
diff --git a/extensions/gcp/tests/CMakeLists.txt 
b/extensions/gcp/tests/CMakeLists.txt
index 0b0ffbc2e..1526e8801 100644
--- a/extensions/gcp/tests/CMakeLists.txt
+++ b/extensions/gcp/tests/CMakeLists.txt
@@ -19,7 +19,7 @@
 file(GLOB GCS_TESTS  "*.cpp")
 FOREACH(testfile ${GCS_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/expression-language")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/gcp")
diff --git a/extensions/gps/CMakeLists.txt b/extensions/gps/CMakeLists.txt
index 32f7df875..545fa5bcd 100644
--- a/extensions/gps/CMakeLists.txt
+++ b/extensions/gps/CMakeLists.txt
@@ -29,7 +29,7 @@ include_directories(${LIBGPS_INCLUDE_DIRS})
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-gps SHARED ${SOURCES})
+add_minifi_library(minifi-gps SHARED ${SOURCES})
 
 # Include UUID
 target_link_libraries(minifi-gps ${LIBMINIFI} )
diff --git a/extensions/gps/tests/CMakeLists.txt 
b/extensions/gps/tests/CMakeLists.txt
index 59600debd..02e831b21 100644
--- a/extensions/gps/tests/CMakeLists.txt
+++ b/extensions/gps/tests/CMakeLists.txt
@@ -21,7 +21,7 @@ file(GLOB GPS_INTEGRATION_TESTS  "*.cpp")
 SET(GPS_TEST_COUNT 0)
 FOREACH(testfile ${GPS_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/gps/")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/grafana-loki/CMakeLists.txt 
b/extensions/grafana-loki/CMakeLists.txt
index 9c3547d79..e66bc033d 100644
--- a/extensions/grafana-loki/CMakeLists.txt
+++ b/extensions/grafana-loki/CMakeLists.txt
@@ -41,6 +41,9 @@ if (ENABLE_GRPC_FOR_LOKI)
         ${LOKI_PROTOBUF_GENERATED_DIR}/grafana-loki-push.grpc.pb.cc
         ${LOKI_PROTOBUF_GENERATED_DIR}/grafana-loki-push.pb.cc
     )
+
+    
set_source_files_properties(${LOKI_PROTOBUF_GENERATED_DIR}/grafana-loki-push.grpc.pb.cc
 PROPERTIES COMPILE_FLAGS -Wno-error)
+    
set_source_files_properties(${LOKI_PROTOBUF_GENERATED_DIR}/grafana-loki-push.pb.cc
 PROPERTIES COMPILE_FLAGS -Wno-error)
 else()
     set(SOURCES
         ${CMAKE_CURRENT_SOURCE_DIR}/PushGrafanaLoki.cpp
@@ -48,13 +51,13 @@ else()
     )
 endif()
 
-add_library(minifi-grafana-loki SHARED ${SOURCES})
+add_minifi_library(minifi-grafana-loki SHARED ${SOURCES})
 target_include_directories(minifi-grafana-loki PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/http-curl")
 target_link_libraries(minifi-grafana-loki ${LIBMINIFI} minifi-http-curl)
 add_dependencies(minifi-grafana-loki minifi-http-curl)
 
 if (ENABLE_GRPC_FOR_LOKI)
-    target_include_directories(minifi-grafana-loki PRIVATE BEFORE 
"${LOKI_PROTOBUF_GENERATED_DIR}" "${GRPC_INCLUDE_DIR}" 
"${PROTOBUF_INCLUDE_DIR}")
+    target_include_directories(minifi-grafana-loki SYSTEM PRIVATE BEFORE 
"${LOKI_PROTOBUF_GENERATED_DIR}" "${GRPC_INCLUDE_DIR}" 
"${PROTOBUF_INCLUDE_DIR}")
     target_link_libraries(minifi-grafana-loki grpc++ protobuf::libprotobuf)
     add_dependencies(minifi-grafana-loki grpc grafana-loki-protos)
 endif()
diff --git a/extensions/grafana-loki/PushGrafanaLokiGrpc.h 
b/extensions/grafana-loki/PushGrafanaLokiGrpc.h
index e6fa46557..ec4b854f3 100644
--- a/extensions/grafana-loki/PushGrafanaLokiGrpc.h
+++ b/extensions/grafana-loki/PushGrafanaLokiGrpc.h
@@ -59,7 +59,7 @@ class PushGrafanaLokiGrpc : public PushGrafanaLoki {
   void onSchedule(core::ProcessContext& context, core::ProcessSessionFactory& 
session_factory) override;
 
  protected:
-  void setUpStreamLabels(core::ProcessContext& context);
+  void setUpStreamLabels(core::ProcessContext& context) override;
   nonstd::expected<void, std::string> submitRequest(const 
std::vector<std::shared_ptr<core::FlowFile>>& batched_flow_files, 
core::ProcessSession& session) override;
   void setUpGrpcChannel(const std::string& url, core::ProcessContext& context);
 
diff --git a/extensions/grafana-loki/tests/CMakeLists.txt 
b/extensions/grafana-loki/tests/CMakeLists.txt
index 70cd48a10..a98a0e424 100644
--- a/extensions/grafana-loki/tests/CMakeLists.txt
+++ b/extensions/grafana-loki/tests/CMakeLists.txt
@@ -25,11 +25,11 @@ endif()
 SET(GRAFANA_LOKI_TEST_COUNT 0)
 FOREACH(testfile ${GRAFANA_LOKI_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/grafana-loki")
     if (ENABLE_GRPC_FOR_LOKI)
-        target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_BINARY_DIR}/grafana-loki-protobuf-generated")
+        target_include_directories(${testfilename} SYSTEM PRIVATE BEFORE 
"${CMAKE_BINARY_DIR}/grafana-loki-protobuf-generated")
     endif()
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/civetweb/")
diff --git a/extensions/http-curl/CMakeLists.txt 
b/extensions/http-curl/CMakeLists.txt
index cdecc4cdc..23fef0ae1 100644
--- a/extensions/http-curl/CMakeLists.txt
+++ b/extensions/http-curl/CMakeLists.txt
@@ -28,7 +28,7 @@ include_directories(protocols client processors sitetosite)
 
 file(GLOB SOURCES  "*.cpp" "protocols/*.cpp" "client/*.cpp" "processors/*.cpp" 
"sitetosite/*.cpp")
 
-add_library(minifi-http-curl SHARED ${SOURCES})
+add_minifi_library(minifi-http-curl SHARED ${SOURCES})
 
 target_link_libraries(minifi-http-curl ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-http-curl CURL::libcurl RapidJSON)
diff --git a/extensions/http-curl/client/HTTPClient.h 
b/extensions/http-curl/client/HTTPClient.h
index 8f8443bdc..adcc00cbe 100644
--- a/extensions/http-curl/client/HTTPClient.h
+++ b/extensions/http-curl/client/HTTPClient.h
@@ -209,8 +209,8 @@ class HTTPClient : public utils::BaseHTTPClient, public 
core::Connectable {
   Progress progress_;
 
  protected:
-  static CURLcode configure_ssl_context(CURL* /*curl*/, void *ctx, void 
*param) {
 #ifdef OPENSSL_SUPPORT
+  static CURLcode configure_ssl_context(CURL* /*curl*/, void *ctx, void 
*param) {
     gsl_Expects(ctx);
     gsl_Expects(param);
     auto& ssl_context_service = 
*static_cast<minifi::controllers::SSLContextService*>(param);
@@ -218,10 +218,12 @@ class HTTPClient : public utils::BaseHTTPClient, public 
core::Connectable {
       return CURLE_FAILED_INIT;
     }
     return CURLE_OK;
+  }
 #else
+  static CURLcode configure_ssl_context(CURL*, void*, void*) {
     return CURLE_FAILED_INIT;
-#endif
   }
+#endif
 
   void configure_secure_connection();
 
diff --git a/extensions/http-curl/tests/CMakeLists.txt 
b/extensions/http-curl/tests/CMakeLists.txt
index 377c9b5b2..315758cc7 100644
--- a/extensions/http-curl/tests/CMakeLists.txt
+++ b/extensions/http-curl/tests/CMakeLists.txt
@@ -24,7 +24,7 @@ SET(CURL_INT_TEST_COUNT 0)
 
 FOREACH(testfile ${CURL_UNIT_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/")
     target_include_directories(${testfilename} BEFORE PRIVATE "../")
@@ -46,7 +46,7 @@ ENDFOREACH()
 
 FOREACH(testfile ${CURL_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/")
     target_include_directories(${testfilename} BEFORE PRIVATE "../")
diff --git a/extensions/jni/CMakeLists.txt b/extensions/jni/CMakeLists.txt
index ec6275b15..833675fa1 100644
--- a/extensions/jni/CMakeLists.txt
+++ b/extensions/jni/CMakeLists.txt
@@ -32,7 +32,7 @@ include_directories(${JNI_INCLUDE_DIRS})
 
 file(GLOB SOURCES  "jvm/*.cpp" "*.cpp")
 
-add_library(minifi-jni SHARED ${SOURCES})
+add_minifi_library(minifi-jni SHARED ${SOURCES})
 
 set(JNI_FRAMEWORK_JAR_SOURCE 
"${CMAKE_SOURCE_DIR}/extensions/jni/nifi-framework-jni")
 set(JNI_FRAMEWORK_JAR_BIN "${CMAKE_CURRENT_BINARY_DIR}/" )
diff --git a/extensions/kubernetes/CMakeLists.txt 
b/extensions/kubernetes/CMakeLists.txt
index d5c0131ba..51223197d 100644
--- a/extensions/kubernetes/CMakeLists.txt
+++ b/extensions/kubernetes/CMakeLists.txt
@@ -23,7 +23,7 @@ include(KubernetesClientC)
 include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "*.cpp" "controllerservice/*.cpp" "processors/*.cpp")
-add_library(minifi-kubernetes-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-kubernetes-extensions SHARED ${SOURCES})
 target_link_libraries(minifi-kubernetes-extensions ${LIBMINIFI} kubernetes 
CURL::libcurl)
 
 register_extension(minifi-kubernetes-extensions "KUBERNETES EXTENSIONS" 
KUBERNETES-EXTENSIONS "This enables Kubernetes support" 
"extensions/kubernetes/tests")
diff --git a/extensions/kubernetes/tests/CMakeLists.txt 
b/extensions/kubernetes/tests/CMakeLists.txt
index a3efee665..09d982d58 100644
--- a/extensions/kubernetes/tests/CMakeLists.txt
+++ b/extensions/kubernetes/tests/CMakeLists.txt
@@ -21,7 +21,7 @@ file(GLOB KUBERNETES_UNIT_TESTS  "*.cpp")
 SET(KUBERNETES_UNIT_TEST_COUNT 0)
 FOREACH(TEST_FILE ${KUBERNETES_UNIT_TESTS})
     get_filename_component(TEST_TARGET "${TEST_FILE}" NAME_WE)
-    add_executable("${TEST_TARGET}" "${TEST_FILE}")
+    add_minifi_executable("${TEST_TARGET}" "${TEST_FILE}")
     target_include_directories(${TEST_TARGET} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi")
     target_include_directories(${TEST_TARGET} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test")
     target_include_directories(${TEST_TARGET} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/kubernetes")
diff --git a/extensions/libarchive/CMakeLists.txt 
b/extensions/libarchive/CMakeLists.txt
index 12a604b76..5cd813bea 100644
--- a/extensions/libarchive/CMakeLists.txt
+++ b/extensions/libarchive/CMakeLists.txt
@@ -34,7 +34,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-archive-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-archive-extensions SHARED ${SOURCES})
 
 target_link_libraries(minifi-archive-extensions ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-archive-extensions LibArchive::LibArchive)
diff --git a/extensions/libarchive/tests/CMakeLists.txt 
b/extensions/libarchive/tests/CMakeLists.txt
index 64a068a49..10bd7d558 100644
--- a/extensions/libarchive/tests/CMakeLists.txt
+++ b/extensions/libarchive/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB ARCHIVE_INTEGRATION_TESTS  "*.cpp")
 SET(EXTENSIONS_TEST_COUNT 0)
 FOREACH(testfile ${ARCHIVE_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}" "util/ArchiveTests.cpp")
+    add_minifi_executable("${testfilename}" "${testfile}" 
"util/ArchiveTests.cpp")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/libarchive")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/librdkafka/CMakeLists.txt 
b/extensions/librdkafka/CMakeLists.txt
index 81002261d..74fff6ced 100644
--- a/extensions/librdkafka/CMakeLists.txt
+++ b/extensions/librdkafka/CMakeLists.txt
@@ -28,7 +28,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-rdkafka-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-rdkafka-extensions SHARED ${SOURCES})
 
 target_link_libraries(minifi-rdkafka-extensions ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-rdkafka-extensions librdkafka)
diff --git a/extensions/librdkafka/tests/CMakeLists.txt 
b/extensions/librdkafka/tests/CMakeLists.txt
index 7e101ee5d..aaec9c496 100644
--- a/extensions/librdkafka/tests/CMakeLists.txt
+++ b/extensions/librdkafka/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB KAFKA_INTEGRATION_TESTS  "*.cpp")
 SET(EXTENSIONS_TEST_COUNT 0)
 FOREACH(testfile ${KAFKA_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/librdkafka")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test")
     createTests("${testfilename}")
diff --git a/extensions/lua/CMakeLists.txt b/extensions/lua/CMakeLists.txt
index 7437743fa..f4175db7e 100644
--- a/extensions/lua/CMakeLists.txt
+++ b/extensions/lua/CMakeLists.txt
@@ -27,7 +27,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-lua-script-extension SHARED ${SOURCES})
+add_minifi_library(minifi-lua-script-extension SHARED ${SOURCES})
 
 target_link_libraries(minifi-lua-script-extension PRIVATE ${LIBMINIFI} 
Threads::Threads)
 
diff --git a/extensions/lua/tests/CMakeLists.txt 
b/extensions/lua/tests/CMakeLists.txt
index 3c7af6a44..a64bbcaef 100644
--- a/extensions/lua/tests/CMakeLists.txt
+++ b/extensions/lua/tests/CMakeLists.txt
@@ -23,7 +23,7 @@ SET(EXTENSIONS_TEST_COUNT 0)
 
 FOREACH(testfile ${EXECUTESCRIPT_LUA_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/lua")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} SYSTEM PRIVATE BEFORE 
"${SOL2_INCLUDE_DIR}")
diff --git a/extensions/mqtt/CMakeLists.txt b/extensions/mqtt/CMakeLists.txt
index c39500ab1..d6d2817ea 100644
--- a/extensions/mqtt/CMakeLists.txt
+++ b/extensions/mqtt/CMakeLists.txt
@@ -26,7 +26,7 @@ include_directories(./processors ../../libminifi/include  
../../libminifi/includ
 
 file(GLOB SOURCES "processors/*.cpp")
 
-add_library(minifi-mqtt-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-mqtt-extensions SHARED ${SOURCES})
 
 target_link_libraries(minifi-mqtt-extensions ${LIBMINIFI})
 
diff --git a/extensions/mqtt/tests/CMakeLists.txt 
b/extensions/mqtt/tests/CMakeLists.txt
index ac94e7026..d5b408a64 100644
--- a/extensions/mqtt/tests/CMakeLists.txt
+++ b/extensions/mqtt/tests/CMakeLists.txt
@@ -21,7 +21,7 @@ file(GLOB MQTT_TESTS  "*.cpp")
 
 FOREACH(testfile ${MQTT_TESTS})
        get_filename_component(testfilename "${testfile}" NAME_WE)
-       add_executable("${testfilename}" "${testfile}")
+       add_minifi_executable("${testfilename}" "${testfile}")
        target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_CURRENT_SOURCE_DIR}/../../extensions/standard-processors")
        target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_CURRENT_SOURCE_DIR}/../../../libminifi/test/")
        createTests("${testfilename}")
diff --git a/extensions/opc/CMakeLists.txt b/extensions/opc/CMakeLists.txt
index 92f3c3913..9f1267cf9 100644
--- a/extensions/opc/CMakeLists.txt
+++ b/extensions/opc/CMakeLists.txt
@@ -35,7 +35,7 @@ include_directories(include)
 
 file(GLOB SOURCES "src/*.cpp")
 
-add_library(minifi-opc-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-opc-extensions SHARED ${SOURCES})
 
 target_link_libraries(minifi-opc-extensions ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-opc-extensions ${CMAKE_DL_LIBS} spdlog 
open62541::open62541)
diff --git a/extensions/opencv/CMakeLists.txt b/extensions/opencv/CMakeLists.txt
index 69d1f24ad..a3b45a70c 100644
--- a/extensions/opencv/CMakeLists.txt
+++ b/extensions/opencv/CMakeLists.txt
@@ -28,7 +28,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-opencv SHARED ${SOURCES})
+add_minifi_library(minifi-opencv SHARED ${SOURCES})
 
 target_link_libraries(minifi-opencv ${LIBMINIFI})
 target_link_libraries(minifi-opencv OPENCV::libopencv)
diff --git a/extensions/opencv/tests/CMakeLists.txt 
b/extensions/opencv/tests/CMakeLists.txt
index 8aa55b39c..d095c7e9a 100644
--- a/extensions/opencv/tests/CMakeLists.txt
+++ b/extensions/opencv/tests/CMakeLists.txt
@@ -23,7 +23,7 @@ SET(OPENCV_TEST_COUNT 0)
 
 FOREACH(testfile ${OPENCV_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/opencv/")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_link_libraries(${testfilename} minifi-opencv)
diff --git a/extensions/openwsman/CMakeLists.txt 
b/extensions/openwsman/CMakeLists.txt
index 2023ce086..5c9e3846d 100644
--- a/extensions/openwsman/CMakeLists.txt
+++ b/extensions/openwsman/CMakeLists.txt
@@ -28,7 +28,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "processors/*.cpp")
 
-add_library(minifi-openwsman SHARED ${SOURCES})
+add_minifi_library(minifi-openwsman SHARED ${SOURCES})
 
 target_link_libraries(minifi-openwsman ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-openwsman OpenWSMAN::libwsman 
civetweb::civetweb-cpp civetweb::c-library LibXml2::LibXml2)
diff --git a/extensions/pcap/CMakeLists.txt b/extensions/pcap/CMakeLists.txt
index ca4b4e97f..de505274c 100644
--- a/extensions/pcap/CMakeLists.txt
+++ b/extensions/pcap/CMakeLists.txt
@@ -60,7 +60,7 @@ add_custom_target(
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-pcap SHARED ${SOURCES})
+add_minifi_library(minifi-pcap SHARED ${SOURCES})
 target_include_directories(minifi-pcap PRIVATE ${PCAPPLUSPLUS_HEADER_DIR})
 
 add_dependencies(minifi-pcap pcappp)
diff --git a/extensions/pcap/tests/CMakeLists.txt 
b/extensions/pcap/tests/CMakeLists.txt
index a307c4ed1..ee23e165f 100644
--- a/extensions/pcap/tests/CMakeLists.txt
+++ b/extensions/pcap/tests/CMakeLists.txt
@@ -23,7 +23,7 @@ SET(PCAP_INT_TEST_COUNT 0)
 
 FOREACH(testfile ${PCAP_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}" )
+    add_minifi_executable("${testfilename}" "${testfile}" )
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/pcap/")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_BINARY_DIR}/extensions/pcap/pcap++/Dist/header/")
diff --git a/extensions/pdh/CMakeLists.txt b/extensions/pdh/CMakeLists.txt
index 8804e28b6..627562a2a 100644
--- a/extensions/pdh/CMakeLists.txt
+++ b/extensions/pdh/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-pdh SHARED ${SOURCES})
+add_minifi_library(minifi-pdh SHARED ${SOURCES})
 
 target_link_libraries(minifi-pdh ${LIBMINIFI} pdh)
 
diff --git a/extensions/pdh/tests/CMakeLists.txt 
b/extensions/pdh/tests/CMakeLists.txt
index 0df960d74..d50549f33 100644
--- a/extensions/pdh/tests/CMakeLists.txt
+++ b/extensions/pdh/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB PDH_TESTS  "*.cpp")
 SET(PDH_TEST_COUNT 0)
 FOREACH(testfile ${PDH_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/pdh")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/procfs/CMakeLists.txt b/extensions/procfs/CMakeLists.txt
index f7e5c0a8c..ff97d9385 100644
--- a/extensions/procfs/CMakeLists.txt
+++ b/extensions/procfs/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "*.cpp" "processors/*.cpp" "utils/*.cpp")
 
-add_library(minifi-procfs SHARED ${SOURCES})
+add_minifi_library(minifi-procfs SHARED ${SOURCES})
 target_link_libraries(minifi-procfs ${LIBMINIFI})
 
 register_extension(minifi-procfs "PROCFS EXTENSIONS" PROCFS-EXTENSIONS 
"Enabled metrics collection from procfs" "extensions/procfs/tests")
diff --git a/extensions/procfs/tests/CMakeLists.txt 
b/extensions/procfs/tests/CMakeLists.txt
index 868fe62bb..ec0a8e8e8 100644
--- a/extensions/procfs/tests/CMakeLists.txt
+++ b/extensions/procfs/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB PROCFS_TESTS  "*.cpp")
 SET(PROCFS_TEST_COUNT 0)
 FOREACH(testfile ${PROCFS_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/procfs")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/prometheus/CMakeLists.txt 
b/extensions/prometheus/CMakeLists.txt
index 380daad5b..d7f5af46b 100644
--- a/extensions/prometheus/CMakeLists.txt
+++ b/extensions/prometheus/CMakeLists.txt
@@ -26,7 +26,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "*.cpp")
 
-add_library(minifi-prometheus SHARED ${SOURCES})
+add_minifi_library(minifi-prometheus SHARED ${SOURCES})
 
 target_link_libraries(minifi-prometheus ${LIBMINIFI} prometheus-cpp::core  
prometheus-cpp::pull)
 target_include_directories(minifi-prometheus PUBLIC 
${prometheus-cpp_INCLUDE_DIRS})
diff --git a/extensions/prometheus/tests/CMakeLists.txt 
b/extensions/prometheus/tests/CMakeLists.txt
index 3d5c2f53c..6f0e72c3e 100644
--- a/extensions/prometheus/tests/CMakeLists.txt
+++ b/extensions/prometheus/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB PROMETHEUS_TESTS  "*.cpp")
 SET(PROMETHEUS_TEST_COUNT 0)
 FOREACH(testfile ${PROMETHEUS_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/prometheus")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     createTests("${testfilename}")
diff --git a/extensions/python/CMakeLists.txt b/extensions/python/CMakeLists.txt
index ea2af4482..174c32569 100644
--- a/extensions/python/CMakeLists.txt
+++ b/extensions/python/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "*.cpp" "types/*.cpp" "pythonloader/PyProcLoader.cpp")
 
-add_library(minifi-python-script-extension SHARED ${SOURCES})
+add_minifi_library(minifi-python-script-extension SHARED ${SOURCES})
 
 target_link_libraries(minifi-python-script-extension PRIVATE ${LIBMINIFI} 
Threads::Threads)
 
diff --git a/extensions/python/tests/CMakeLists.txt 
b/extensions/python/tests/CMakeLists.txt
index 89b0418fb..93ac1c8d2 100644
--- a/extensions/python/tests/CMakeLists.txt
+++ b/extensions/python/tests/CMakeLists.txt
@@ -26,7 +26,7 @@ SET(EXTENSIONS_TEST_COUNT 0)
 
 FOREACH(testfile ${EXECUTESCRIPT_PYTHON_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/python")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_link_libraries(${testfilename} minifi-python-script-extension 
minifi-script-extension Catch2WithMain Python::Python)
@@ -37,7 +37,7 @@ ENDFOREACH()
 
 FOREACH(testfile ${EXECUTEPYTHONPROCESSOR_UNIT_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
 
     target_include_directories("${testfilename}" PRIVATE 
"${PYTHON_INCLUDE_DIR}")
     target_include_directories("${testfilename}" PRIVATE python)
diff --git a/extensions/rocksdb-repos/CMakeLists.txt 
b/extensions/rocksdb-repos/CMakeLists.txt
index 830a28e1e..2cae1e31c 100644
--- a/extensions/rocksdb-repos/CMakeLists.txt
+++ b/extensions/rocksdb-repos/CMakeLists.txt
@@ -33,7 +33,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp" "controllers/*.cpp" "database/*.cpp" 
"encryption/*.cpp")
 
-add_library(minifi-rocksdb-repos SHARED ${SOURCES})
+add_minifi_library(minifi-rocksdb-repos SHARED ${SOURCES})
 
 target_link_libraries(minifi-rocksdb-repos ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-rocksdb-repos RocksDB::RocksDB)
diff --git a/extensions/rocksdb-repos/tests/CMakeLists.txt 
b/extensions/rocksdb-repos/tests/CMakeLists.txt
index 400acd267..9f4754c12 100644
--- a/extensions/rocksdb-repos/tests/CMakeLists.txt
+++ b/extensions/rocksdb-repos/tests/CMakeLists.txt
@@ -21,7 +21,7 @@ file(GLOB ROCKSDB_UNIT_TESTS  "*.cpp")
 SET(ROCKSDB_TEST_COUNT 0)
 FOREACH(testfile ${ROCKSDB_UNIT_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/rocksdb-repos/")
     target_include_directories(${testfilename} SYSTEM BEFORE PRIVATE 
"${ROCKSDB_THIRDPARTY_ROOT}/include")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test")
diff --git a/extensions/script/CMakeLists.txt b/extensions/script/CMakeLists.txt
index 19d39d907..12f47a59c 100644
--- a/extensions/script/CMakeLists.txt
+++ b/extensions/script/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "*.cpp")
 
-add_library(minifi-script-extension SHARED ${SOURCES})
+add_minifi_library(minifi-script-extension SHARED ${SOURCES})
 
 target_link_libraries(minifi-script-extension PRIVATE ${LIBMINIFI} 
Threads::Threads)
 target_include_directories(minifi-script-extension PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/python")
diff --git a/extensions/script/tests/CMakeLists.txt 
b/extensions/script/tests/CMakeLists.txt
index 52ac8c6cc..121428ec5 100644
--- a/extensions/script/tests/CMakeLists.txt
+++ b/extensions/script/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB EXECUTE_SCRIPT_TESTS  "*.cpp")
 SET(EXECUTE_SCRIPT_TEST_COUNT 0)
 FOREACH(testfile ${EXECUTE_SCRIPT_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/script")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
 
diff --git a/extensions/sensors/CMakeLists.txt 
b/extensions/sensors/CMakeLists.txt
index 1c2e9b115..df34a9bae 100644
--- a/extensions/sensors/CMakeLists.txt
+++ b/extensions/sensors/CMakeLists.txt
@@ -28,7 +28,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-sensors SHARED ${SOURCES})
+add_minifi_library(minifi-sensors SHARED ${SOURCES})
 
 target_link_libraries(minifi-sensors ${LIBMINIFI} Threads::Threads)
 
diff --git a/extensions/sensors/tests/CMakeLists.txt 
b/extensions/sensors/tests/CMakeLists.txt
index 0cbff8f8b..3a5170de7 100644
--- a/extensions/sensors/tests/CMakeLists.txt
+++ b/extensions/sensors/tests/CMakeLists.txt
@@ -23,7 +23,7 @@ SET(SENSORS_INT_TEST_COUNT 0)
 
 FOREACH(testfile ${SENSORS_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}" )
+    add_minifi_executable("${testfilename}" "${testfile}" )
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} SYSTEM PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/thirdparty/RTIMULib/RTIMULib/")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/sensors/")
diff --git a/extensions/sftp/CMakeLists.txt b/extensions/sftp/CMakeLists.txt
index d153eea20..1d6c3c44b 100644
--- a/extensions/sftp/CMakeLists.txt
+++ b/extensions/sftp/CMakeLists.txt
@@ -30,7 +30,7 @@ include_directories(client processors)
 
 file(GLOB SOURCES  "*.cpp" "client/*.cpp" "processors/*.cpp")
 
-add_library(minifi-sftp SHARED ${SOURCES})
+add_minifi_library(minifi-sftp SHARED ${SOURCES})
 
 target_link_libraries(minifi-sftp ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-sftp CURL::libcurl libssh2 RapidJSON)
diff --git a/extensions/sftp/tests/CMakeLists.txt 
b/extensions/sftp/tests/CMakeLists.txt
index 5b1367cb1..90491d78a 100644
--- a/extensions/sftp/tests/CMakeLists.txt
+++ b/extensions/sftp/tests/CMakeLists.txt
@@ -28,7 +28,7 @@ if (NOT SKIP_TESTS AND Java_FOUND AND Maven_FOUND AND NOT 
DISABLE_EXPRESSION_LAN
     SET(SFTP-EXTENSIONS_TEST_COUNT 0)
     FOREACH(testfile ${SFTP_INTEGRATION_TESTS})
         get_filename_component(testfilename "${testfile}" NAME_WE)
-        add_executable("${testfilename}" "${testfile}")
+        add_minifi_executable("${testfilename}" "${testfile}")
         target_include_directories(${testfilename} BEFORE PRIVATE 
${LIBSSH2_INCLUDE_DIR})
         target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
         target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/processors")
diff --git a/extensions/sftp/tests/tools/CMakeLists.txt 
b/extensions/sftp/tests/tools/CMakeLists.txt
index d1f970159..b8cec7033 100644
--- a/extensions/sftp/tests/tools/CMakeLists.txt
+++ b/extensions/sftp/tests/tools/CMakeLists.txt
@@ -19,7 +19,7 @@
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(sftp-test-tools STATIC ${SOURCES})
+add_minifi_library(sftp-test-tools STATIC ${SOURCES})
 
 target_include_directories(sftp-test-tools BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/include")
 target_include_directories(sftp-test-tools BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/include")
diff --git a/extensions/smb/CMakeLists.txt b/extensions/smb/CMakeLists.txt
index 4cb049fcc..205580aa0 100644
--- a/extensions/smb/CMakeLists.txt
+++ b/extensions/smb/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-smb SHARED ${SOURCES})
+add_minifi_library(minifi-smb SHARED ${SOURCES})
 target_link_libraries(minifi-smb ${LIBMINIFI} Mpr)
 target_include_directories(minifi-smb PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
 
diff --git a/extensions/smb/tests/CMakeLists.txt 
b/extensions/smb/tests/CMakeLists.txt
index 088d878c9..79ee9471b 100644
--- a/extensions/smb/tests/CMakeLists.txt
+++ b/extensions/smb/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB SMB_TESTS  "*.cpp")
 SET(SMB_TEST_COUNT 0)
 FOREACH(testfile ${SMB_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/smb")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/splunk/CMakeLists.txt b/extensions/splunk/CMakeLists.txt
index ff9d15e07..e2b64382b 100644
--- a/extensions/splunk/CMakeLists.txt
+++ b/extensions/splunk/CMakeLists.txt
@@ -25,7 +25,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-splunk SHARED ${SOURCES})
+add_minifi_library(minifi-splunk SHARED ${SOURCES})
 
 target_include_directories(minifi-splunk PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/http-curl")
 target_link_libraries(minifi-splunk ${LIBMINIFI})
diff --git a/extensions/splunk/tests/CMakeLists.txt 
b/extensions/splunk/tests/CMakeLists.txt
index 1a0604ee1..945c18ea3 100644
--- a/extensions/splunk/tests/CMakeLists.txt
+++ b/extensions/splunk/tests/CMakeLists.txt
@@ -22,7 +22,7 @@ file(GLOB SPLUNK_TESTS  "*.cpp")
 SET(SPLUNK_TEST_COUNT 0)
 FOREACH(testfile ${SPLUNK_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/splunk")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/extensions/sql/CMakeLists.txt b/extensions/sql/CMakeLists.txt
index d998369f9..75c4d9afe 100644
--- a/extensions/sql/CMakeLists.txt
+++ b/extensions/sql/CMakeLists.txt
@@ -28,7 +28,7 @@ include_directories(".")
 
 file(GLOB SOURCES  "*.cpp" "services/*.cpp" "processors/*.cpp"  "data/*.cpp")
 
-add_library(minifi-sql SHARED ${SOURCES})
+add_minifi_library(minifi-sql SHARED ${SOURCES})
 
 if(WIN32)
     find_package(ODBC REQUIRED)
diff --git a/extensions/sql/tests/CMakeLists.txt 
b/extensions/sql/tests/CMakeLists.txt
index 30f0b7faf..15b22d856 100644
--- a/extensions/sql/tests/CMakeLists.txt
+++ b/extensions/sql/tests/CMakeLists.txt
@@ -17,7 +17,7 @@
 # under the License.
 
 file(GLOB SQL_MOCK_SOURCES  "mocks/*.cpp")
-add_library(minifi-sql-mocks STATIC ${SQL_MOCK_SOURCES})
+add_minifi_library(minifi-sql-mocks STATIC ${SQL_MOCK_SOURCES})
 target_include_directories(minifi-sql-mocks BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/include")
 target_include_directories(minifi-sql-mocks BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/sql")
 target_include_directories(minifi-sql-mocks BEFORE PRIVATE "mocks")
@@ -27,7 +27,7 @@ file(GLOB SQL_TESTS  "*.cpp")
 set(SQL_TEST_COUNT 0)
 foreach(testfile ${SQL_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable(${testfilename} "${testfile}")
+    add_minifi_executable(${testfilename} "${testfile}")
 
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/sql")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
diff --git a/extensions/standard-processors/CMakeLists.txt 
b/extensions/standard-processors/CMakeLists.txt
index b9d6bc6e8..630fb3cab 100644
--- a/extensions/standard-processors/CMakeLists.txt
+++ b/extensions/standard-processors/CMakeLists.txt
@@ -22,7 +22,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES "processors/*.cpp" "controllers/*.cpp" "utils/*.cpp")
 
-add_library(minifi-standard-processors SHARED ${SOURCES})
+add_minifi_library(minifi-standard-processors SHARED ${SOURCES})
 target_include_directories(minifi-standard-processors PUBLIC 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
 
 include(RangeV3)
diff --git a/extensions/standard-processors/tests/CMakeLists.txt 
b/extensions/standard-processors/tests/CMakeLists.txt
index 11579a777..8095b873c 100644
--- a/extensions/standard-processors/tests/CMakeLists.txt
+++ b/extensions/standard-processors/tests/CMakeLists.txt
@@ -32,7 +32,7 @@ SET(PROCESSOR_INT_TEST_COUNT 0)
 
 FOREACH(testfile ${PROCESSOR_UNIT_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
${PROCESSOR_INCLUDE_DIRS})
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} BEFORE PRIVATE "../")
@@ -58,7 +58,7 @@ message("-- Finished building ${PROCESSOR_INT_TEST_COUNT} 
processor unit test fi
 SET(INT_TEST_COUNT 0)
 FOREACH(testfile ${PROCESSOR_INTEGRATION_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
${PROCESSOR_INCLUDE_DIRS})
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} BEFORE PRIVATE "../")
@@ -83,7 +83,7 @@ add_test(NAME ProcessGroupTest COMMAND ProcessGroupTest 
"${TEST_RESOURCES}/TestP
 
 FOREACH(resourcefile ${RESOURCE_APPS})
     get_filename_component(resourcefilename "${resourcefile}" NAME_WE)
-    add_executable("${resourcefilename}" "${resourcefile}")
+    add_minifi_executable("${resourcefilename}" "${resourcefile}")
     set_target_properties(${resourcefilename} PROPERTIES 
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
 ENDFOREACH()
 
diff --git a/extensions/systemd/CMakeLists.txt 
b/extensions/systemd/CMakeLists.txt
index 2fcdd35a6..3350d47ba 100644
--- a/extensions/systemd/CMakeLists.txt
+++ b/extensions/systemd/CMakeLists.txt
@@ -23,7 +23,7 @@ endif()
 
 include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
-add_library(minifi-systemd SHARED ConsumeJournald.cpp 
libwrapper/LibWrapper.cpp libwrapper/DlopenWrapper.cpp)
+add_minifi_library(minifi-systemd SHARED "ConsumeJournald.cpp" 
"libwrapper/LibWrapper.cpp" "libwrapper/DlopenWrapper.cpp")
 
 target_link_libraries(minifi-systemd ${LIBMINIFI} Threads::Threads date::date)
 
diff --git a/extensions/systemd/tests/CMakeLists.txt 
b/extensions/systemd/tests/CMakeLists.txt
index 3e893c8db..ec689d9e3 100644
--- a/extensions/systemd/tests/CMakeLists.txt
+++ b/extensions/systemd/tests/CMakeLists.txt
@@ -19,7 +19,7 @@
 
 function(add_systemd_test testfile)
     get_filename_component(TEST_TARGET "${testfile}" NAME_WE)
-    add_executable(${TEST_TARGET} "${testfile}")
+    add_minifi_executable(${TEST_TARGET} "${testfile}")
     target_include_directories(${TEST_TARGET} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/systemd/")
     target_include_directories(${TEST_TARGET} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${TEST_TARGET} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test")
diff --git a/extensions/test-processors/CMakeLists.txt 
b/extensions/test-processors/CMakeLists.txt
index 13beb0d78..4953f31ea 100644
--- a/extensions/test-processors/CMakeLists.txt
+++ b/extensions/test-processors/CMakeLists.txt
@@ -25,7 +25,7 @@ include(../ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-test-processors SHARED ${SOURCES})
+add_minifi_library(minifi-test-processors SHARED ${SOURCES})
 
 target_link_libraries(minifi-test-processors ${LIBMINIFI})
 
diff --git a/extensions/usb-camera/CMakeLists.txt 
b/extensions/usb-camera/CMakeLists.txt
index e4f0834d5..13d027518 100644
--- a/extensions/usb-camera/CMakeLists.txt
+++ b/extensions/usb-camera/CMakeLists.txt
@@ -56,7 +56,7 @@ find_package(UVC REQUIRED)
 
 file(GLOB SOURCES  "*.cpp")
 
-add_library(minifi-usb-camera-extensions SHARED ${SOURCES})
+add_minifi_library(minifi-usb-camera-extensions SHARED ${SOURCES})
 
 target_link_libraries(minifi-usb-camera-extensions ${LIBMINIFI} 
Threads::Threads)
 target_link_libraries(minifi-usb-camera-extensions LibUVC::UVC PNG::PNG)
diff --git a/extensions/windows-event-log/CMakeLists.txt 
b/extensions/windows-event-log/CMakeLists.txt
index e93cf42a5..6adb1220a 100644
--- a/extensions/windows-event-log/CMakeLists.txt
+++ b/extensions/windows-event-log/CMakeLists.txt
@@ -28,7 +28,7 @@ include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)
 
 file(GLOB SOURCES  "*.cpp" "wel/*.cpp")
 
-add_library(minifi-wel SHARED ${SOURCES})
+add_minifi_library(minifi-wel SHARED ${SOURCES})
 
 target_link_libraries(minifi-wel ${LIBMINIFI} Threads::Threads)
 target_link_libraries(minifi-wel PUGI::libpugixml ZLIB::ZLIB Wevtapi.lib)
diff --git a/extensions/windows-event-log/tests/CMakeLists.txt 
b/extensions/windows-event-log/tests/CMakeLists.txt
index eeacb89e1..68487dcf3 100644
--- a/extensions/windows-event-log/tests/CMakeLists.txt
+++ b/extensions/windows-event-log/tests/CMakeLists.txt
@@ -29,7 +29,7 @@ endif()
 SET(WEL_TEST_COUNT 0)
 FOREACH(testfile ${WEL_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/windows-event-log/")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
diff --git a/libminifi/CMakeLists.txt b/libminifi/CMakeLists.txt
index 18af7c7d4..a7a3e966f 100644
--- a/libminifi/CMakeLists.txt
+++ b/libminifi/CMakeLists.txt
@@ -30,15 +30,8 @@ endif()
 include(CppVersion)
 set_cpp_version()
 
-if (WIN32)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
-else()
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-reorder")
-endif()
-
 include_directories(include)
 
-
 if(WIN32)
     include_directories(opsys/win)
     set(SOCKET_SOURCES "src/io/win/*.cpp")
@@ -69,7 +62,7 @@ endif()
 file(GLOB PROCESSOR_SOURCES  "src/processors/*.cpp" )
 
 
-add_library(core-minifi SHARED ${SOURCES})
+add_minifi_library(core-minifi SHARED ${SOURCES})
 target_compile_definitions(core-minifi PRIVATE "LIBMINIFI=1")
 if(WIN32)
     set_target_properties(core-minifi PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS 
TRUE)
diff --git a/libminifi/include/FlowController.h 
b/libminifi/include/FlowController.h
index 84724920f..6f14f0446 100644
--- a/libminifi/include/FlowController.h
+++ b/libminifi/include/FlowController.h
@@ -188,6 +188,8 @@ class FlowController : public 
core::controller::ForwardingControllerServiceProvi
   std::unique_ptr<EventDrivenSchedulingAgent> event_scheduler_;
   std::unique_ptr<CronDrivenSchedulingAgent> cron_scheduler_;
   std::chrono::steady_clock::time_point start_time_;
+  // Thread pool for schedulers
+  utils::ThreadPool thread_pool_;
   std::shared_ptr<Configure> configuration_;
   std::shared_ptr<core::Repository> provenance_repo_;
   std::shared_ptr<core::Repository> flow_file_repo_;
@@ -198,9 +200,6 @@ class FlowController : public 
core::controller::ForwardingControllerServiceProvi
   std::unique_ptr<c2::C2Agent> c2_agent_{};
   std::unique_ptr<c2::ControllerSocketProtocol> controller_socket_protocol_;
   std::shared_ptr<core::logging::Logger> logger_ = 
core::logging::LoggerFactory<FlowController>::getLogger();
-
-  // Thread pool for schedulers
-  utils::ThreadPool thread_pool_;
 };
 
 }  // namespace org::apache::nifi::minifi
diff --git a/libminifi/include/c2/C2Agent.h b/libminifi/include/c2/C2Agent.h
index 8f7c5e982..4c6254967 100644
--- a/libminifi/include/c2/C2Agent.h
+++ b/libminifi/include/c2/C2Agent.h
@@ -193,9 +193,6 @@ class C2Agent : public state::UpdateController {
   // maximum number of queued messages to send to the c2 server
   size_t max_c2_responses;
 
-  // time point the last time we performed a heartbeat.
-  std::chrono::steady_clock::time_point last_run_;
-
   // function that performs the heartbeat
   std::function<utils::TaskRescheduleInfo()> c2_producer_;
 
@@ -215,6 +212,8 @@ class C2Agent : public state::UpdateController {
   // shared pointer to the configuration of this agent
   std::shared_ptr<Configure> configuration_;
 
+  std::weak_ptr<state::response::NodeReporter> node_reporter_;
+
   std::shared_ptr<utils::file::FileSystem> filesystem_;
 
   std::mutex heartbeat_mutex;
@@ -235,9 +234,11 @@ class C2Agent : public state::UpdateController {
 
   const uint64_t C2RESPONSE_POLL_MS = 100;
 
-  std::weak_ptr<state::response::NodeReporter> node_reporter_;
   std::atomic<bool> restart_needed_ = false;
   std::function<void()> request_restart_;
+
+  // time point the last time we performed a heartbeat.
+  std::chrono::steady_clock::time_point last_run_;
 };
 
 }  // namespace org::apache::nifi::minifi::c2
diff --git a/libminifi/include/controllers/SSLContextService.h 
b/libminifi/include/controllers/SSLContextService.h
index 2dea8167f..50eb6e20e 100644
--- a/libminifi/include/controllers/SSLContextService.h
+++ b/libminifi/include/controllers/SSLContextService.h
@@ -57,7 +57,7 @@ class SSLContext {
       : context_(context) {
   }
 #else
-  SSLContext(void *context) {} // NOLINT
+  SSLContext(void*) {} // NOLINT
 #endif
   ~SSLContext() {
 #ifdef OPENSSL_SUPPORT
diff --git a/libminifi/include/utils/SystemCpuUsageTracker.h 
b/libminifi/include/utils/SystemCpuUsageTracker.h
index 547233e7b..95e21d986 100644
--- a/libminifi/include/utils/SystemCpuUsageTracker.h
+++ b/libminifi/include/utils/SystemCpuUsageTracker.h
@@ -61,13 +61,15 @@ class SystemCpuUsageTracker : public 
SystemCpuUsageTrackerBase {
 
  private:
   uint64_t total_user_;
-  uint64_t total_user_low_;
-  uint64_t total_sys_;
-  uint64_t total_idle_;
-
   uint64_t previous_total_user_;
+
+  uint64_t total_user_low_;
   uint64_t previous_total_user_low_;
+
+  uint64_t total_sys_;
   uint64_t previous_total_sys_;
+
+  uint64_t total_idle_;
   uint64_t previous_total_idle_;
 };
 #endif  // linux
@@ -111,9 +113,9 @@ class SystemCpuUsageTracker : public 
SystemCpuUsageTrackerBase {
 
  private:
   uint64_t total_ticks_;
-  uint64_t idle_ticks_;
-
   uint64_t previous_total_ticks_;
+
+  uint64_t idle_ticks_;
   uint64_t previous_idle_ticks_;
 };
 #endif  // macOS
diff --git a/libminifi/src/provenance/Provenance.cpp 
b/libminifi/src/provenance/Provenance.cpp
index c6cbd7efd..d81d91cac 100644
--- a/libminifi/src/provenance/Provenance.cpp
+++ b/libminifi/src/provenance/Provenance.cpp
@@ -43,9 +43,9 @@ const char 
*ProvenanceEventRecord::ProvenanceEventTypeStr[REPLAY + 1] = { "CREAT
 
ProvenanceEventRecord::ProvenanceEventRecord(ProvenanceEventRecord::ProvenanceEventType
 event, std::string componentId, std::string componentType)
     : core::SerializableComponent(core::className<ProvenanceEventRecord>()),
       _eventType(event),
+      _eventTime(std::chrono::system_clock::now()),
       _componentId(std::move(componentId)),
-      _componentType(std::move(componentType)),
-      _eventTime(std::chrono::system_clock::now()) {
+      _componentType(std::move(componentType)) {
 }
 
 bool ProvenanceEventRecord::loadFromRepository(const 
std::shared_ptr<core::Repository> &repo) {
diff --git a/libminifi/src/utils/SystemCpuUsageTracker.cpp 
b/libminifi/src/utils/SystemCpuUsageTracker.cpp
index 7512e339c..049dd0702 100644
--- a/libminifi/src/utils/SystemCpuUsageTracker.cpp
+++ b/libminifi/src/utils/SystemCpuUsageTracker.cpp
@@ -84,8 +84,9 @@ double 
SystemCpuUsageTracker::getCpuUsageBetweenLastTwoQueries() const {
 
 #ifdef WIN32
 SystemCpuUsageTracker::SystemCpuUsageTracker() :
-    total_idle_(0), total_sys_(0), total_user_(0),
-    previous_total_idle_(0), previous_total_sys_(0), previous_total_user_(0) {
+    total_user_(0), previous_total_user_(0),
+    total_sys_(0), previous_total_sys_(0),
+    total_idle_(0), previous_total_idle_(0) {
   queryCpuTimes();
 }
 
diff --git a/libminifi/test/flow-tests/CMakeLists.txt 
b/libminifi/test/flow-tests/CMakeLists.txt
index 5d1960686..e9c7e6bd6 100644
--- a/libminifi/test/flow-tests/CMakeLists.txt
+++ b/libminifi/test/flow-tests/CMakeLists.txt
@@ -23,7 +23,7 @@ SET(FLOW_TEST_COUNT 0)
 
 FOREACH(testfile ${FLOW_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}" )
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors/")
     createTests("${testfilename}")
diff --git a/libminifi/test/keyvalue-tests/CMakeLists.txt 
b/libminifi/test/keyvalue-tests/CMakeLists.txt
index ee70932e3..1b2af80de 100644
--- a/libminifi/test/keyvalue-tests/CMakeLists.txt
+++ b/libminifi/test/keyvalue-tests/CMakeLists.txt
@@ -23,7 +23,7 @@ SET(KEYVALUE_INT_TEST_COUNT 0)
 
 FOREACH(testfile ${KEYVALUE_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}" )
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/libminifi/test/")
     createTests("${testfilename}")
     target_link_libraries(${testfilename} minifi-standard-processors Catch2)
diff --git a/libminifi/test/persistence-tests/CMakeLists.txt 
b/libminifi/test/persistence-tests/CMakeLists.txt
index edd8c56c0..c2913bd6d 100644
--- a/libminifi/test/persistence-tests/CMakeLists.txt
+++ b/libminifi/test/persistence-tests/CMakeLists.txt
@@ -23,7 +23,7 @@ file(GLOB PERSISTENCE_TESTS  "*.cpp")
 SET(PERSISTENCE_TEST_COUNT 0)
 FOREACH(testfile ${PERSISTENCE_TESTS})
     get_filename_component(testfilename "${testfile}" NAME_WE)
-    add_executable("${testfilename}" "${testfile}")
+    add_minifi_executable("${testfilename}" "${testfile}")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/libarchive")
     target_include_directories(${testfilename} PRIVATE BEFORE 
"${CMAKE_SOURCE_DIR}/extensions/standard-processors")
     target_include_directories(${testfilename} BEFORE PRIVATE 
"${CMAKE_SOURCE_DIR}/extensions/rocksdb-repos/")
diff --git a/libminifi/test/schema-tests/CMakeLists.txt 
b/libminifi/test/schema-tests/CMakeLists.txt
index 61b658c25..a5befa082 100644
--- a/libminifi/test/schema-tests/CMakeLists.txt
+++ b/libminifi/test/schema-tests/CMakeLists.txt
@@ -23,7 +23,7 @@ file(GLOB SCHEMA_TESTS  "*.cpp")
 SET(SCHEMA_TEST_COUNT 0)
 FOREACH(testfile ${SCHEMA_TESTS})
   get_filename_component(testfilename "${testfile}" NAME_WE)
-  add_executable("${testfilename}" "${testfile}")
+  add_minifi_executable("${testfilename}" "${testfile}")
   createTests("${testfilename}")
   target_link_libraries(${testfilename} Catch2WithMain)
   target_link_libraries(${testfilename} minifi-standard-processors)
diff --git a/minifi_main/CMakeLists.txt b/minifi_main/CMakeLists.txt
index b80cdbf33..9039d146c 100644
--- a/minifi_main/CMakeLists.txt
+++ b/minifi_main/CMakeLists.txt
@@ -43,7 +43,7 @@ if(WIN32)
     configure_file(${CMAKE_SOURCE_DIR}/versioninfo.rc.in 
${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc @ONLY)
     list(APPEND MINIFIEXE_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc")
 endif()
-add_executable(minifiexe ${MINIFIEXE_SOURCES})
+add_minifi_executable(minifiexe ${MINIFIEXE_SOURCES})
 
 if (NOT USE_SHARED_LIBS)
     if (LIBC_STATIC)
diff --git a/minifi_main/tests/CMakeLists.txt b/minifi_main/tests/CMakeLists.txt
index 766ab1dc0..2549c349b 100644
--- a/minifi_main/tests/CMakeLists.txt
+++ b/minifi_main/tests/CMakeLists.txt
@@ -21,7 +21,7 @@ file(GLOB MINIFI_MAIN_UNIT_TESTS  "*.cpp")
 SET(MINIFI_MAIN_UNIT_TEST_COUNT 0)
 FOREACH(TEST_FILE ${MINIFI_MAIN_UNIT_TESTS})
     get_filename_component(TEST_TARGET "${TEST_FILE}" NAME_WE)
-    add_executable("${TEST_TARGET}" "${TEST_FILE}" ../TableFormatter.cpp)
+    add_minifi_executable("${TEST_TARGET}" "${TEST_FILE}" 
"../TableFormatter.cpp")
     target_include_directories(${TEST_TARGET} PRIVATE BEFORE
             "${CMAKE_SOURCE_DIR}/libminifi/test"
             "${CMAKE_SOURCE_DIR}/minifi_main")
diff --git a/nanofi/CMakeLists.txt b/nanofi/CMakeLists.txt
index d832150d8..ec50ed3d5 100644
--- a/nanofi/CMakeLists.txt
+++ b/nanofi/CMakeLists.txt
@@ -40,7 +40,7 @@ file(GLOB NANOFI_ECU_SOURCES "ecu/*.c")
 include(CppVersion)
 set_cpp_version()
 
-add_library(nanofi STATIC ${NANOFI_SOURCES})
+add_minifi_library(nanofi STATIC ${NANOFI_SOURCES})
 
 target_link_libraries(nanofi spdlog ut core-minifi minifi-standard-processors)
 
diff --git a/nanofi/ecu/CMakeLists.txt b/nanofi/ecu/CMakeLists.txt
index 8f077e0d9..c627091d0 100644
--- a/nanofi/ecu/CMakeLists.txt
+++ b/nanofi/ecu/CMakeLists.txt
@@ -20,15 +20,15 @@
 cmake_minimum_required(VERSION 3.24)
 
 if (NOT WIN32)
-    add_executable(log_aggregator log_aggregator.c)
+    add_minifi_executable(log_aggregator log_aggregator.c)
     target_link_libraries(log_aggregator nanofi Threads::Threads)
     target_link_libraries(log_aggregator minifi-http-curl)
 
-    add_executable(tailfile_chunk tailfile_chunk.c)
+    add_minifi_executable(tailfile_chunk tailfile_chunk.c)
     target_link_libraries(tailfile_chunk nanofi Threads::Threads)
     target_link_libraries(tailfile_chunk minifi-http-curl)
 
-    add_executable(tailfile_delimited tailfile_delimited.c)
+    add_minifi_executable(tailfile_delimited tailfile_delimited.c)
     target_link_libraries(tailfile_delimited nanofi Threads::Threads)
     target_link_libraries(tailfile_delimited minifi-http-curl)
 endif()
diff --git a/nanofi/examples/CMakeLists.txt b/nanofi/examples/CMakeLists.txt
index fbd9aefec..28c759563 100644
--- a/nanofi/examples/CMakeLists.txt
+++ b/nanofi/examples/CMakeLists.txt
@@ -23,9 +23,9 @@ include(CppVersion)
 set_cpp_version()
 
 if (NOT WIN32)
-    add_executable(generate_flow generate_flow.c)
+    add_minifi_executable(generate_flow generate_flow.c)
 
-    add_executable(terminate_handler terminate_handler.c)
+    add_minifi_executable(terminate_handler terminate_handler.c)
 
     target_link_libraries(generate_flow minifi-http-curl)
     target_link_libraries(generate_flow nanofi Threads::Threads)
@@ -36,17 +36,17 @@ if (NOT WIN32)
 
     #arget_link_libraries(hash_file nanofi Threads::Threads )
 
-    add_executable(transmit_flow transmit_flow.c)
+    add_minifi_executable(transmit_flow transmit_flow.c)
 
     target_link_libraries(transmit_flow minifi-http-curl)
     target_link_libraries(transmit_flow nanofi Threads::Threads)
 
-    add_executable(transmit_payload transmit_payload.c)
+    add_minifi_executable(transmit_payload transmit_payload.c)
 
     target_link_libraries(transmit_payload minifi-http-curl)
     target_link_libraries(transmit_payload nanofi Threads::Threads)
 
-    add_executable(monitor_directory monitor_directory.c)
+    add_minifi_executable(monitor_directory monitor_directory.c)
 
     target_link_libraries(monitor_directory minifi-http-curl)
     target_link_libraries(monitor_directory nanofi Threads::Threads)


Reply via email to