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

isapego pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 5680ca28b69 IGNITE-27303 ODBC: Use distribution packages to run tests 
(#7516)
5680ca28b69 is described below

commit 5680ca28b69cdf1c85c58cff3450707c7c2c1950
Author: Dmitriy Zabotlin <[email protected]>
AuthorDate: Fri Feb 13 16:22:58 2026 +0200

    IGNITE-27303 ODBC: Use distribution packages to run tests (#7516)
    
    Co-authored-by: dzabotlin <[email protected]>
---
 .teamcity/build/distributions/CppClientPackages.kt |  49 +++++++++
 .teamcity/build/distributions/OdbcDeb.kt           |   2 +-
 .teamcity/build/distributions/OdbcRpm.kt           |   2 +-
 .teamcity/build/distributions/OdbcZip.kt           |   4 +-
 .teamcity/build/distributions/Project.kt           |   1 +
 .../files/docker/rockylinux8-odbc-cpp.dockerfile   |   8 ++
 .../files/docker/ubuntu22_04-odbc-cpp.dockerfile   |   5 +
 .teamcity/test/build_types/RunPlatformTests.kt     |   3 +
 .../platform_tests/PlatformCppOdbcTestsDebLinux.kt | 114 ++++++++++++++++++++
 .../platform_tests/PlatformCppOdbcTestsRpmLinux.kt | 114 ++++++++++++++++++++
 .../platform_tests/PlatformCppOdbcTestsTgzLinux.kt | 115 +++++++++++++++++++++
 .../test/platform_tests/PlatformCppTestsLinux.kt   |  28 +----
 .teamcity/test/platform_tests/Project.kt           |   3 +
 modules/platforms/build.gradle                     |  19 ++++
 modules/platforms/cpp/CMakeLists.txt               |  39 +++++--
 modules/platforms/cpp/cmake/packaging.cmake        |  20 ++--
 modules/platforms/cpp/ignite/client/CMakeLists.txt |  12 +--
 modules/platforms/cpp/ignite/odbc/CMakeLists.txt   |  12 +--
 modules/platforms/cpp/pkgconfig/CMakeLists.txt     |   4 +-
 .../platforms/cpp/pkgconfig/ignite-client.pc.in    |   4 +-
 modules/platforms/cpp/pkgconfig/ignite-odbc.pc.in  |   4 +-
 21 files changed, 498 insertions(+), 64 deletions(-)

diff --git a/.teamcity/build/distributions/CppClientPackages.kt 
b/.teamcity/build/distributions/CppClientPackages.kt
new file mode 100644
index 00000000000..b82cb5c81d8
--- /dev/null
+++ b/.teamcity/build/distributions/CppClientPackages.kt
@@ -0,0 +1,49 @@
+package build.distributions
+
+import jetbrains.buildServer.configs.kotlin.BuildType
+import jetbrains.buildServer.configs.kotlin.buildSteps.GradleBuildStep
+import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customGradle
+import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customScript
+
+object CppClientPackages : BuildType({
+    name = "[11] ODBC and C++ Client packages"
+    description = "Apache Ignite 3 ODBC and C++ Client Packages"
+
+    artifactRules = """
+        %VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*odbc*.deb => 
odbc-deb
+        
%VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*odbc*.deb.sha256 => 
odbc-deb
+        %VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*client*.deb 
=> client-deb
+        
%VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*client*.deb.sha256 => 
client-deb
+        
+        %VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*odbc*.rpm => 
odbc-rpm
+        
%VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*odbc*.rpm.sha256 => 
odbc-rpm
+        %VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*client*.rpm 
=> client-rpm
+        
%VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*client*.rpm.sha256 => 
client-rpm
+        
+        %VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*odbc*.tar.gz 
=> odbc-tgz
+        
%VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*odbc*.tar.gz.sha256 
=> odbc-tgz
+        
%VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*client*.tar.gz => 
client-tgz
+        
%VCSROOT__IGNITE3%/modules/platforms/build/cpp/_packages/*client*.tar.gz.sha256 
=> client-tgz
+    """.trimIndent()
+
+    params {
+        param("CONTAINER_JAVA_HOME", "/usr/lib/jvm/java-17-openjdk/")
+    }
+
+    steps {
+        customScript(type = "bash") {
+            name = "Setup Docker Proxy"
+        }
+
+        customGradle {
+            name = "Build ODBC and Client packages. RPM, DEB, TGZ. (Under 
Rocky Linux 8 container)"
+            tasks = ":platforms:cmakeCpack"
+            workingDir = "%VCSROOT__IGNITE3%"
+            gradleParams = "-i -Pplatforms.enable"
+            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.1"
+            dockerPull = true
+            dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux
+            dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME%"
+        }
+    }
+})
diff --git a/.teamcity/build/distributions/OdbcDeb.kt 
b/.teamcity/build/distributions/OdbcDeb.kt
index 8817f62784f..344b29b187a 100644
--- a/.teamcity/build/distributions/OdbcDeb.kt
+++ b/.teamcity/build/distributions/OdbcDeb.kt
@@ -39,7 +39,7 @@ object OdbcDeb : BuildType({
             tasks = ":packaging-odbc:buildDeb"
             workingDir = "%VCSROOT__IGNITE3%"
             gradleParams = "-i -Pplatforms.enable"
-            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.0"
+            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.1"
             dockerPull = true
             dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux
             dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME%"
diff --git a/.teamcity/build/distributions/OdbcRpm.kt 
b/.teamcity/build/distributions/OdbcRpm.kt
index 30b08b58278..808cd03cc7e 100644
--- a/.teamcity/build/distributions/OdbcRpm.kt
+++ b/.teamcity/build/distributions/OdbcRpm.kt
@@ -38,7 +38,7 @@ object OdbcRpm : BuildType({
             tasks = ":packaging-odbc:buildRpm"
             workingDir = "%VCSROOT__IGNITE3%"
             gradleParams = "-i -Pplatforms.enable"
-            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.0"
+            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.1"
             dockerPull = true
             dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux
             dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME%"
diff --git a/.teamcity/build/distributions/OdbcZip.kt 
b/.teamcity/build/distributions/OdbcZip.kt
index 79aed2bd25f..33fcf12eb5d 100644
--- a/.teamcity/build/distributions/OdbcZip.kt
+++ b/.teamcity/build/distributions/OdbcZip.kt
@@ -40,7 +40,7 @@ object OdbcZip : BuildType({
             tasks = ":packaging-odbc:distZip"
             workingDir = "%VCSROOT__IGNITE3%"
             gradleParams = "-i -Pplatforms.enable"
-            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.0"
+            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.1"
             dockerPull = true
             dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux
             dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME%"
@@ -50,7 +50,7 @@ object OdbcZip : BuildType({
             tasks = ":packaging-odbc:distTar"
             workingDir = "%VCSROOT__IGNITE3%"
             gradleParams = "-i -Pplatforms.enable"
-            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.0"
+            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.1"
             dockerPull = true
             dockerImagePlatform = GradleBuildStep.ImagePlatform.Linux
             dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME%"
diff --git a/.teamcity/build/distributions/Project.kt 
b/.teamcity/build/distributions/Project.kt
index def1622c7f9..16db9f1a745 100644
--- a/.teamcity/build/distributions/Project.kt
+++ b/.teamcity/build/distributions/Project.kt
@@ -15,6 +15,7 @@ object Project : Project({
     listOf(
         CliDeb,
         CliRpm,
+        CppClientPackages,
         Deb,
         Docs,
         Docker,
diff --git a/.teamcity/files/docker/rockylinux8-odbc-cpp.dockerfile 
b/.teamcity/files/docker/rockylinux8-odbc-cpp.dockerfile
new file mode 100644
index 00000000000..662294dd590
--- /dev/null
+++ b/.teamcity/files/docker/rockylinux8-odbc-cpp.dockerfile
@@ -0,0 +1,8 @@
+FROM rockylinux:8
+# Install dependencies
+RUN dnf update -y
+RUN dnf -y install epel-release
+RUN dnf update -y
+RUN dnf install -y --setopt=max_parallel_downloads=10 
--setopt=fastestmirror=True git gcc gcc-c++ clang make cmake unixODBC-devel 
openssl-devel java-11-openjdk-devel java-17-openjdk-devel rpm-build dpkg
+RUN dnf clean all
+RUN rm -rf /var/cache/dnf
diff --git a/.teamcity/files/docker/ubuntu22_04-odbc-cpp.dockerfile 
b/.teamcity/files/docker/ubuntu22_04-odbc-cpp.dockerfile
new file mode 100644
index 00000000000..baa17ecec79
--- /dev/null
+++ b/.teamcity/files/docker/ubuntu22_04-odbc-cpp.dockerfile
@@ -0,0 +1,5 @@
+FROM ubuntu:22.04
+# Install dependencies
+RUN apt update 
+RUN apt install -y git gcc g++ clang make cmake unixodbc unixodbc-dev odbcinst 
libssl-dev openjdk-11-jdk openjdk-17-jdk rpm
+RUN apt clean
diff --git a/.teamcity/test/build_types/RunPlatformTests.kt 
b/.teamcity/test/build_types/RunPlatformTests.kt
index 273c30a9fe3..40d246e198d 100644
--- a/.teamcity/test/build_types/RunPlatformTests.kt
+++ b/.teamcity/test/build_types/RunPlatformTests.kt
@@ -12,6 +12,9 @@ object RunPlatformTests : BuildType({
 
     dependencies {
         snapshot(PlatformCppTestsLinux) {}
+        snapshot(PlatformCppOdbcTestsDebLinux) {}
+        snapshot(PlatformCppOdbcTestsRpmLinux) {}
+        snapshot(PlatformCppOdbcTestsTgzLinux) {}
 //        snapshot(PlatformCppTestsWindows) {}  // Always falling, under 
investigation
         snapshot(PlatformDotnetTestsWindows) {}
         snapshot(PlatformDotnetTestsLinux) {}
diff --git a/.teamcity/test/platform_tests/PlatformCppOdbcTestsDebLinux.kt 
b/.teamcity/test/platform_tests/PlatformCppOdbcTestsDebLinux.kt
new file mode 100644
index 00000000000..facddedda44
--- /dev/null
+++ b/.teamcity/test/platform_tests/PlatformCppOdbcTestsDebLinux.kt
@@ -0,0 +1,114 @@
+package test.platform_tests
+
+import build.distributions.CppClientPackages
+import jetbrains.buildServer.configs.kotlin.BuildType
+import jetbrains.buildServer.configs.kotlin.ParameterDisplay
+import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport
+import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport
+import jetbrains.buildServer.configs.kotlin.buildSteps.script
+import 
jetbrains.buildServer.configs.kotlin.failureConditions.BuildFailureOnText
+import jetbrains.buildServer.configs.kotlin.failureConditions.failOnText
+import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customScript
+import org.apache.ignite.teamcity.Teamcity
+
+object PlatformCppOdbcTestsDebLinux : BuildType({
+    id(Teamcity.getId(this::class))
+    name = "Platform C++ ODBC Tests. DEB package (Ubuntu 22.04 Linux 
container)"
+
+    artifactRules = """
+        %PATH__CMAKE_BUILD_DIRECTORY%/core => core_dumps
+    """.trimIndent()
+
+    params {
+        param("env.IGNITE_CPP_TESTS_USE_SINGLE_NODE", "")
+        param("PATH__CMAKE_BUILD_DIRECTORY", 
"%PATH__WORKING_DIR%/cmake-build-debug")
+        param("PATH__ODBC_TEST_RESULTS", 
"%PATH__WORKING_DIR%/odbc_tests_results.xml")
+        text("PATH__WORKING_DIR", 
"%teamcity.build.checkoutDir%/%VCSROOT__IGNITE3%/modules/platforms/cpp", 
display = ParameterDisplay.HIDDEN, allowEmpty = true)
+        text("PATH__IGNITE_DIR", 
"%teamcity.build.checkoutDir%/%VCSROOT__IGNITE3%", display = 
ParameterDisplay.HIDDEN, allowEmpty = true)
+        param("env.CPP_STAGING", "/tmp/cpp_staging")
+        param("CONTAINER_JAVA_HOME", "/usr/lib/jvm/java-17-openjdk-amd64/")
+    }
+
+    dependencies {
+        dependency(CppClientPackages) {
+            snapshot {}
+            artifacts {
+                cleanDestination = true
+                artifactRules = """
+                    odbc-deb => ignite3-odbc-deb
+                """.trimIndent()
+            }
+        }
+    }
+
+    steps {
+        customScript(type = "bash") {
+            name = "Setup Docker Proxy"
+        }
+
+        script {
+            name = "Install ODBC and build C++ tests in Ubuntu 22.04 container"
+            dockerImage = "docker.gridgain.com/ci/tc-ubuntu22_04-odbc:v1.0"
+            dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME% --ulimit 
nofile=32768:32768"
+            scriptContent = """
+                clang --version
+                clang++ --version
+                ulimit -a
+
+                dpkg -i ignite3-odbc-deb/*.deb
+                
+                cd %PATH__IGNITE_DIR%
+                ./gradlew :ignite-runner:integrationTestClasses
+                mkdir %PATH__CMAKE_BUILD_DIRECTORY%  || exit 2
+                cd %PATH__CMAKE_BUILD_DIRECTORY%  || exit 3
+
+                cmake .. -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang 
-DENABLE_TESTS=ON -DENABLE_ODBC=ON -DCMAKE_BUILD_TYPE=Debug 
-DCMAKE_INSTALL_PREFIX=%env.CPP_STAGING% || (echo 'CMake configuration failed' 
&& exit 5)
+                cmake --build . -j8  || (echo 'CMake build failed' && exit 6)
+                                             
+                ./bin/ignite-odbc-test 
--gtest_output=xml:%PATH__ODBC_TEST_RESULTS%
+            """.trimIndent()
+        }
+
+        customScript(type = "bash") {
+            name = "Clean Up Remaining Processes"
+        }
+    }
+
+    failureConditions {
+        executionTimeoutMin = 15
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake configuration failed"
+            failureMessage = "CMake configuration failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake build failed"
+            failureMessage = "CMake build failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake install failed"
+            failureMessage = "CMake install failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "FAILED TEST SUITE"
+            failureMessage = "One or several test suites have failed during 
SetUpTestSuite"
+            reverse = false
+        }
+    }
+
+    features {
+        xmlReport {
+            reportType = XmlReport.XmlReportType.GOOGLE_TEST
+            rules = """
+                +:%PATH__ODBC_TEST_RESULTS%
+            """.trimIndent()
+            verbose = true
+        }
+    }
+})
diff --git a/.teamcity/test/platform_tests/PlatformCppOdbcTestsRpmLinux.kt 
b/.teamcity/test/platform_tests/PlatformCppOdbcTestsRpmLinux.kt
new file mode 100644
index 00000000000..073eca60965
--- /dev/null
+++ b/.teamcity/test/platform_tests/PlatformCppOdbcTestsRpmLinux.kt
@@ -0,0 +1,114 @@
+package test.platform_tests
+
+import build.distributions.CppClientPackages
+import jetbrains.buildServer.configs.kotlin.BuildType
+import jetbrains.buildServer.configs.kotlin.ParameterDisplay
+import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport
+import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport
+import jetbrains.buildServer.configs.kotlin.buildSteps.*
+import 
jetbrains.buildServer.configs.kotlin.failureConditions.BuildFailureOnText
+import jetbrains.buildServer.configs.kotlin.failureConditions.failOnText
+import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customScript
+import org.apache.ignite.teamcity.Teamcity
+
+object PlatformCppOdbcTestsRpmLinux : BuildType({
+    id(Teamcity.getId(this::class))
+    name = "Platform C++ ODBC Tests. RPM package (Rockylinux 8 Linux 
container)"
+
+    artifactRules = """
+        %PATH__CMAKE_BUILD_DIRECTORY%/core => core_dumps
+    """.trimIndent()
+
+    params {
+        param("env.IGNITE_CPP_TESTS_USE_SINGLE_NODE", "")
+        param("PATH__CMAKE_BUILD_DIRECTORY", 
"%PATH__WORKING_DIR%/cmake-build-debug")
+        param("PATH__ODBC_TEST_RESULTS", 
"%PATH__WORKING_DIR%/odbc_tests_results.xml")
+        text("PATH__WORKING_DIR", 
"%teamcity.build.checkoutDir%/%VCSROOT__IGNITE3%/modules/platforms/cpp", 
display = ParameterDisplay.HIDDEN, allowEmpty = true)
+        text("PATH__IGNITE_DIR", 
"%teamcity.build.checkoutDir%/%VCSROOT__IGNITE3%", display = 
ParameterDisplay.HIDDEN, allowEmpty = true)
+        param("env.CPP_STAGING", "/tmp/cpp_staging")
+        param("CONTAINER_JAVA_HOME", "/usr/lib/jvm/java-17-openjdk/")
+    }
+
+    dependencies {
+        dependency(CppClientPackages) {
+            snapshot {}
+            artifacts {
+                cleanDestination = true
+                artifactRules = """
+                    odbc-rpm => ignite3-odbc-rpm
+                """.trimIndent()
+            }
+        }
+    }
+
+    steps {
+        customScript(type = "bash") {
+            name = "Setup Docker Proxy"
+        }
+
+        script {
+            name = "Install ODBC and build C++ tests in Rockylinux 8 container"
+            dockerImage = "docker.gridgain.com/ci/tc-rockylinux8-odbc:v1.1"
+            dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME% --ulimit 
nofile=32768:32768"
+            scriptContent = """
+                clang --version
+                clang++ --version
+                ulimit -a
+
+                rpm -i ignite3-odbc-rpm/*.rpm
+                
+                cd %PATH__IGNITE_DIR%
+                ./gradlew :ignite-runner:integrationTestClasses
+                mkdir %PATH__CMAKE_BUILD_DIRECTORY%  || exit 2
+                cd %PATH__CMAKE_BUILD_DIRECTORY%  || exit 3
+
+                cmake .. -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang 
-DENABLE_TESTS=ON -DENABLE_ODBC=ON -DCMAKE_BUILD_TYPE=Debug 
-DCMAKE_INSTALL_PREFIX=%env.CPP_STAGING% || (echo 'CMake configuration failed' 
&& exit 5)
+                cmake --build . -j8  || (echo 'CMake build failed' && exit 6)
+                                             
+                ./bin/ignite-odbc-test 
--gtest_output=xml:%PATH__ODBC_TEST_RESULTS%
+            """.trimIndent()
+        }
+
+        customScript(type = "bash") {
+            name = "Clean Up Remaining Processes"
+        }
+    }
+
+    failureConditions {
+        executionTimeoutMin = 15
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake configuration failed"
+            failureMessage = "CMake configuration failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake build failed"
+            failureMessage = "CMake build failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake install failed"
+            failureMessage = "CMake install failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "FAILED TEST SUITE"
+            failureMessage = "One or several test suites have failed during 
SetUpTestSuite"
+            reverse = false
+        }
+    }
+
+    features {
+        xmlReport {
+            reportType = XmlReport.XmlReportType.GOOGLE_TEST
+            rules = """
+                +:%PATH__ODBC_TEST_RESULTS%
+            """.trimIndent()
+            verbose = true
+        }
+    }
+})
diff --git a/.teamcity/test/platform_tests/PlatformCppOdbcTestsTgzLinux.kt 
b/.teamcity/test/platform_tests/PlatformCppOdbcTestsTgzLinux.kt
new file mode 100644
index 00000000000..9e7511897a3
--- /dev/null
+++ b/.teamcity/test/platform_tests/PlatformCppOdbcTestsTgzLinux.kt
@@ -0,0 +1,115 @@
+package test.platform_tests
+
+import build.distributions.CppClientPackages
+import jetbrains.buildServer.configs.kotlin.BuildType
+import jetbrains.buildServer.configs.kotlin.ParameterDisplay
+import jetbrains.buildServer.configs.kotlin.buildFeatures.XmlReport
+import jetbrains.buildServer.configs.kotlin.buildFeatures.xmlReport
+import jetbrains.buildServer.configs.kotlin.buildSteps.script
+import 
jetbrains.buildServer.configs.kotlin.failureConditions.BuildFailureOnText
+import jetbrains.buildServer.configs.kotlin.failureConditions.failOnText
+import org.apache.ignite.teamcity.CustomBuildSteps.Companion.customScript
+import org.apache.ignite.teamcity.Teamcity
+
+object PlatformCppOdbcTestsTgzLinux : BuildType({
+    id(Teamcity.getId(this::class))
+    name = "Platform C++ ODBC Tests. TGZ package (Ubuntu 22.04 Linux 
container)"
+
+    artifactRules = """
+        %PATH__CMAKE_BUILD_DIRECTORY%/core => core_dumps
+    """.trimIndent()
+
+    params {
+        param("env.IGNITE_CPP_TESTS_USE_SINGLE_NODE", "")
+        param("PATH__CMAKE_BUILD_DIRECTORY", 
"%PATH__WORKING_DIR%/cmake-build-debug")
+        param("PATH__ODBC_TEST_RESULTS", 
"%PATH__WORKING_DIR%/odbc_tests_results.xml")
+        text("PATH__WORKING_DIR", 
"%teamcity.build.checkoutDir%/%VCSROOT__IGNITE3%/modules/platforms/cpp", 
display = ParameterDisplay.HIDDEN, allowEmpty = true)
+        text("PATH__IGNITE_DIR", 
"%teamcity.build.checkoutDir%/%VCSROOT__IGNITE3%", display = 
ParameterDisplay.HIDDEN, allowEmpty = true)
+        param("env.CPP_STAGING", "/tmp/cpp_staging")
+        param("CONTAINER_JAVA_HOME", "/usr/lib/jvm/java-17-openjdk-amd64/")
+    }
+
+    dependencies {
+        dependency(CppClientPackages) {
+            snapshot {}
+            artifacts {
+                cleanDestination = true
+                artifactRules = """
+                    odbc-tgz => ignite3-odbc-tgz
+                """.trimIndent()
+            }
+        }
+    }
+
+    steps {
+        customScript(type = "bash") {
+            name = "Setup Docker Proxy"
+        }
+
+        script {
+            name = "Install ODBC and build C++ tests in Ubuntu 22.04 container"
+            dockerImage = "docker.gridgain.com/ci/tc-ubuntu22_04-odbc:v1.0"
+            dockerRunParameters = "-e JAVA_HOME=%CONTAINER_JAVA_HOME% --ulimit 
nofile=32768:32768"
+            scriptContent = """
+                clang --version
+                clang++ --version
+                ulimit -a
+
+                tar xzvf ignite3-odbc-tgz/*.tar.gz -C /
+                odbcinst -i -d -f /usr/share/ignite/ignite3-odbc.ini -v
+                
+                cd %PATH__IGNITE_DIR%
+                ./gradlew :ignite-runner:integrationTestClasses
+                mkdir %PATH__CMAKE_BUILD_DIRECTORY%  || exit 2
+                cd %PATH__CMAKE_BUILD_DIRECTORY%  || exit 3
+
+                cmake .. -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang 
-DENABLE_TESTS=ON -DENABLE_ODBC=ON -DCMAKE_BUILD_TYPE=Debug 
-DCMAKE_INSTALL_PREFIX=%env.CPP_STAGING% || (echo 'CMake configuration failed' 
&& exit 5)
+                cmake --build . -j8  || (echo 'CMake build failed' && exit 6)
+                                             
+                ./bin/ignite-odbc-test 
--gtest_output=xml:%PATH__ODBC_TEST_RESULTS%
+            """.trimIndent()
+        }
+
+        customScript(type = "bash") {
+            name = "Clean Up Remaining Processes"
+        }
+    }
+
+    failureConditions {
+        executionTimeoutMin = 15
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake configuration failed"
+            failureMessage = "CMake configuration failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake build failed"
+            failureMessage = "CMake build failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "CMake install failed"
+            failureMessage = "CMake install failed"
+            reverse = false
+        }
+        failOnText {
+            conditionType = BuildFailureOnText.ConditionType.CONTAINS
+            pattern = "FAILED TEST SUITE"
+            failureMessage = "One or several test suites have failed during 
SetUpTestSuite"
+            reverse = false
+        }
+    }
+
+    features {
+        xmlReport {
+            reportType = XmlReport.XmlReportType.GOOGLE_TEST
+            rules = """
+                +:%PATH__ODBC_TEST_RESULTS%
+            """.trimIndent()
+            verbose = true
+        }
+    }
+})
diff --git a/.teamcity/test/platform_tests/PlatformCppTestsLinux.kt 
b/.teamcity/test/platform_tests/PlatformCppTestsLinux.kt
index 242a282dfd2..d9bd4eace5e 100644
--- a/.teamcity/test/platform_tests/PlatformCppTestsLinux.kt
+++ b/.teamcity/test/platform_tests/PlatformCppTestsLinux.kt
@@ -26,7 +26,6 @@ object PlatformCppTestsLinux : BuildType({
         param("env.IGNITE_CPP_TESTS_USE_SINGLE_NODE", "")
         param("PATH__CMAKE_BUILD_DIRECTORY", 
"%PATH__WORKING_DIR%/cmake-build-debug")
         param("PATH__CLIENT_TEST_RESULTS", 
"%PATH__WORKING_DIR%/cpp_client_tests_results.xml")
-        param("PATH__ODBC_TEST_RESULTS", 
"%PATH__WORKING_DIR%/odbc_tests_results.xml")
         param("PATH__UNIT_TESTS_RESULT", 
"%PATH__WORKING_DIR%/cpp_unit_test_results.xml")
         text("PATH__WORKING_DIR", 
"%teamcity.build.checkoutDir%/%VCSROOT__IGNITE3%/modules/platforms/cpp", 
display = ParameterDisplay.HIDDEN, allowEmpty = true)
         param("env.CPP_STAGING", "/tmp/cpp_staging")
@@ -39,9 +38,6 @@ object PlatformCppTestsLinux : BuildType({
             scriptContent = """
                 gcc --version || exit 0
                 g++ --version || exit 0
-
-                odbcinst -j || exit 0
-                cat /etc/odbcinst.ini || exit 0
             """.trimIndent()
         }
         script {
@@ -50,7 +46,7 @@ object PlatformCppTestsLinux : BuildType({
                 mkdir %PATH__CMAKE_BUILD_DIRECTORY%  || exit 2
                 cd %PATH__CMAKE_BUILD_DIRECTORY%  || exit 3
 
-                cmake .. -DENABLE_TESTS=ON -DENABLE_ODBC=ON 
-DWARNINGS_AS_ERRORS=ON -DCMAKE_BUILD_TYPE=Debug 
-DCMAKE_INSTALL_PREFIX=%env.CPP_STAGING% || (echo 'CMake configuration failed' 
&& exit 5)
+                cmake .. -DENABLE_TESTS=ON -DENABLE_ODBC=OFF 
-DWARNINGS_AS_ERRORS=ON -DCMAKE_BUILD_TYPE=Debug 
-DCMAKE_INSTALL_PREFIX=%env.CPP_STAGING% || (echo 'CMake configuration failed' 
&& exit 5)
                 cmake --build . -j8  || (echo 'CMake build failed' && exit 6)
                 cmake --install . || (echo 'CMake install failed' && exit 7)
             """.trimIndent()
@@ -83,19 +79,6 @@ object PlatformCppTestsLinux : BuildType({
         customScript(type = "bash") {
             name = "Clean Up Remaining Processes"
         }
-        script {
-            name = "ODBC integration tests"
-            workingDir = "%PATH__CMAKE_BUILD_DIRECTORY%"
-            scriptContent = """
-                if [ -f "./bin/ignite-odbc-test" ]; then
-                  ./bin/ignite-odbc-test 
--gtest_output=xml:%PATH__ODBC_TEST_RESULTS%
-                fi
-            """.trimIndent()
-            formatStderrAsError = true
-        }
-        customScript(type = "bash") {
-            name = "Clean Up Remaining Processes"
-        }
     }
 
     failureConditions {
@@ -131,7 +114,6 @@ object PlatformCppTestsLinux : BuildType({
             reportType = XmlReport.XmlReportType.GOOGLE_TEST
             rules = """
                 +:%PATH__CLIENT_TEST_RESULTS%
-                +:%PATH__ODBC_TEST_RESULTS%
                 +:%PATH__CMAKE_BUILD_DIRECTORY%/Testing/Result/*.xml
             """.trimIndent()
             verbose = true
@@ -142,12 +124,4 @@ object PlatformCppTestsLinux : BuildType({
             verbose = true
         }
     }
-
-    /**
-     *  Temporary lock Platform Linux jobs on old-type agents
-     *  until execution of these tests is fixed on DIND agents
-     */
-    requirements {
-        doesNotExist("env.DIND_ENABLED")
-    }
 })
diff --git a/.teamcity/test/platform_tests/Project.kt 
b/.teamcity/test/platform_tests/Project.kt
index d2640e038d1..34583900de8 100644
--- a/.teamcity/test/platform_tests/Project.kt
+++ b/.teamcity/test/platform_tests/Project.kt
@@ -15,6 +15,9 @@ object Project : Project({
 
     listOf(
         PlatformCppTestsLinux,
+        PlatformCppOdbcTestsDebLinux,
+        PlatformCppOdbcTestsRpmLinux,
+        PlatformCppOdbcTestsTgzLinux,
         PlatformDotnetTestsLinux,
         PlatformPythonTestsLinux
     ).forEach {
diff --git a/modules/platforms/build.gradle b/modules/platforms/build.gradle
index d3f6f8724a2..008b6f96359 100644
--- a/modules/platforms/build.gradle
+++ b/modules/platforms/build.gradle
@@ -117,6 +117,25 @@ def cmakeBuildOdbc = tasks.register('cmakeBuildOdbc', 
CMakeBuildTask) {
     configureFromProject() // uses everything in the cmake { ... } section.
 }
 
+def cmakeConfigurePackage = tasks.register('cmakeConfigurePackage', 
CMakeConfigureTask) {
+    dependsOn copyPlatformsHeaders
+    configureFromProject() // uses everything in the cmake { ... } section.
+    getDef().ENABLE_CLIENT = 'ON'
+    getDef().ENABLE_ODBC = 'ON'
+}
+
+def cmakeBuildPackage = tasks.register('cmakeBuildPackage', CMakeBuildTask) {
+    dependsOn cmakeConfigurePackage
+    configureFromProject() // uses everything in the cmake { ... } section.
+}
+
+def cmakeCpack = tasks.register('cmakeCpack', Exec) {
+    dependsOn cmakeBuildPackage
+    workingDir "$buildDir/cpp"
+
+    commandLine "cpack", "-G", "DEB;RPM;TGZ", "-C", "Release"
+}
+
 def buildNuGet = tasks.register('buildNuGet', Exec) {
     dependsOn copyPlatformsHeaders
     workingDir "$projectDir/dotnet"
diff --git a/modules/platforms/cpp/CMakeLists.txt 
b/modules/platforms/cpp/CMakeLists.txt
index 54832b707f1..8c3a46f5027 100644
--- a/modules/platforms/cpp/CMakeLists.txt
+++ b/modules/platforms/cpp/CMakeLists.txt
@@ -19,10 +19,29 @@ cmake_minimum_required(VERSION 3.18)
 
 include(CMakePackageConfigHelpers)
 
-file(READ _version.txt IGNITE_VERSION)
-if(NOT DEFINED IGNITE_VERSION)
-  set(IGNITE_VERSION 3.0.0)
-  message(WARNING "Failed to read version from _version.txt file. Using 
default version \"${IGNITE_VERSION}\".")
+file(READ _version.txt IGNITE_VERSION_BASE)
+if(NOT DEFINED IGNITE_VERSION_BASE)
+    set(IGNITE_VERSION_BASE 3.0.0.0)
+    message(WARNING "Failed to read version from _version.txt file. Using 
default version \"${IGNITE_VERSION_BASE}\".")
+endif()
+
+string(STRIP "${IGNITE_VERSION_BASE}" IGNITE_VERSION_BASE)
+string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.?([0-9]+)?" 
VERSION_MATCH "${IGNITE_VERSION_BASE}")
+
+if(VERSION_MATCH)
+    set(VERSION_MAJOR "${CMAKE_MATCH_1}")
+    set(VERSION_MINOR "${CMAKE_MATCH_2}")
+    set(VERSION_PATCH "${CMAKE_MATCH_3}")
+    set(VERSION_PRERELEASE "${CMAKE_MATCH_4}")
+    set(IGNITE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
+    set(IGNITE_VERSION_FULL 
"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_PRERELEASE}")
+    if(VERSION_PRERELEASE)
+        message(STATUS "Parsed version: ${IGNITE_VERSION_FULL}")
+    else()
+        message(STATUS "Parsed version: ${IGNITE_VERSION}")
+    endif ()
+else()
+    message(FATAL_ERROR "Failed to parse version from 
'${IGNITE_VERSION_BASE}'. Expected format: MAJOR.MINOR.PATCH.PRERELEASE")
 endif()
 
 project(ignite3 VERSION ${IGNITE_VERSION} LANGUAGES CXX)
@@ -30,7 +49,7 @@ project(ignite3 VERSION ${IGNITE_VERSION} LANGUAGES CXX)
 set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
-set(CMAKE_PROJECT_VERSION ${PROJECT_VERSION})
+set(CMAKE_PROJECT_VERSION ${IGNITE_VERSION_BASE})
 
 option(USE_LOCAL_DEPS "Use local dependencies." OFF)
 option(ENABLE_CLIENT "Build Ignite.C++ Client module" ON)
@@ -123,9 +142,15 @@ if (WIN32)
     add_definitions(-DNOMINMAX)
 else()
     include(GNUInstallDirs)
+    # Replace with the variables from GNUInstallDirs
+    set(IGNITE_INSTALL_ARCHIVE_DIR lib)
+    set(IGNITE_INSTALL_LIBRARY_DIR lib)
+    set(IGNITE_INSTALL_RUNTIME_DIR bin)
+    set(IGNITE_INSTALL_INCLUDE_DIR include)
+    set(IGNITE_INSTALL_DATAROOT_DIR share)
 endif()
 
-set(IGNITE_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/ignite)
+set(IGNITE_INCLUDEDIR ${IGNITE_INSTALL_INCLUDE_DIR}/ignite)
 
 include(cmake/packaging.cmake)
 include(CPack)
@@ -256,7 +281,7 @@ install(FILES
     "${CMAKE_CURRENT_BINARY_DIR}/cmake/ignite-config.cmake"
     "${CMAKE_CURRENT_BINARY_DIR}/cmake/ignite-config-version.cmake"
     COMPONENT client
-    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ignite"
+    DESTINATION "${IGNITE_INSTALL_LIBRARY_DIR}/cmake/ignite"
 )
 
 # Do not export the package by default
diff --git a/modules/platforms/cpp/cmake/packaging.cmake 
b/modules/platforms/cpp/cmake/packaging.cmake
index d8733ba230b..5858cd03860 100644
--- a/modules/platforms/cpp/cmake/packaging.cmake
+++ b/modules/platforms/cpp/cmake/packaging.cmake
@@ -26,8 +26,8 @@ if(ENABLE_UB_SANITIZER)
 endif()
 
 set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
-set(PACKAGE_SO_PATH 
"${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
-set(IGNITE_ODBC_INI_PATH 
"${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/ignite")
+set(PACKAGE_SO_PATH 
"${CPACK_PACKAGING_INSTALL_PREFIX}/${IGNITE_INSTALL_LIBRARY_DIR}")
+set(IGNITE_ODBC_INI_PATH 
"${CPACK_PACKAGING_INSTALL_PREFIX}/${IGNITE_INSTALL_DATAROOT_DIR}/ignite")
 
 set(CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION ON)
 
@@ -40,9 +40,13 @@ set(CPACK_VERBATIM_VARIABLES YES)
 set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
 set(CPACK_OUTPUT_FILE_PREFIX "_packages")
 
-set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
-set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
-set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
+set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
+set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
+if(VERSION_PRERELEASE)
+    set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}.${VERSION_PRERELEASE})
+else()
+    set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
+endif()
 
 set(CPACK_PACKAGE_CONTACT "[email protected]")
 set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Apache Software Foundation")
@@ -86,8 +90,8 @@ file(COPY
 set(CPACK_DEBIAN_ODBC_PACKAGE_CONTROL_EXTRA 
"${SCRIPTS_BINARY_DIR}/postinst;${SCRIPTS_BINARY_DIR}/prerm")
 set(CPACK_DEBIAN_ODBC_PACKAGE_CONTROL_STRICT_PERMISSION TRUE)
 
-set(CPACK_DEBIAN_CLIENT_PACKAGE_DEPENDS libc6 libstdc++6)
-set(CPACK_DEBIAN_ODBC_PACKAGE_DEPENDS unixodbc odbcinst libc6 libstdc++6)
+set(CPACK_DEBIAN_CLIENT_PACKAGE_DEPENDS "libc6, libstdc++6")
+set(CPACK_DEBIAN_ODBC_PACKAGE_DEPENDS "unixodbc, odbcinst, libc6, libstdc++6")
 
 set(CPACK_RPM_ODBC_POST_INSTALL_SCRIPT_FILE  
"${SCRIPTS_BINARY_DIR}/post_install.sh")
 set(CPACK_RPM_ODBC_PRE_UNINSTALL_SCRIPT_FILE 
"${SCRIPTS_BINARY_DIR}/pre_uninstall.sh")
@@ -100,7 +104,7 @@ 
configure_file("${ODBC_SCRIPT_DIR}/ignite3-odbc-linux.ini.in" "${CMAKE_CURRENT_B
 install(FILES
     "${CMAKE_CURRENT_BINARY_DIR}/ignite3-odbc-linux.ini"
     COMPONENT odbc
-    DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/ignite/"
+    DESTINATION "${IGNITE_INSTALL_DATAROOT_DIR}/ignite/"
     RENAME "ignite3-odbc.ini"
 )
 
diff --git a/modules/platforms/cpp/ignite/client/CMakeLists.txt 
b/modules/platforms/cpp/ignite/client/CMakeLists.txt
index 93599a93aae..328f03c5419 100644
--- a/modules/platforms/cpp/ignite/client/CMakeLists.txt
+++ b/modules/platforms/cpp/ignite/client/CMakeLists.txt
@@ -113,7 +113,7 @@ foreach(_target_lib IN LISTS _target_libs)
     target_link_libraries(${_target_lib} PRIVATE ${LIBRARIES})
     target_include_directories(${_target_lib}
         PUBLIC $<BUILD_INTERFACE:${IGNITE_CMAKE_TOP_DIR}/>
-               $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/>
+               $<INSTALL_INTERFACE:${IGNITE_INSTALL_INCLUDE_DIR}/>
     )
 endforeach()
 unset(_target_libs)
@@ -124,10 +124,10 @@ add_library(ignite::client-static ALIAS ${TARGET}-static)
 install(TARGETS ${TARGET}
     EXPORT ignite-client-targets
     COMPONENT client
-    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-    INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+    ARCHIVE DESTINATION ${IGNITE_INSTALL_ARCHIVE_DIR}
+    LIBRARY DESTINATION ${IGNITE_INSTALL_LIBRARY_DIR}
+    RUNTIME DESTINATION ${IGNITE_INSTALL_RUNTIME_DIR}
+    INCLUDES DESTINATION ${IGNITE_INSTALL_INCLUDE_DIR}
 )
 
 export(
@@ -139,7 +139,7 @@ export(
 install(
     EXPORT ignite-client-targets
     NAMESPACE ignite::
-    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ignite"
+    DESTINATION "${IGNITE_INSTALL_LIBRARY_DIR}/cmake/ignite"
     COMPONENT client
     FILE "ignite-client-targets.cmake"
 )
diff --git a/modules/platforms/cpp/ignite/odbc/CMakeLists.txt 
b/modules/platforms/cpp/ignite/odbc/CMakeLists.txt
index c9bd9aaad3f..ac9d8900aaa 100644
--- a/modules/platforms/cpp/ignite/odbc/CMakeLists.txt
+++ b/modules/platforms/cpp/ignite/odbc/CMakeLists.txt
@@ -95,7 +95,7 @@ foreach(_target_lib IN LISTS _target_libs)
     target_include_directories(${_target_lib} SYSTEM INTERFACE 
${ODBC_INCLUDE_DIRS})
     target_include_directories(${_target_lib}
         INTERFACE $<BUILD_INTERFACE:${IGNITE_CMAKE_TOP_DIR}/>
-                  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/>
+                  $<INSTALL_INTERFACE:${IGNITE_INSTALL_INCLUDE_DIR}/>
     )
     target_link_libraries(${_target_lib} PRIVATE ${LIBRARIES})
 endforeach()
@@ -106,10 +106,10 @@ add_library(ignite::odbc ALIAS ${TARGET})
 install(TARGETS ${TARGET}
     EXPORT ignite-odbc-targets
     COMPONENT odbc
-    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-    INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+    ARCHIVE DESTINATION ${IGNITE_INSTALL_ARCHIVE_DIR}
+    LIBRARY DESTINATION ${IGNITE_INSTALL_LIBRARY_DIR}
+    RUNTIME DESTINATION ${IGNITE_INSTALL_RUNTIME_DIR}
+    INCLUDES DESTINATION ${IGNITE_INSTALL_INCLUDE_DIR}
 )
 
 export(
@@ -121,7 +121,7 @@ export(
 install(
     EXPORT ignite-odbc-targets
     NAMESPACE ignite::
-    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ignite"
+    DESTINATION "${IGNITE_INSTALL_LIBRARY_DIR}/cmake/ignite"
     COMPONENT odbc-local
     FILE "ignite-odbc-targets.cmake"
 )
diff --git a/modules/platforms/cpp/pkgconfig/CMakeLists.txt 
b/modules/platforms/cpp/pkgconfig/CMakeLists.txt
index b9975fc0373..5a864172ab1 100644
--- a/modules/platforms/cpp/pkgconfig/CMakeLists.txt
+++ b/modules/platforms/cpp/pkgconfig/CMakeLists.txt
@@ -22,7 +22,7 @@ if (${ENABLE_CLIENT})
             @ONLY
     )
     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ignite-client.pc
-            DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+            DESTINATION ${IGNITE_INSTALL_LIBRARY_DIR}/pkgconfig
     )
 endif()
 
@@ -33,6 +33,6 @@ if (${ENABLE_ODBC})
             @ONLY
     )
     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ignite-odbc.pc
-            DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+            DESTINATION ${IGNITE_INSTALL_LIBRARY_DIR}/pkgconfig
     )
 endif()
diff --git a/modules/platforms/cpp/pkgconfig/ignite-client.pc.in 
b/modules/platforms/cpp/pkgconfig/ignite-client.pc.in
index 957e00fdf54..3f4e0a8307f 100644
--- a/modules/platforms/cpp/pkgconfig/ignite-client.pc.in
+++ b/modules/platforms/cpp/pkgconfig/ignite-client.pc.in
@@ -1,7 +1,7 @@
 prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+libdir=${exec_prefix}/@IGNITE_INSTALL_LIBRARY_DIR@
+includedir=${prefix}/@IGNITE_INSTALL_INCLUDE_DIR@
 
 Name: ignite-client
 Description: Apache Ignite C++ Client Library
diff --git a/modules/platforms/cpp/pkgconfig/ignite-odbc.pc.in 
b/modules/platforms/cpp/pkgconfig/ignite-odbc.pc.in
index a257365de14..a0276e85e84 100644
--- a/modules/platforms/cpp/pkgconfig/ignite-odbc.pc.in
+++ b/modules/platforms/cpp/pkgconfig/ignite-odbc.pc.in
@@ -1,7 +1,7 @@
 prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+libdir=${exec_prefix}/@IGNITE_INSTALL_LIBRARY_DIR@
+includedir=${prefix}/@IGNITE_INSTALL_INCLUDE_DIR@
 
 Name: ignite-odbc
 Description: Apache Ignite ODBC Driver


Reply via email to