Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bootstrap/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ def run_conan_install(minifi_options: MinifiOptions, package_manager: PackageMan
return True
conan_options = add_conan_options_from_cmake_options(["ENABLE_ALL", "ENABLE_LIBARCHIVE", "ENABLE_ROCKSDB", "ENABLE_SFTP", "ENABLE_PROMETHEUS", "ENABLE_BZIP2", "ENABLE_LZMA", "ENABLE_MQTT",
"ENABLE_COUCHBASE", "ENABLE_KAFKA", "ENABLE_OPC", "ENABLE_GCP", "ENABLE_GRPC_FOR_LOKI", "ENABLE_BUSTACHE", "ENABLE_KUBERNETES",
"ENABLE_AZURE", "ENABLE_LLAMACPP", "ENABLE_AWS", "PORTABLE", "SKIP_TESTS"],
"ENABLE_AZURE", "ENABLE_LLAMACPP", "ENABLE_AWS", "ENABLE_SQL", "PORTABLE", "SKIP_TESTS"],
minifi_options)
if minifi_options.custom_malloc is not None and minifi_options.custom_malloc.value not in (None, "OFF"):
conan_options += f' -o "&:custom_malloc={minifi_options.custom_malloc.value}"'
Expand Down
56 changes: 56 additions & 0 deletions cmake/BundledIodbc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

# Define byproducts
set(IODBC_BYPRODUCT "lib/libiodbc.a")

set(IODBC_BYPRODUCT_DIR "${CMAKE_BINARY_DIR}/thirdparty/iodbc-install/")

set(IODBC_PC "${Patch_EXECUTABLE}" -p1 -i "${CMAKE_SOURCE_DIR}/thirdparty/iodbc/all/patches/GCC-15-needs-typedef-SQLRETURN-HPROC.patch")
# Build project
ExternalProject_Add(
iodbc-external
URL "https://github.com/openlink/iODBC/archive/v3.52.16.tar.gz"
URL_HASH "SHA256=a0cf0375b462f98c0081c2ceae5ef78276003e57cdf1eb86bd04508fb62a0660"
BUILD_IN_SOURCE true
SOURCE_DIR "${CMAKE_BINARY_DIR}/thirdparty/iodbc-src"
PATCH_COMMAND "${IODBC_PC}"
BUILD_COMMAND make
CMAKE_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND make install
CONFIGURE_COMMAND bash "-c" "./autogen.sh && ./configure --prefix=${IODBC_BYPRODUCT_DIR} --with-pic CFLAGS='${CMAKE_C_FLAGS} -std=gnu17'"
STEP_TARGETS build
BUILD_BYPRODUCTS "${IODBC_BYPRODUCT_DIR}/${IODBC_BYPRODUCT}"
EXCLUDE_FROM_ALL TRUE
)

# Set variables
set(IODBC_FOUND "YES" CACHE STRING "" FORCE)
set(IODBC_INCLUDE_DIRS "${IODBC_BYPRODUCT_DIR}/include" CACHE STRING "" FORCE)
set(IODBC_LIBRARIES "${IODBC_BYPRODUCT_DIR}/${IODBC_BYPRODUCT}" CACHE STRING "" FORCE)

# Set exported variables for FindPackage.cmake
set(EXPORTED_IODBC_INCLUDE_DIRS "${IODBC_INCLUDE_DIRS}" CACHE STRING "" FORCE)
set(EXPORTED_IODBC_LIBRARIES "${IODBC_LIBRARIES}" CACHE STRING "" FORCE)

# Create imported targets
add_library(ODBC::ODBC STATIC IMPORTED)
set_target_properties(ODBC::ODBC PROPERTIES IMPORTED_LOCATION "${IODBC_LIBRARIES}")
add_dependencies(ODBC::ODBC iodbc-external)
file(MAKE_DIRECTORY ${IODBC_INCLUDE_DIRS})
set_property(TARGET ODBC::ODBC APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${IODBC_INCLUDE_DIRS})
24 changes: 24 additions & 0 deletions cmake/GetIODBC.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

if(MINIFI_IODBC_SOURCE STREQUAL "CONAN")
message("Using Conan to install iODBC")
find_package(ODBC REQUIRED)
elseif(MINIFI_IODBC_SOURCE STREQUAL "BUILD")
message("Using CMake to build iODBC from source")
include(BundledIodbc)
endif()
Comment thread
lordgamez marked this conversation as resolved.
28 changes: 28 additions & 0 deletions cmake/GetSOCI.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

if(MINIFI_SOCI_SOURCE STREQUAL "CONAN")
message("Using Conan to install SOCI")
find_package(SOCI REQUIRED)
if(NOT TARGET SOCI::SOCI)
add_library(SOCI::SOCI INTERFACE IMPORTED)
target_link_libraries(SOCI::SOCI INTERFACE SOCI::soci_core_static SOCI::soci_odbc_static)
endif()
elseif(MINIFI_SOCI_SOURCE STREQUAL "BUILD")
message("Using CMake to build SOCI from source")
include(Soci)
endif()
Comment thread
lordgamez marked this conversation as resolved.
2 changes: 2 additions & 0 deletions cmake/MiNiFiOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,8 @@ add_minifi_multi_option(MINIFI_LLAMACPP_SOURCE "Retrieves llama.cpp from provide
add_minifi_multi_option(MINIFI_DATE_SOURCE "Retrieves date from provided source" "BUILD;CONAN" "${MINIFI_DEFAULT_DEPENDENCY_SOURCE}")
add_minifi_multi_option(MINIFI_WINFLEXBISON_SOURCE "Retrieves winflexbison from provided source" "BUILD;CONAN" "${MINIFI_DEFAULT_DEPENDENCY_SOURCE}")
add_minifi_multi_option(MINIFI_AWS_SDK_CPP_SOURCE "Retrieves AWS SDK for C++ from provided source" "BUILD;CONAN" "${MINIFI_DEFAULT_DEPENDENCY_SOURCE}")
add_minifi_multi_option(MINIFI_IODBC_SOURCE "Retrieves iODBC from provided source" "BUILD;CONAN" "${MINIFI_DEFAULT_DEPENDENCY_SOURCE}")
add_minifi_multi_option(MINIFI_SOCI_SOURCE "Retrieves SOCI from provided source" "BUILD;CONAN" "${MINIFI_DEFAULT_DEPENDENCY_SOURCE}")

# Docker options

Expand Down
47 changes: 47 additions & 0 deletions cmake/Soci.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

include(FetchContent)

include(fmt)

set(PATCH_FILE1 "${CMAKE_SOURCE_DIR}/thirdparty/soci/all/patches/disable-sqlwchar-support.patch")
set(PATCH_FILE2 "${CMAKE_SOURCE_DIR}/thirdparty/soci/all/patches/odbc-get-parameter-name-bounds-safe.patch")
set(PC ${Bash_EXECUTABLE} -c "set -x &&\
(\\\"${Patch_EXECUTABLE}\\\" -p1 -R -s -f --dry-run -i \\\"${PATCH_FILE1}\\\" || \\\"${Patch_EXECUTABLE}\\\" -p1 -N -i \\\"${PATCH_FILE1}\\\") &&\
(\\\"${Patch_EXECUTABLE}\\\" -p1 -R -s -f --dry-run -i \\\"${PATCH_FILE2}\\\" || \\\"${Patch_EXECUTABLE}\\\" -p1 -N -i \\\"${PATCH_FILE2}\\\")")
Comment thread
lordgamez marked this conversation as resolved.

set(SOCI_TESTS OFF CACHE BOOL "" FORCE)
set(SOCI_SHARED OFF CACHE BOOL "" FORCE)
set(SOCI_ODBC ON CACHE BOOL "" FORCE)
set(SOCI_SQLITE3 OFF CACHE BOOL "" FORCE)
set(SOCI_LTO OFF CACHE BOOL "" FORCE)
set(WITH_BOOST OFF CACHE BOOL "" FORCE)

FetchContent_Declare(
soci
URL "https://github.com/SOCI/soci/archive/refs/tags/v4.1.4.tar.gz"
URL_HASH "SHA256=144f017cccc2e2d806badb3313d6ab3c67a1925bccaa747a46fb3907108a615d"
PATCH_COMMAND "${PC}"
SYSTEM
)
Comment thread
lordgamez marked this conversation as resolved.

FetchContent_MakeAvailable(soci)

if(NOT WIN32)
add_dependencies(soci_core ODBC::ODBC)
endif()
17 changes: 11 additions & 6 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ class MiNiFiCppMain(ConanFile):
"enable_rocksdb": [True, False], "enable_sftp": [True, False], "enable_prometheus": [True, False], "enable_bzip2": [True, False], "enable_lzma": [True, False],
"enable_mqtt": [True, False], "enable_couchbase": [True, False], "enable_kafka": [True, False], "enable_opc": [True, False], "enable_gcp": [True, False],
"enable_grpc_for_loki": [True, False], "enable_bustache": [True, False], "enable_kubernetes": [True, False], "enable_azure": [True, False], "enable_llamacpp": [True, False],
"enable_aws": [True, False], "skip_tests": [True, False], "portable": [True, False]}
"enable_aws": [True, False], "enable_sql": [True, False], "skip_tests": [True, False], "portable": [True, False]}

default_options = {"shared": False, "fPIC": True, "custom_malloc": False, "enable_all": False, "enable_libarchive": False, "enable_rocksdb": False, "enable_sftp": False,
"enable_prometheus": False, "enable_bzip2": False, "enable_lzma": False, "enable_mqtt": False, "enable_couchbase": False, "enable_kafka": False, "enable_opc": False,
"enable_gcp": False, "enable_grpc_for_loki": False, "enable_bustache": False, "enable_kubernetes": False, "enable_azure": False, "enable_llamacpp": False, "enable_aws": False,
"skip_tests": False, "portable": True}
"enable_sql": False, "skip_tests": False, "portable": True}

exports_sources = shared_sources

Expand Down Expand Up @@ -104,6 +104,8 @@ def requirements(self):
self.requires("llama-cpp/b8944@minifi/develop")
if self.options.enable_all or self.options.enable_aws:
self.requires("aws-sdk-cpp/1.11.807@minifi/develop")
if self.options.enable_all or self.options.enable_sql:
self.requires("soci/4.1.4@minifi/develop")

if self.options.custom_malloc == "jemalloc":
self.requires("jemalloc/5.3.1")
Expand Down Expand Up @@ -132,17 +134,20 @@ def configure(self):
self.options["librdkafka"].sasl = False
self.options["librdkafka"].zstd = True
self.options["librdkafka"].zlib = True
if (self.options.enable_all or self.options.get_safe("enable_gcp")) and not self.options.skip_tests:
if (self.options.enable_all or self.options.enable_gcp) and not self.options.skip_tests:
self.options["google-cloud-cpp"].with_mocks = True
if self.options.enable_all or self.options.get_safe("enable_aws"):
if self.options.enable_all or self.options.enable_aws:
self.options["aws-sdk-cpp"].s3 = True
self.options["aws-sdk-cpp"].kinesis = True
setattr(self.options["aws-sdk-cpp"], "s3-crt", True)
setattr(self.options["aws-sdk-cpp"], "text-to-speech", False)
if self.options.enable_all or self.options.get_safe("enable_llamacpp"):
if self.options.enable_all or self.options.enable_llamacpp:
self.options["llama-cpp"].portable = self.options.portable
if self.options.enable_all or self.options.get_safe("enable_mqtt"):
if self.options.enable_all or self.options.enable_mqtt:
self.options["paho-mqtt-c"].high_performance = True
if self.options.enable_all or self.options.enable_sql:
self.options["soci"].shared = False
self.options["soci"].with_odbc = True

def generate(self):
tc = CMakeToolchain(self)
Expand Down
152 changes: 8 additions & 144 deletions extensions/sql/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,160 +21,24 @@ if (NOT (ENABLE_ALL OR ENABLE_SQL))
return()
endif()

include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)

include_directories(SYSTEM ../../thirdparty/rapidjson-1.1.0/include/ ../../thirdparty/rapidjson-1.1.0/include/rapidjson)
include_directories(".")

file(GLOB SOURCES "*.cpp" "services/*.cpp" "processors/*.cpp" "data/*.cpp")

add_minifi_library(minifi-sql SHARED ${SOURCES})

if(WIN32)
find_package(ODBC REQUIRED)
else()
# Build iODBC

# Define byproducts
set(IODBC_BYPRODUCT "lib/libiodbc.a")

set(IODBC_BYPRODUCT_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/iodbc-install/")

set(IODBC_PC "${Patch_EXECUTABLE}" -p1 -i "${CMAKE_SOURCE_DIR}/thirdparty/iODBC/GCC-15-needs-typedef-SQLRETURN-HPROC.patch")
# Build project
ExternalProject_Add(
iodbc-external
URL "https://github.com/openlink/iODBC/archive/v3.52.16.tar.gz"
URL_HASH "SHA256=a0cf0375b462f98c0081c2ceae5ef78276003e57cdf1eb86bd04508fb62a0660"
BUILD_IN_SOURCE true
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/iodbc-src"
PATCH_COMMAND "${IODBC_PC}"
BUILD_COMMAND make
CMAKE_COMMAND ""
UPDATE_COMMAND ""
INSTALL_COMMAND make install
CONFIGURE_COMMAND bash "-c" "./autogen.sh && ./configure --prefix=${IODBC_BYPRODUCT_DIR} --with-pic CFLAGS='${CMAKE_C_FLAGS} -std=gnu17'"
STEP_TARGETS build
BUILD_BYPRODUCTS "${IODBC_BYPRODUCT_DIR}/${IODBC_BYPRODUCT}"
EXCLUDE_FROM_ALL TRUE
)

# Set variables
set(IODBC_FOUND "YES" CACHE STRING "" FORCE)
set(IODBC_INCLUDE_DIRS "${IODBC_BYPRODUCT_DIR}/include" CACHE STRING "" FORCE)
set(IODBC_LIBRARIES "${IODBC_BYPRODUCT_DIR}/${IODBC_BYPRODUCT}" CACHE STRING "" FORCE)

# Set exported variables for FindPackage.cmake
set(EXPORTED_IODBC_INCLUDE_DIRS "${IODBC_INCLUDE_DIRS}" CACHE STRING "" FORCE)
set(EXPORTED_IODBC_LIBRARIES "${IODBC_LIBRARIES}" CACHE STRING "" FORCE)

# Create imported targets
add_library(ODBC::ODBC STATIC IMPORTED)
set_target_properties(ODBC::ODBC PROPERTIES IMPORTED_LOCATION "${IODBC_LIBRARIES}")
add_dependencies(ODBC::ODBC iodbc-external)
file(MAKE_DIRECTORY ${IODBC_INCLUDE_DIRS})
set_property(TARGET ODBC::ODBC APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${IODBC_INCLUDE_DIRS})
include(GetIODBC)
endif()

# Build SOCI
include(GetSOCI)

# Define byproducts
# This should be based on GNUInstallDirs, but it's done wrong in Soci:
# https://github.com/SOCI/soci/blob/release/4.0/CMakeLists.txt#L140
if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4)
set(LIBDIR "lib")
else()
set(LIBDIR "lib64")
endif()

if (WIN32)
set(BYPRODUCT_SUFFIX "_4_0.lib")
else()
set(BYPRODUCT_SUFFIX ".a")
endif()

set(SOCI_BYPRODUCTS
"${LIBDIR}/libsoci_core${BYPRODUCT_SUFFIX}"
"${LIBDIR}/libsoci_odbc${BYPRODUCT_SUFFIX}"
)

set(SOCI_BYPRODUCT_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/soci-install")

foreach(SOCI_BYPRODUCT ${SOCI_BYPRODUCTS})
list(APPEND SOCI_LIBRARIES_LIST "${SOCI_BYPRODUCT_DIR}/${SOCI_BYPRODUCT}")
endforeach(SOCI_BYPRODUCT)

if(WIN32)
# Set build options
set(SOCI_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${SOCI_BYPRODUCT_DIR}"
"-DSOCI_TESTS=OFF"
"-DSOCI_SHARED=OFF"
"-DSOCI_CXX_C11=ON"
"-DWITH_ODBC=ON"
"-DWITH_BOOST=OFF")
else()
# SOCI has its own FindODBC.cmake file
# Set build options
set(SOCI_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${SOCI_BYPRODUCT_DIR}"
"-DSOCI_TESTS=OFF"
"-DSOCI_SHARED=OFF"
"-DSOCI_CXX_C11=ON"
"-DSOCI_ODBC=ON"
"-DODBC_INCLUDE_DIR=${IODBC_INCLUDE_DIRS}"
"-DODBC_LIBRARY=${IODBC_LIBRARIES}"
"-DWITH_BOOST=OFF")
endif()

if(NOT WIN32)
list(APPEND SOCI_CMAKE_ARGS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR}/cmake/"
"-DEXPORTED_IODBC_INCLUDE_DIRS=${EXPORTED_IODBC_INCLUDE_DIRS}"
"-DEXPORTED_IODBC_LIBRARIES=${EXPORTED_IODBC_LIBRARIES}")
endif()

set(PC "${Patch_EXECUTABLE}" -p1 -i "${CMAKE_SOURCE_DIR}/thirdparty/soci/sqlite3-path.patch")

# Build project
ExternalProject_Add(
soci-external
URL "https://github.com/SOCI/soci/archive/4.0.1.tar.gz"
URL_HASH "SHA256=fa69347b1a1ef74450c0382b665a67bd6777cc7005bbe09726479625bcf1e29c"
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/soci-src"
CMAKE_ARGS ${SOCI_CMAKE_ARGS}
PATCH_COMMAND ${PC}
BUILD_BYPRODUCTS ${SOCI_LIBRARIES_LIST}
EXCLUDE_FROM_ALL TRUE
)

# Set dependencies
if(NOT WIN32)
add_dependencies(soci-external ODBC::ODBC)
endif()

# Set variables
set(SOCI_FOUND "YES" CACHE STRING "" FORCE)
set(SOCI_INCLUDE_DIR "${SOCI_BYPRODUCT_DIR}/include" CACHE STRING "" FORCE)
set(SOCI_LIBRARIES "${SOCI_LIBRARIES_LIST}" CACHE STRING "" FORCE)
include(${CMAKE_SOURCE_DIR}/extensions/ExtensionHeader.txt)

# Create imported targets
file(MAKE_DIRECTORY ${SOCI_INCLUDE_DIR})
include_directories(SYSTEM ../../thirdparty/rapidjson-1.1.0/include/ ../../thirdparty/rapidjson-1.1.0/include/rapidjson)
include_directories(".")

add_library(SOCI::libsoci_core STATIC IMPORTED)
set_target_properties(SOCI::libsoci_core PROPERTIES IMPORTED_LOCATION "${SOCI_BYPRODUCT_DIR}/${LIBDIR}/libsoci_core${BYPRODUCT_SUFFIX}")
set_target_properties(SOCI::libsoci_core PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SOCI_INCLUDE_DIR}")
add_dependencies(SOCI::libsoci_core soci-external)
target_compile_features(SOCI::libsoci_core INTERFACE cxx_std_14)
file(GLOB SOURCES "*.cpp" "services/*.cpp" "processors/*.cpp" "data/*.cpp")

add_library(SOCI::libsoci_odbc STATIC IMPORTED)
set_target_properties(SOCI::libsoci_odbc PROPERTIES IMPORTED_LOCATION "${SOCI_BYPRODUCT_DIR}/${LIBDIR}/libsoci_odbc${BYPRODUCT_SUFFIX}")
set_target_properties(SOCI::libsoci_odbc PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SOCI_INCLUDE_DIR}")
add_dependencies(SOCI::libsoci_odbc soci-external)
set_property(TARGET SOCI::libsoci_odbc APPEND PROPERTY INTERFACE_LINK_LIBRARIES SOCI::libsoci_core)
set_property(TARGET SOCI::libsoci_odbc APPEND PROPERTY INTERFACE_LINK_LIBRARIES ODBC::ODBC)
target_compile_features(SOCI::libsoci_odbc INTERFACE cxx_std_14)
add_minifi_library(minifi-sql SHARED ${SOURCES})

target_link_libraries(minifi-sql SOCI::libsoci_odbc SOCI::libsoci_core)
target_link_libraries(minifi-sql SOCI::SOCI)

target_link_libraries(minifi-sql ${LIBMINIFI} Threads::Threads)

Expand Down
Loading
Loading