aboutsummaryrefslogtreecommitdiff
path: root/odb/mysql/buildfile
diff options
context:
space:
mode:
Diffstat (limited to 'odb/mysql/buildfile')
-rw-r--r--odb/mysql/buildfile108
1 files changed, 108 insertions, 0 deletions
diff --git a/odb/mysql/buildfile b/odb/mysql/buildfile
new file mode 100644
index 0000000..9fb2275
--- /dev/null
+++ b/odb/mysql/buildfile
@@ -0,0 +1,108 @@
+# file : odb/mysql/buildfile
+# copyright : Copyright (c) 2009-2017 Code Synthesis Tools CC
+# 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}
+
+lib{odb-mysql}: {hxx ixx txx cxx}{* -version-build2} {hxx}{version-build2} \
+ details/{hxx ixx txx cxx}{* -options} details/{hxx ixx cxx}{options} \
+ details/build2/{h}{*} \
+ $int_libs
+
+# Include the generated version header into the distribution (so that we don't
+# pick up an installed one) and don't remove it when cleaning in src (so that
+# clean results in a state identical to distributed).
+#
+hxx{version-build2}: in{version-build2} $src_root/file{manifest}
+hxx{version-build2}: dist = true
+hxx{version-build2}: clean = ($src_root != $out_root)
+
+# For pre-releases use the complete version to make sure they cannot be used
+# in place of another pre-release or the final version.
+#
+if $version.pre_release
+ lib{odb-mysql}: bin.lib.version = @"-$version.project_id"
+else
+ lib{odb-mysql}: bin.lib.version = @"-$version.major.$version.minor"
+
+cxx.poptions =+ "-I$out_root" "-I$src_root" -DLIBODB_MYSQL_BUILD2
+
+if ($client_lib == 'mariadb')
+ cxx.poptions += -DLIBODB_MYSQL_MARIADB
+
+obja{*}: cxx.poptions += -DLIBODB_MYSQL_STATIC_BUILD
+objs{*}: cxx.poptions += -DLIBODB_MYSQL_SHARED_BUILD
+
+lib{odb-mysql}: cxx.export.poptions = "-I$out_root" "-I$src_root" \
+ -DLIBODB_MYSQL_BUILD2
+
+if ($client_lib == 'mariadb')
+ lib{odb-mysql}: cxx.export.poptions += -DLIBODB_MYSQL_MARIADB
+
+liba{odb-mysql}: cxx.export.poptions += -DLIBODB_MYSQL_STATIC
+libs{odb-mysql}: cxx.export.poptions += -DLIBODB_MYSQL_SHARED
+
+lib{odb-mysql}: cxx.export.libs = $int_libs
+
+details/:
+{
+ if $cli.configured
+ {
+ cli.cxx{options}: cli{options}
+
+ cli.options += --include-with-brackets --include-prefix odb/mysql/details \
+--guard-prefix LIBODB_MYSQL_DETAILS --generate-file-scanner \
+--cli-namespace odb::mysql::details::cli --long-usage --generate-specifier
+
+ # Include generated cli files into the distribution and don't remove them
+ # when cleaning in src (so that clean results in a state identical to
+ # distributed). But don't install their headers since they are only used
+ # internally in the database implementation.
+ #
+ cli.cxx{*}: dist = true
+ cli.cxx{*}: clean = ($src_root != $out_root)
+ cli.cxx{*}: install = false
+ }
+ else
+ # No install for the pre-generated case.
+ #
+ hxx{options}@./ ixx{options}@./: install = false
+}
+
+# Install into the odb/mysql/ subdirectory of, say, /usr/include/ recreating
+# subdirectories.
+#
+install_include = [dir_path] include/odb/mysql/
+
+{hxx ixx txx}{*}: install = $install_include
+{hxx ixx txx}{*}: install.subdirs = true
+
+# We want these to be picked up whether LIBODB_MYSQL_BUILD2 is defined or not.
+#
+hxx{version}@./: install = false
+hxx{version-build2}: install = $install_include/version.hxx
+hxx{version-build2-stub}@./: install = $install_include/version-build2.hxx
+
+details/build2/:
+{
+ h{*}: install = false
+
+ if ($cxx.id == 'msvc')
+ {
+ h{config-vc}@./: install = $install_include/details/
+ h{config-vc-stub}@./: install = $install_include/details/build2/config-vc.h
+ }
+ else
+ {
+ h{config}@./: install = $install_include/details/
+ h{config-stub}@./: install = $install_include/details/build2/config.h
+ }
+}