aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am4
-rw-r--r--configure.ac11
-rw-r--r--m4/libodb-qt.m484
-rw-r--r--m4/libqt.m486
-rw-r--r--qt/makefile1
-rw-r--r--qt/mysql/template/template-vc10.vcxproj8
-rw-r--r--qt/mysql/template/template-vc9.vcproj8
-rw-r--r--test.bat2
8 files changed, 195 insertions, 9 deletions
diff --git a/Makefile.am b/Makefile.am
index 0a15f76..2631719 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,6 +9,10 @@ if ODB_TESTS_BOOST
SUBDIRS += boost
endif
+if ODB_TESTS_QT
+SUBDIRS += qt
+endif
+
if DATABASE_MYSQL
SUBDIRS += mysql
endif
diff --git a/configure.ac b/configure.ac
index cea2bd2..632465c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,6 +54,17 @@ LIBODB_BOOST([], [odb_tests_boost=no])
AM_CONDITIONAL([ODB_TESTS_BOOST], [test x$odb_tests_boost != xno])
+# Check for Qt
+#
+odb_tests_qt=yes
+LIBQTCORE([],[odb_tests_qt=no])
+
+# Check for libodb-qt
+#
+LIBODB_QT([], [odb_tests_qt=no])
+
+AM_CONDITIONAL([ODB_TESTS_QT], [test x$odb_tests_qt != xno])
+
# Check which database we are using.
#
DATABASE
diff --git a/m4/libodb-qt.m4 b/m4/libodb-qt.m4
new file mode 100644
index 0000000..7e6b31e
--- /dev/null
+++ b/m4/libodb-qt.m4
@@ -0,0 +1,84 @@
+dnl file : m4/libodb-qt.m4
+dnl author : Boris Kolpackov <boris@codesynthesis.com>
+dnl copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+dnl license : GNU GPL v2; see accompanying LICENSE file
+dnl
+dnl LIBODB_QT([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+dnl
+dnl
+AC_DEFUN([LIBODB_QT], [
+libodb_qt_found=no
+
+AC_ARG_WITH(
+ [libodb-qt],
+ [AC_HELP_STRING([--with-libodb-qt=DIR],[location of libodb-qt build directory])],
+ [libodb_qt_dir=${withval}],
+ [libodb_qt_dir=])
+
+AC_MSG_CHECKING([for libodb-qt])
+
+# If libodb_qt_dir was given, add the necessary preprocessor and
+# linker flags.
+#
+if test x"$libodb_qt_dir" != x; then
+ save_CPPFLAGS="$CPPFLAGS"
+ save_LDFLAGS="$LDFLAGS"
+
+ AS_SET_CATFILE([abs_libodb_qt_dir], [$ac_pwd], [$libodb_qt_dir])
+
+ CPPFLAGS="$CPPFLAGS -I$abs_libodb_qt_dir"
+ LDFLAGS="$LDFLAGS -L$abs_libodb_qt_dir/odb/qt"
+fi
+
+save_LIBS="$LIBS"
+LIBS="-lodb-qt $LIBS"
+
+CXX_LIBTOOL_LINK_IFELSE(
+AC_LANG_SOURCE([[
+#include <odb/qt/exception.hxx>
+
+void
+f ()
+{
+}
+
+const char*
+g ()
+{
+ try
+ {
+ f ();
+ }
+ catch (const odb::qt::exception& e)
+ {
+ return e.what ();
+ }
+ return 0;
+}
+
+int
+main ()
+{
+ const char* m (g ());
+ return m != 0;
+}
+]]),
+[libodb_qt_found=yes])
+
+if test x"$libodb_qt_found" = xno; then
+ LIBS="$save_LIBS"
+
+ if test x"$libodb_qt_dir" != x; then
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ fi
+fi
+
+if test x"$libodb_qt_found" = xyes; then
+ AC_MSG_RESULT([yes])
+ $1
+else
+ AC_MSG_RESULT([no])
+ $2
+fi
+])dnl
diff --git a/m4/libqt.m4 b/m4/libqt.m4
new file mode 100644
index 0000000..b79e0a8
--- /dev/null
+++ b/m4/libqt.m4
@@ -0,0 +1,86 @@
+dnl file : m4/libqt.m4
+dnl author : Boris Kolpackov <boris@codesynthesis.com>
+dnl copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+dnl license : GNU GPL v2; see accompanying LICENSE file
+dnl
+dnl LIBQTCORE([ACTION-IF-FOUND[,ACTION-IF-NOT-FOUND]])
+dnl
+dnl
+AC_DEFUN([LIBQTCORE], [
+libqt_found=no
+
+AC_PATH_PROG([pkg_config],[pkg-config])
+
+AC_MSG_CHECKING([for QtCore])
+
+# First check for QtCore using default CPPFLAGS/LDFLAGS.
+#
+save_LIBS="$LIBS"
+LIBS="-lQtCore $LIBS"
+
+CXX_LIBTOOL_LINK_IFELSE(
+AC_LANG_SOURCE([[
+#include <string>
+#include <QString>
+
+int
+main ()
+{
+ QString qs ("test");
+ std::string ss (qs.toStdString ());
+ return ss.size () != 0;
+}
+]]),
+[
+libqt_found=yes
+])
+
+# If default CPPFLAGS/LDFLAGS didn't work, try to discover
+# them using pkg-config.
+#
+if test x"$libqt_found" = xno; then
+ LIBS="$save_LIBS"
+
+ if test x"$pkg_config" != x; then
+ if $pkg_config --exists QtCore; then
+ save_CPPFLAGS="$CPPFLAGS"
+ save_LIBS="$LIBS"
+
+ CPPFLAGS=`$pkg_config --cflags QtCore`
+ LIBS=`$pkg_config --libs QtCore`
+
+ CPPFLAGS="$CPPFLAGS $save_CPPFLAGS"
+ LIBS="$LIBS $save_LIBS"
+
+ CXX_LIBTOOL_LINK_IFELSE(
+AC_LANG_SOURCE([[
+#include <string>
+#include <QString>
+
+int
+main ()
+{
+ QString qs ("test");
+ std::string ss (qs.toStdString ());
+ return ss.size () != 0;
+}
+]]),
+[
+libqt_found=yes
+])
+ if test x"$libqt_found" = xno; then
+ CPPFLAGS="$save_CPPFLAGS"
+ LIBS="$save_LIBS"
+ fi
+ fi
+ fi
+fi
+
+if test x"$libqt_found" = xyes; then
+ AC_MSG_RESULT([yes])
+ $1
+else
+ AC_MSG_RESULT([no])
+ $2
+fi
+])dnl
diff --git a/qt/makefile b/qt/makefile
index 5520b8a..b8758a5 100644
--- a/qt/makefile
+++ b/qt/makefile
@@ -21,6 +21,7 @@ $(default): $(addprefix $(out_base)/,$(addsuffix /,$(dirs)))
$(dist): export extra_dist := build.bat
$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_dirs)))
+ $(call meta-vctest,mysql/qt-mysql-vc10.sln,build.bat)
$(call meta-automake)
$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(dirs)))
diff --git a/qt/mysql/template/template-vc10.vcxproj b/qt/mysql/template/template-vc10.vcxproj
index be0135e..5981755 100644
--- a/qt/mysql/template/template-vc10.vcxproj
+++ b/qt/mysql/template/template-vc10.vcxproj
@@ -93,7 +93,7 @@
<DisableSpecificWarnings>4068;4355;4800;4290;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib\common-d.lib;odb-mysql-d.lib;odb-qt-d.lib;odb-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib\common-d.lib;odb-mysql-d.lib;odb-qt-d.lib;QtCored4.lib;odb-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
@@ -109,7 +109,7 @@
<DisableSpecificWarnings>4068;4355;4800;4290;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib64\common-d.lib;odb-mysql-d.lib;odb-qt-d.lib;odb-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib64\common-d.lib;odb-mysql-d.lib;odb-qt-d.lib;QtCored4.lib;odb-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
@@ -127,7 +127,7 @@
<DisableSpecificWarnings>4068;4355;4800;4290;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib\common.lib;odb-mysql.lib;odb-qt.lib;odb.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib\common.lib;odb-mysql.lib;odb-qt.lib;QtCore4.lib;odb.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -147,7 +147,7 @@
<DisableSpecificWarnings>4068;4355;4800;4290;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
- <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib64\common.lib;odb-mysql.lib;odb-qt.lib;odb.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>$(SolutionDir)\..\..\libcommon\lib64\common.lib;odb-mysql.lib;odb-qt.lib;QtCore4.lib;odb.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
diff --git a/qt/mysql/template/template-vc9.vcproj b/qt/mysql/template/template-vc9.vcproj
index c679db9..8bd92cb 100644
--- a/qt/mysql/template/template-vc9.vcproj
+++ b/qt/mysql/template/template-vc9.vcproj
@@ -65,7 +65,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib\common-d.lib odb-mysql-d.lib odb-qt-d.lib odb-d.lib"
+ AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib\common-d.lib odb-mysql-d.lib odb-qt-d.lib QtCored4.lib odb-d.lib"
OutputFile="$(OutDir)\driver.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
@@ -141,7 +141,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib\common.lib odb-mysql.lib odb-qt.lib odb.lib"
+ AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib\common.lib odb-mysql.lib odb-qt.lib QtCore4.lib odb.lib"
OutputFile="$(OutDir)\driver.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
@@ -219,7 +219,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib64\common-d.lib odb-mysql-d.lib odb-qt-d.lib odb-d.lib"
+ AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib64\common-d.lib odb-mysql-d.lib odb-qt-d.lib QtCored4.lib odb-d.lib"
OutputFile="$(OutDir)\driver.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
@@ -296,7 +296,7 @@
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib64\common.lib odb-mysql.lib odb-qt.lib odb.lib"
+ AdditionalDependencies="$(SolutionDir)\..\..\libcommon\lib64\common.lib odb-mysql.lib odb-qt.lib QtCore4.lib odb.lib"
OutputFile="$(OutDir)\driver.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
diff --git a/test.bat b/test.bat
index b672def..b196fcc 100644
--- a/test.bat
+++ b/test.bat
@@ -39,7 +39,7 @@ goto :eof
:start
-for %%d in (tracer common %1 boost\common boost\%1) do (
+for %%d in (tracer common %1 boost\common boost\%1 qt\%1) do (
call :run_test %%d %1
)