aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-04-04 22:58:47 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2020-04-07 16:58:21 +0300
commite241c2d3aac91c6845fe33df0630fd7294be72ce (patch)
treeb1a53fadc2046b89d0b36dab12a589cc62133704
parent65693efe2620d4f7786aa5fed953ed265deddb5d (diff)
Make use of project configuration variable for specifying database client library
-rw-r--r--build/root.build26
-rw-r--r--odb/mysql/buildfile10
2 files changed, 29 insertions, 7 deletions
diff --git a/build/root.build b/build/root.build
index ba74c09..49d1911 100644
--- a/build/root.build
+++ b/build/root.build
@@ -1,6 +1,32 @@
# file : build/root.build
# license : GNU GPL v2; see accompanying LICENSE file
+# Configure which database client library to use for build2 versions greater
+# than 0.12.0 and always use MySQL client library otherwise (due to the lack
+# of the project configuration variables support).
+#
+if ($build.version.number > 12000000000)
+{
+ # Whether to use the MySQL or MariaDB client library.
+ #
+ config [string] config.libodb_mysql.client_lib ?= 'mysql'
+
+ # Verify the config.libodb_mysql.client_lib configuration variable value and
+ # provide the short alias for it.
+ #
+ switch $config.libodb_mysql.client_lib
+ {
+ case 'mysql'
+ case 'mariadb'
+ client_lib = $config.libodb_mysql.client_lib
+
+ default
+ fail "invalid config.libodb_mysql.client_lib value '$config.libodb_mysql.client_lib'"
+ }
+}
+else
+ client_lib = 'mysql'
+
cxx.std = latest
using cxx
diff --git a/odb/mysql/buildfile b/odb/mysql/buildfile
index 556caf1..2796103 100644
--- a/odb/mysql/buildfile
+++ b/odb/mysql/buildfile
@@ -1,15 +1,11 @@
# file : odb/mysql/buildfile
# license : GNU GPL v2; see accompanying LICENSE file
-client_lib = 'mysql'
-#client_lib = 'mariadb'
-
import int_libs = libodb%lib{odb}
-if ($client_lib == 'mysql')
- import int_libs += libmysqlclient%lib{mysqlclient}
-else
- import int_libs += libmariadb%lib{mariadb}
+import int_libs += ($client_lib == 'mysql' \
+ ? libmysqlclient%lib{mysqlclient} \
+ : libmariadb%lib{mariadb})
lib{odb-mysql}: {hxx ixx txx cxx}{* -version-build2} {hxx}{version-build2} \
details/{hxx ixx txx cxx}{* -options} details/{hxx ixx cxx}{options} \