Skip to content

MINIFICPP-2866 Add Conan support for SOCI and iODBC libraries - #2218

Open
lordgamez wants to merge 1 commit into
apache:MINIFICPP-2861from
lordgamez:MINIFICPP-2866
Open

MINIFICPP-2866 Add Conan support for SOCI and iODBC libraries#2218
lordgamez wants to merge 1 commit into
apache:MINIFICPP-2861from
lordgamez:MINIFICPP-2866

Conversation

@lordgamez

Copy link
Copy Markdown
Contributor
  • Extract SOCI and iODBC config to separate cmake files
  • Upgrade SOCI library to v4.1.4

Depends on #2216


Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.

In order to streamline the review of the contribution we ask you to ensure the following steps have been taken:

For all changes:

  • Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

  • Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

  • Has your PR been rebased against the latest commit within the target branch (typically main)?

  • Is your initial contribution a single, squashed commit?

For code changes:

  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE file?
  • If applicable, have you updated the NOTICE file?

For documentation related changes:

  • Have you ensured that format looks appropriate for the output in which it is rendered?

Note:

Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.

@lordgamez
lordgamez marked this pull request as ready for review July 24, 2026 14:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.

Adds Conan-based packaging/build support for SOCI (upgraded to 4.1.4) and iODBC, and refactors the SQL extension to consume these dependencies via new CMake “source” selectors.

Changes:

  • Introduce Conan recipes + conandata/config for SOCI 4.1.4 and iODBC 3.52.16 (including portability patches).
  • Refactor extensions/sql to use GetSOCI / GetIODBC instead of inline ExternalProject_Add.
  • Add new build options for selecting BUILD vs CONAN sources, and add enable_sql to the root Conan options/bootstrapping.

Reviewed changes

Copilot reviewed 17 out of 18 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
thirdparty/soci/sqlite3-path.patch Removes legacy SOCI SQLite finder patch.
thirdparty/soci/config.yml Adds SOCI thirdparty version mapping (4.1.4).
thirdparty/soci/all/patches/odbc-get-parameter-name-bounds-safe.patch Adds SOCI ODBC safety patch to avoid out_of_range.
thirdparty/soci/all/patches/disable-sqlwchar-support.patch Adds SOCI ODBC patch disabling SQLWCHAR wstring handling for iODBC.
thirdparty/soci/all/conanfile.py Adds Conan recipe for SOCI with optional backends.
thirdparty/soci/all/conandata.yml Adds SOCI source URL + patch list for 4.1.4.
thirdparty/iodbc/config.yml Adds iODBC thirdparty version mapping (3.52.16).
thirdparty/iodbc/all/conanfile.py Adds Conan recipe for building iODBC from source (autotools).
thirdparty/iodbc/all/conandata.yml Adds iODBC source URL + GCC15 patch.
extensions/sql/CMakeLists.txt Switches SQL extension dependency wiring to GetIODBC/GetSOCI and links SOCI::SOCI.
conanfile.py Adds enable_sql option and SOCI requirement/configuration.
cmake/Soci.cmake Adds FetchContent-based SOCI-from-source build with patch application.
cmake/MiNiFiOptions.cmake Adds MINIFI_IODBC_SOURCE and MINIFI_SOCI_SOURCE multi-options.
cmake/GetSOCI.cmake Adds SOCI retrieval selector (CONAN vs BUILD), recreates aggregate target for Conan.
cmake/GetIODBC.cmake Adds iODBC retrieval selector (CONAN vs BUILD).
cmake/BundledIodbc.cmake Extracts existing iODBC ExternalProject build into a dedicated module.
bootstrap/cli.py Adds ENABLE_SQL to bootstrap Conan option propagation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread cmake/Soci.cmake
Comment thread cmake/Soci.cmake
Comment thread thirdparty/soci/all/patches/disable-sqlwchar-support.patch
Comment thread cmake/GetSOCI.cmake
Comment thread cmake/GetIODBC.cmake
Comment thread thirdparty/iodbc/all/conanfile.py
- Extract SOCI and iODBC config to separate cmake files
- Upgrade SOCI library to v4.1.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants