[PATCH xorg-gtest 2/2] Fix up build system to use the googletest import build
Peter Hutterer
peter.hutterer at who-t.net
Wed Oct 3 23:44:03 PDT 2012
Drop the CHECK_GTEST macro, we can assume it's there now. We
still build the gtest bits as convenience libraries, leave the various flags
in there.
Add $includedir/xorg to pgkconfig CPPFLAGS, as we install gtest.h in
includedir/xorg/gtest/gtest.h to avoid overwriting or conflicts with a
system-installed gtest.h
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Makefile.am | 2 +-
aclocal/xorg-gtest.m4 | 50 +++++-----------------------------------------
configure.ac | 10 ++--------
examples/Makefile.am | 4 +++-
gtest/Makefile.am | 28 ++++++++++++++++++++++++++
gtest/include/Makefile.am | 25 +++++++++++++++++++++++
src/Makefile-xorg-gtest.am | 6 ++++--
test/Makefile.am | 8 +++++---
xorg-gtest.pc.in | 2 +-
9 files changed, 74 insertions(+), 61 deletions(-)
create mode 100644 gtest/Makefile.am
create mode 100644 gtest/include/Makefile.am
diff --git a/Makefile.am b/Makefile.am
index b984c8e..d2fdbb0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,7 +23,7 @@
# SOFTWARE.
#
-SUBDIRS = aclocal data doc include src examples test
+SUBDIRS = aclocal data doc include src examples test gtest
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = xorg-gtest.pc
diff --git a/aclocal/xorg-gtest.m4 b/aclocal/xorg-gtest.m4
index e180b56..6bd0d4f 100644
--- a/aclocal/xorg-gtest.m4
+++ b/aclocal/xorg-gtest.m4
@@ -1,4 +1,4 @@
-# serial 7
+# serial 9
# Copyright (C) 2012 Canonical, Ltd.
#
@@ -21,45 +21,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-# Checks whether the gtest source is available on the system. Allows for
-# adjusting the include and source path. Sets have_gtest=yes if the source is
-# present. Sets GTEST_CPPFLAGS and GTEST_SOURCE to the preprocessor flags and
-# source location respectively.
-AC_DEFUN([_CHECK_GTEST],
-[
- AC_ARG_WITH([gtest-source-path],
- [AS_HELP_STRING([--with-gtest-source-path],
- [location of the Google test sources, defaults to /usr/src/gtest])],
- [GTEST_SOURCE="$withval"; GTEST_CPPFLAGS="-I$withval/include";
- case "$withval" in
- /*) ;;
- *) AC_MSG_ERROR([gtest-source-path must be an absolute path ('$withval')]) ;;
- esac
- ],
- [GTEST_SOURCE="/usr/src/gtest"; GTEST_CPPFLAGS="-I$GTEST_SOURCE/include"])
-
- AC_ARG_WITH([gtest-include-path],
- [AS_HELP_STRING([--with-gtest-include-path],
- [location of the Google test headers])],
- [GTEST_CPPFLAGS="-I$withval";
- case "$withval" in
- /*) ;;
- *) AC_MSG_ERROR([gtest-include-path must be an absolute path ('$withval')]) ;;
- esac
- ])
-
- GTEST_CPPFLAGS="$GTEST_CPPFLAGS -I$GTEST_SOURCE"
-
- AC_CHECK_FILES([$GTEST_SOURCE/src/gtest-all.cc]
- [$GTEST_SOURCE/src/gtest_main.cc],
- [have_gtest=yes],
- [have_gtest=no])
-
- AS_IF([test "x$have_gtest" = xyes],
- [AC_SUBST(GTEST_CPPFLAGS)]
- [AC_SUBST(GTEST_SOURCE)] [:])
-]) # _CHECK_GTEST
-
# CHECK_XORG_GTEST([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# Checks whether the xorg-gtest source is available on the system. Allows for
@@ -71,13 +32,13 @@ AC_DEFUN([_CHECK_GTEST],
# Both default actions are no-ops.
AC_DEFUN([CHECK_XORG_GTEST],
[
- AC_REQUIRE([_CHECK_GTEST])
-
PKG_CHECK_EXISTS([xorg-gtest],
[have_xorg_gtest=yes],
[have_xorg_gtest=no])
XORG_GTEST_SOURCE=`$PKG_CONFIG --variable=sourcedir --print-errors xorg-gtest`
+ GTEST_SOURCE="$XORG_GTEST_SOURCE/src/gtest"
+ GTEST_CPPFLAGS="-I$XORG_GTEST_SOURCE/src/gtest/include -I$XORG_GTEST_SOURCE/src/gtest"
XORG_GTEST_CPPFLAGS=`$PKG_CONFIG --variable=CPPflags --print-errors xorg-gtest`
XORG_GTEST_CPPFLAGS="$GTEST_CPPFLAGS $XORG_GTEST_CPPFLAGS"
XORG_GTEST_CPPFLAGS="$XORG_GTEST_CPPFLAGS -I$XORG_GTEST_SOURCE"
@@ -102,10 +63,9 @@ AC_DEFUN([CHECK_XORG_GTEST],
AS_IF([test "x$have_xorg_gtest_evemu" = xyes],
[XORG_GTEST_CPPFLAGS="$XORG_GTEST_CPPFLAGS -DHAVE_EVEMU"])
- AS_IF([test "x$have_gtest" != xyes -o "x$have_x11" != xyes],
- [have_xorg_gtest=no])
-
AS_IF([test "x$have_xorg_gtest" = xyes],
+ [AC_SUBST(GTEST_SOURCE)]
+ [AC_SUBST(GTEST_CPPFLAGS)]
[AC_SUBST(XORG_GTEST_SOURCE)]
[AC_SUBST(XORG_GTEST_CPPFLAGS)]
diff --git a/configure.ac b/configure.ac
index 6413d46..d8f1df6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,14 +27,6 @@ XORG_WITH_DOXYGEN
PKG_CHECK_MODULES(X11, x11 xi)
-# Check for Google Test
-CHECK_GTEST
-
-AS_IF([test "x$have_gtest" != xyes],
- AC_MSG_ERROR([package 'gtest' not found]))
-
-AC_SUBST([GTEST_CPPFLAGS])
-
# Check if we should include support for evemu
AC_ARG_WITH([evemu],
[AS_HELP_STRING([--with-evemu],
@@ -77,6 +69,8 @@ AM_CONDITIONAL(ENABLE_XORG_GTEST_TESTS, [test "x$have_dummy_module" = xyes ])
AC_CONFIG_FILES([Makefile
aclocal/Makefile
+ gtest/Makefile
+ gtest/include/Makefile
data/Makefile
doc/Doxyfile
doc/Makefile
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 49c133f..2cd1bd8 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -26,11 +26,13 @@
check_LIBRARIES = libgtest.a libxorg-gtest.a libxorg-gtest_main.a
+GTEST_CPPFLAGS=-I$(top_srcdir)/gtest/include -I$(top_srcdir)/gtest
+
AM_CPPFLAGS = $(GTEST_CPPFLAGS)
AM_CXXFLAGS = $(X11_CFLAGS) $(BASE_CXXFLAGS)
# build googletest as static lib
-nodist_libgtest_a_SOURCES = $(GTEST_SOURCE)/src/gtest-all.cc
+nodist_libgtest_a_SOURCES = $(top_srcdir)/gtest/src/gtest-all.cc
libgtest_a_CPPFLAGS = $(AM_CPPFLAGS) -w
libgtest_a_CXXFLAGS = $(GTEST_CXXFLAGS) $(AM_CXXFLAGS)
diff --git a/gtest/Makefile.am b/gtest/Makefile.am
new file mode 100644
index 0000000..5ba9d32
--- /dev/null
+++ b/gtest/Makefile.am
@@ -0,0 +1,28 @@
+# Makefile for the gtest subdirectory of xorg-gtest
+#
+# Copyright © 2012 Red Hat, Inc
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+SUBDIRS = include
+
+srcinstalldir = $(prefix)/src/xorg-gtest/src/gtest
+dist_srcinstall_DATA = src/gtest-all.cc src/gtest_main.cc
diff --git a/gtest/include/Makefile.am b/gtest/include/Makefile.am
new file mode 100644
index 0000000..54d3088
--- /dev/null
+++ b/gtest/include/Makefile.am
@@ -0,0 +1,25 @@
+# Makefile for the gtest/include subdirectory of xorg-gtest
+#
+# Copyright © 2012 Red Hat, Inc
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+#
+
+nobase_include_HEADERS = gtest/gtest.h
diff --git a/src/Makefile-xorg-gtest.am b/src/Makefile-xorg-gtest.am
index 4f36b13..c7c96d8 100644
--- a/src/Makefile-xorg-gtest.am
+++ b/src/Makefile-xorg-gtest.am
@@ -26,14 +26,16 @@ XORG_GTEST_BUILD_LIBS = \
libxorg-gtest.a \
libxorg-gtest_main.a
+GTEST_CPPFLAGS=-I$(XORG_GTEST_SOURCE)/src/gtest
+
# Here and below we compile without warnings (-w) because the projects using
# xorg-gtest will not want to see warnings or fail to build due to warnings in
# gtest or xorg-gtest.
-nodist_libgtest_a_SOURCES = $(GTEST_SOURCE)/src/gtest-all.cc
+nodist_libgtest_a_SOURCES = $(XORG_GTEST_SOURCE)/src/gtest/gtest-all.cc
libgtest_a_CPPFLAGS = $(GTEST_CPPFLAGS) $(AM_CPPFLAGS) -w
libgtest_a_CXXFLAGS = $(GTEST_CXXFLAGS) $(AM_CXXFLAGS)
-nodist_libgtest_main_a_SOURCES = $(GTEST_SOURCE)/src/gtest_main.cc
+nodist_libgtest_main_a_SOURCES = $(XORG_GTEST_SOURCE)/src/gtest/gtest_main.cc
libgtest_main_a_CPPFLAGS = $(GTEST_CPPFLAGS) $(AM_CPPFLAGS) -w
libgtest_main_a_CXXFLAGS = $(GTEST_CXXFLAGS) $(AM_CXXFLAGS)
diff --git a/test/Makefile.am b/test/Makefile.am
index 4f847b3..df671a4 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -28,6 +28,8 @@
noinst_PROGRAMS = process-test xserver-test device-test
noinst_DATA = PIXART-USB-OPTICAL-MOUSE.desc
+GTEST_CPPFLAGS=-I$(top_srcdir)/gtest/include -I$(top_srcdir)/gtest
+
AM_CPPFLAGS = $(GTEST_CPPFLAGS)
AM_CXXFLAGS = $(BASE_CXXFLAGS) \
-DTEST_ROOT_DIR=\"$(abs_top_srcdir)/test/\"
@@ -54,9 +56,9 @@ device_test_LDADD = $(tests_libraries)
check_LIBRARIES = libgtest.a libxorg-gtest.a
# build googletest as static lib
-nodist_libgtest_a_SOURCES = $(GTEST_SOURCE)/src/gtest-all.cc
+nodist_libgtest_a_SOURCES = $(top_srcdir)/gtest/src/gtest-all.cc
libgtest_a_CPPFLAGS = $(AM_CPPFLAGS) -w
-libgtest_a_CXXFLAGS = $(GTEST_CXXFLAGS) $(AM_CXXFLAGS)
+libgtest_a_CXXFLAGS = $(AM_CXXFLAGS)
# build xorg-gtest as static lib
libxorg_gtest_a_SOURCES = $(top_srcdir)/src/xorg-gtest-all.cpp
@@ -65,7 +67,7 @@ libxorg_gtest_a_CPPFLAGS = \
-I$(top_srcdir)/include \
-I$(top_srcdir) \
-DDUMMY_CONF_PATH="\"$(top_srcdir)/data/xorg/gtest/dummy.conf\""
-libxorg_gtest_a_CXXFLAGS = $(GTEST_CXXFLAGS) $(AM_CXXFLAGS)
+libxorg_gtest_a_CXXFLAGS = $(AM_CXXFLAGS)
if ENABLE_XORG_GTEST_TESTS
TESTS = $(noinst_PROGRAMS)
diff --git a/xorg-gtest.pc.in b/xorg-gtest.pc.in
index a80f666..e88e06c 100644
--- a/xorg-gtest.pc.in
+++ b/xorg-gtest.pc.in
@@ -2,7 +2,7 @@ prefix=@prefix@
includedir=@includedir@
sourcedir=@SOURCEDIR@
datarootdir=@datarootdir@
-CPPflags=-I${includedir} -I${sourcedir} -DDUMMY_CONF_PATH=\"@DUMMY_CONF_PATH@\"
+CPPflags=-I${includedir} -I${includedir}/xorg -I${sourcedir} -DDUMMY_CONF_PATH=\"@DUMMY_CONF_PATH@\"
Name: xorg-gtest
Description: X.org Google Test Environment
--
1.7.11.4
More information about the xorg-devel
mailing list