: 1
name: libodb
version: 2.6.0-b.1.20260519102335.2cf66816645b
project: odb
summary: Common ODB runtime library
license: GPL-2.0-only
license: other: proprietary ; Not free/open source.
topics: C++, ORM, SQL, object persistence, relational database
description-file: README.md
package-description-file: PACKAGE-README.md
changes-file: NEWS
url: https://www.codesynthesis.com/products/odb/
doc-url: https://www.codesynthesis.com/products/odb/doc/manual.xhtml
src-url: https://git.codesynthesis.com/cgit/odb/odb/
email: odb-users@codesynthesis.com
build-warning-email: odb-builds@codesynthesis.com
requires: c++11
depends: * build2 >= 0.18.0-
depends: * bpkg >= 0.18.0-
tests: odb-tests    == $ ? ($config.odb_tests.libodb_test)
examples: odb-examples == $ ? ($config.odb_examples.libodb_example)
default-builds: all
default-build-config:
\
{
  config.odb_tests.libodb_test=true
  config.odb_tests.database=sqlite
}+ odb-tests

{
  config.odb_examples.libodb_example=true
  config.odb_examples.database=sqlite
}+ odb-examples
\
multi-builds: all
multi-builds: -wasm              ; Not supported by libodb-{mysql,pgsql}.
multi-builds: -( +windows -gcc ) ; Requires MinGW GCC.
multi-builds: &gcc               ; Requires GCC with plugin support enabled.
multi-builds: &gcc-5+            ; Requires GCC 5 or later.
multi-builds: -static            ; Implementation uses plugins and requires\
 -fPIC.
multi-build-auxiliary-mysql: *-mysql_*
multi-build-auxiliary-pgsql: *-postgresql_*
multi-build-config:
\
{
  config.odb_tests.libodb_test=true
  config.odb_tests.database='mysql sqlite pgsql'

  config.odb_tests.mysql.user=$getenv(MYSQL_DATABASE_USER)
  config.odb_tests.mysql.database=$getenv(MYSQL_DATABASE_NAME)
  config.odb_tests.mysql.host=$getenv(MYSQL_DATABASE_HOST)
  config.odb_tests.mysql.port=$getenv(MYSQL_DATABASE_PORT)

  config.odb_tests.pgsql.user=$getenv(PGSQL_DATABASE_USER)
  config.odb_tests.pgsql.database=$getenv(PGSQL_DATABASE_NAME)
  config.odb_tests.pgsql.host=$getenv(PGSQL_DATABASE_HOST)
  config.odb_tests.pgsql.port=$getenv(PGSQL_DATABASE_PORT)
}+ odb-tests
\
custom-builds: default ; Requires default config with GCC as host compiler.
custom-builds: -static ; Implementation uses plugins and requires -fPIC.
custom-build-config:
\
{
  config.odb_tests.libodb_test=true
  config.odb_tests.database=sqlite
}+ odb-tests

{
  config.odb_examples.libodb_example=true
  config.odb_examples.database=sqlite
}+ odb-examples
\
custom-multi-builds: default ; Requires default config with GCC as host\
 compiler.
custom-multi-builds: -wasm ; Not supported by libodb-{mysql,pgsql}.
custom-multi-builds: -static ; Implementation uses plugins and requires -fPIC.
custom-multi-build-auxiliary-mysql: *-mysql_*
custom-multi-build-auxiliary-pgsql: *-postgresql_*
custom-multi-build-config:
\
{
  config.odb_tests.libodb_test=true
  config.odb_tests.database='mysql sqlite pgsql'

  config.odb_tests.mysql.user=$getenv(MYSQL_DATABASE_USER)
  config.odb_tests.mysql.database=$getenv(MYSQL_DATABASE_NAME)
  config.odb_tests.mysql.host=$getenv(MYSQL_DATABASE_HOST)
  config.odb_tests.mysql.port=$getenv(MYSQL_DATABASE_PORT)

  config.odb_tests.pgsql.user=$getenv(PGSQL_DATABASE_USER)
  config.odb_tests.pgsql.database=$getenv(PGSQL_DATABASE_NAME)
  config.odb_tests.pgsql.host=$getenv(PGSQL_DATABASE_HOST)
  config.odb_tests.pgsql.port=$getenv(PGSQL_DATABASE_PORT)
}+ odb-tests
\
custom-multi-oracle-builds: default ; Requires proprietary software.
custom-multi-oracle-builds: -wasm ; Not supported by libodb-{mysql,pgsql,orac\
le}.
custom-multi-oracle-builds: &( +linux &gcc ) ; Only test on Linux with main\
 compiler.
custom-multi-oracle-builds: -static ; Implementation uses plugins and\
 requires -fPIC.
custom-multi-oracle-build-auxiliary-mysql:
\
*-mysql_*
\
custom-multi-oracle-build-auxiliary-pgsql:
\
*-postgresql_*
\
custom-multi-oracle-build-auxiliary-oracle:
\
*-oracle_*
\
custom-multi-oracle-build-config:
\
{
  config.odb_tests.libodb_test=true
  config.odb_tests.database='mysql sqlite pgsql oracle'

  config.odb_tests.mysql.user=$getenv(MYSQL_DATABASE_USER)
  config.odb_tests.mysql.database=$getenv(MYSQL_DATABASE_NAME)
  config.odb_tests.mysql.host=$getenv(MYSQL_DATABASE_HOST)
  config.odb_tests.mysql.port=$getenv(MYSQL_DATABASE_PORT)

  config.odb_tests.pgsql.user=$getenv(PGSQL_DATABASE_USER)
  config.odb_tests.pgsql.database=$getenv(PGSQL_DATABASE_NAME)
  config.odb_tests.pgsql.host=$getenv(PGSQL_DATABASE_HOST)
  config.odb_tests.pgsql.port=$getenv(PGSQL_DATABASE_PORT)

  config.odb_tests.oracle.user=$getenv(ORACLE_DATABASE_USER)
  config.odb_tests.oracle.passwd=$getenv(ORACLE_DATABASE_PASSWORD)
  config.odb_tests.oracle.host=$getenv(ORACLE_DATABASE_HOST)
  config.odb_tests.oracle.port=$getenv(ORACLE_DATABASE_PORT)
  config.odb_tests.oracle.service=$getenv(ORACLE_DATABASE_SERVICE)
}+ odb-tests
\
custom-multi-mssql-builds: default ; Requires proprietary software.
custom-multi-mssql-builds: -wasm ; Not supported by libodb-{mysql,pgsql,mssql\
}.
custom-multi-mssql-builds: &( +( +windows &msvc ) +( +linux &gcc ) ) ; Only\
 test on Windows and Linux with main compiler.
custom-multi-mssql-builds: -static ; Implementation uses plugins and requires\
 -fPIC.
custom-multi-mssql-build-auxiliary-mysql:
\
*-mysql_*
\
custom-multi-mssql-build-auxiliary-pgsql:
\
*-postgresql_*
\
custom-multi-mssql-build-auxiliary-mssql:
\
*-mssql_*
\
custom-multi-mssql-build-config:
\
{
  config.odb_tests.libodb_test=true
  config.odb_tests.database='mysql sqlite pgsql mssql'

  config.odb_tests.mysql.user=$getenv(MYSQL_DATABASE_USER)
  config.odb_tests.mysql.database=$getenv(MYSQL_DATABASE_NAME)
  config.odb_tests.mysql.host=$getenv(MYSQL_DATABASE_HOST)
  config.odb_tests.mysql.port=$getenv(MYSQL_DATABASE_PORT)

  config.odb_tests.pgsql.user=$getenv(PGSQL_DATABASE_USER)
  config.odb_tests.pgsql.database=$getenv(PGSQL_DATABASE_NAME)
  config.odb_tests.pgsql.host=$getenv(PGSQL_DATABASE_HOST)
  config.odb_tests.pgsql.port=$getenv(PGSQL_DATABASE_PORT)

  config.odb_tests.mssql.user=$getenv(MSSQL_DATABASE_USER)
  config.odb_tests.mssql.passwd=$getenv(MSSQL_DATABASE_PASSWORD)
  config.odb_tests.mssql.database=$getenv(MSSQL_DATABASE_NAME)
  config.odb_tests.mssql.host=$getenv(MSSQL_DATABASE_HOST)
  config.odb_tests.mssql.port=$getenv(MSSQL_DATABASE_PORT)
  config.odb_tests.mssql.driver=$getenv(MSSQL_ODBC_DRIVER)
}+ odb-tests
\
custom-build-bot:
\
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M
lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H
8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe
uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X
X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3
NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE
nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL
zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY
5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD
5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np
f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv
9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ==
-----END PUBLIC KEY-----
\
custom-multi-build-bot:
\
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M
lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H
8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe
uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X
X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3
NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE
nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL
zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY
5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD
5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np
f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv
9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ==
-----END PUBLIC KEY-----
\
custom-multi-oracle-build-bot:
\
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M
lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H
8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe
uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X
X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3
NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE
nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL
zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY
5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD
5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np
f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv
9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ==
-----END PUBLIC KEY-----
\
custom-multi-mssql-build-bot:
\
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M
lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H
8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe
uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X
X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3
NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE
nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL
zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY
5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD
5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np
f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv
9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ==
-----END PUBLIC KEY-----
\
bindist-debian-builds: bindist
bindist-debian-build-include: linux_debian*-**
bindist-debian-build-include: linux_ubuntu*-**
bindist-debian-build-exclude: **
bindist-debian-build-config:
\
+bpkg.bindist.debian:
+bbot.bindist.upload:
b.create:config.cxx.std=c++11

{
  config.odb_tests.libodb_test=true
  config.odb_tests.database=sqlite
}+ odb-tests

{
  config.odb_examples.libodb_example=true
  config.odb_examples.database=sqlite
}+ odb-examples
\
bindist-fedora-builds: bindist
bindist-fedora-build-include: linux_fedora*-**
bindist-fedora-build-include: linux_rhel*-**
bindist-fedora-build-exclude: **
bindist-fedora-build-config:
\
+bpkg.bindist.fedora:
+bbot.bindist.upload:
b.create:config.cxx.std=c++11

{
  config.odb_tests.libodb_test=true
  config.odb_tests.database=sqlite
}+ odb-tests

{
  config.odb_examples.libodb_example=true
  config.odb_examples.database=sqlite
}+ odb-examples
\
bindist-windows-release-builds: bindist
bindist-windows-release-build-include: windows*-msvc**
bindist-windows-release-build-exclude: **
bindist-windows-release-build-config:
\
+bpkg.bindist.archive:
+bbot.bindist.upload:

# Relocatable by default (see target configuration for details).
#
#bpkg.bindist.archive:config.install.relocatable=true

b.create:config.cc.coptions="/W2 /O2"
b.create:config.cxx.std=c++11

{
  config.odb_tests.libodb_test=true
  config.odb_tests.database=sqlite
}+ odb-tests

{
  config.odb_examples.libodb_example=true
  config.odb_examples.database=sqlite
}+ odb-examples
\
bindist-windows-debug-builds: bindist
bindist-windows-debug-build-include: windows*-msvc**
bindist-windows-debug-build-exclude: **
bindist-windows-debug-build-config:
\
+bpkg.bindist.archive:
+bbot.bindist.upload:

# Relocatable by default (see target configuration for details).
#
#bpkg.bindist.archive:config.install.relocatable=true

bpkg.bindist.archive:--archive-build-meta=+debug
bpkg.create:config.bin.lib=shared
bpkg.create:config.bin.lib.suffix=D
b.create:config.cc.coptions="/W2 /Zi /MDd"
b.create:config.cc.loptions="/DEBUG:FULL"
b.test-installed.create:config.cc.coptions="/W2 /MDd"
b.test-installed.create:config.import.libodb.odb.lib=odbD
bpkg.test-separate-installed.create:config.cc.coptions="/W2 /MDd"
bpkg.test-separate-installed.create:config.import.libodb.odb.lib=odbD
b.create:config.cxx.std=c++11

{
  config.odb_tests.libodb_test=true
  config.odb_tests.database=sqlite
}+ odb-tests

{
  config.odb_examples.libodb_example=true
  config.odb_examples.database=sqlite
}+ odb-examples
\
bindist-windows-release-build-bot:
\
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M
lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H
8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe
uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X
X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3
NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE
nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL
zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY
5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD
5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np
f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv
9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ==
-----END PUBLIC KEY-----
\
bindist-windows-debug-build-bot:
\
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuF4YmJmPHY52Q6N+YO0M
lt/fCovdezleb2tVplyTnvbyAiPdmYCIIjVrsqUn3y46PdFtWEiSdsrCcncoxi6H
8KelOB/oQ9pNTyEvwGKEH5ZIU7noLZYdXEfoNdvdL/pbY/7uLBZOSekfdQShZtbe
uOZCM2Mhg2DD76TP/VAwaXuDCnEvxxU/yneUl5ZaBo62AWNrYJuSGAliCOpVpl6X
X1kbHOvnCx7c9e3LxgaVivPaeZRKYg0OaFt96SBYEZzNPvjA8pMuKuj/vatHaCQ3
NO9+r3TJ+4dQd7qN6Ju3zUJq9J/ndSh4lPvUalvvhdykecefhcyHwRZOG4xyFMFE
nJM4sM+aZu6WoKATIKtk7On70inVr0sZJXwJ4Lt4oqaK2VthcSTby3wf2Yv4p5hL
zNo31cCPmBRYzABcIc6ADYvexVK4uCwaim8xs7RK5Ug2Gv6vUWoRNZW8grIgDwUY
5pZ4Zk3hW4ii2vehTaVrrmdW6XipIsT+ayiVX7eWuHHNxAeCojXVjOJu9B0ExMlD
5tHZCs+SNdV5MceexecbptB7fZtRebP120yjLiSnZ5FpaQ1stusr0hSg+VQaX4np
f5m1W/CcDr53PKWg/ayY9nWMUQaIwH4b69kLM+VTpYSbzu5UQJkmNBNq2EOHgoTv
9MLA+cE/nNJ/rMI//MZ1+kcCAwEAAQ==
-----END PUBLIC KEY-----
\
