Use correct path for libiodbc and forward via ODBC_ROOT env var

The hard-coded path paths added to LIBRARY_PATH and CPLUS_INCLUDE_PATH
was not correct on Apple Silicon Macs, where homebrew installs into
/opt/homebrew/.

There's also no point in passing on the library location via compiler
environment variables, when we can use ODBC_ROOT. And we don't need
to pass it on as a CMake define, as a environment variable works just
fine. This decouples the provisioning of libiodbc from the build
configurations.

Change-Id: I40aa3c1852fb0baf3366fa1a9dab85a66eef95e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 124957a8cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 1bb142175a)
This commit is contained in:
Tor Arne Vestbø
2025-01-27 13:29:15 +01:00
committed by Qt Cherry-pick Bot
parent 3cf6241e47
commit e8a94de2ea
3 changed files with 4 additions and 7 deletions

View File

@@ -53,7 +53,7 @@ Configurations:
Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'MinimalStaticTests']
Configure arguments: '-static -nomake examples -release -no-framework -no-icu -qt-doubleconversion -no-feature-sql-psql'
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/.. -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/.. -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DCMAKE_BUILD_TYPE=Release -DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_native_grpc=OFF',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf'
]

View File

@@ -15,7 +15,7 @@ Configurations:
Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework'
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/.. -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/.. -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_open62541_security=OFF',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf'
]

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Copyright (C) 2018 The Qt Company Ltd.
# Copyright (C) 2025 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# Install libiodbc
@@ -11,12 +11,9 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
brew install --formula "${BASH_SOURCE%/*}/libiodbc.rb" "$@"
# CPLUS_INCLUDE_PATH is set so clang and configure can find libiodbc
read -r -a arr <<< "$(brew list --versions libiodbc)"
version=${arr[1]}
SetEnvVar "CPLUS_INCLUDE_PATH" "/usr/local/Cellar/libiodbc/$version/include${CPLUS_INCLUDE_PATH:+:}${CPLUS_INCLUDE_PATH}"
SetEnvVar "LIBRARY_PATH" "/usr/local/Cellar/libiodbc/$version/lib${LIBRARY_PATH:+:}${LIBRARY_PATH}"
SetEnvVar "ODBC_ROOT" "$(brew --prefix libiodbc)"
echo "libiodbc = $version" >> ~/versions.txt