Nux

Merge lp:~bregma/nux/lp-1185265 into lp:nux

Proposed by Stephen M. Webb
Status: Merged
Approved by: Didier Roche-Tolomelli
Approved revision: 804
Merged at revision: 801
Proposed branch: lp:~bregma/nux/lp-1185265
Merge into: lp:nux
Diff against target: 263 lines (+99/-49)
5 files modified
configure.ac (+1/-9)
debian/control (+1/-2)
debian/rules (+1/-2)
m4/gtest.m4 (+85/-27)
tests/Makefile.am (+11/-9)
To merge this branch: bzr merge lp:~bregma/nux/lp-1185265
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Didier Roche-Tolomelli Needs Fixing
Review via email: mp+173831@code.launchpad.net

Commit message

moved to newer upstream google-mock release (lp: #1185265)

Description of the change

= Problem description =

Upstream google-mock has eliminated bundling a static library, Nux needs to build from source (just like google-test).

= The fix =

Autodetect google-mock sources and possibly an embedded copy of google-test and use them when building tests.

= Test coverage =

Nux does not FTBFS and testsuite builds and runs.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Hum, after trying bzr bd in the nux branch, I see that the install target isn't good:
debian/tmp/usr/src/gmock/gtest/ is where DESTDIR is set, so we have for isntance:
debian/tmp/usr/src/gmock/gtest/lib/x86_64-linux-gnu/*libs

The version to build-dep on should be 1.6.0+svn437 rather than 1.6.0 (as we have 1.6.0-0ubuntu3 in saucy and that one doesn't ship the internal gtests).

review: Needs Fixing
lp:~bregma/nux/lp-1185265 updated
804. By Stephen M. Webb

advanced google-mock version dependency

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

approving globally now that new gmock is available

Revision history for this message
PS Jenkins bot (ps-jenkins) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'configure.ac'
2--- configure.ac 2013-06-17 14:18:04 +0000
3+++ configure.ac 2013-07-10 11:59:28 +0000
4@@ -288,17 +288,9 @@
5 [
6 # Check for google gtest
7 CHECK_GTEST
8- AS_IF([test "x$have_gtest" = "xyes"],
9- [AC_SUBST([GTEST_CPPFLAGS])],
10+ AS_IF([test "x$have_gtest" != "xyes"],
11 [AC_MSG_WARN([you are missing google-test, apt-get install libgtest-dev])])
12
13- # Check for googlemock
14- AC_LANG_PUSH([C++])
15- AC_CHECK_HEADER([gmock/gmock.h],
16- [have_gmock=yes],
17- [AC_MSG_WARN([you are missing google-mock, apt-get install google-mock])])
18- AC_LANG_POP([C++])
19-
20 #Check for libboost
21
22 AC_LANG_PUSH([C++])
23
24=== modified file 'debian/control'
25--- debian/control 2013-01-10 08:37:00 +0000
26+++ debian/control 2013-07-10 11:59:28 +0000
27@@ -12,8 +12,7 @@
28 libboost-dev,
29 libboost-filesystem-dev,
30 libboost-system-dev,
31- libgtest-dev,
32- google-mock,
33+ google-mock (>= 1.6.0+svn437),
34 libcairo2-dev (>= 1.9.14),
35 libpng12-dev (>= 1.2.44),
36 libglew-dev [!armel !armhf],
37
38=== modified file 'debian/rules'
39--- debian/rules 2012-11-20 02:43:28 +0000
40+++ debian/rules 2013-07-10 11:59:28 +0000
41@@ -23,9 +23,8 @@
42 NUX_ABIVERSION := $(shell sed -rn 's/^\#define[[:space:]]+NUX_ABIVERSION[[:space:]]+//p' Nux/ABI.h )
43
44 override_dh_install:
45- rm debian/tmp/usr/lib/*/*la
46 rm -rf debian/tmp/usr/share/nux/gputests/
47- dh_install --fail-missing
48+ dh_install --fail-missing -X.la
49
50 override_dh_auto_test:
51 ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
52
53=== modified file 'm4/gtest.m4'
54--- m4/gtest.m4 2012-11-19 22:57:50 +0000
55+++ m4/gtest.m4 2013-07-10 11:59:28 +0000
56@@ -25,35 +25,93 @@
57
58 AC_DEFUN([CHECK_GTEST],
59 [
60- AC_ARG_WITH([gtest-include-path],
61- [AS_HELP_STRING([--with-gtest-include-path],
62- [location of the Google test headers])],
63- [GTEST_CPPFLAGS="-I$withval"])
64-
65- AC_ARG_WITH([gtest-source-path],
66- [AS_HELP_STRING([--with-gtest-source-path],
67- [location of the Google test sources, defaults to /usr/src/gtest])],
68- [GTEST_SOURCE="$withval"],
69- [GTEST_SOURCE="/usr/src/gtest"])
70-
71- GTEST_CPPFLAGS="$GTEST_CPPFLAGS -I$GTEST_SOURCE"
72-
73 AC_LANG_PUSH([C++])
74-
75+ PATH_SEPARATOR=:
76+
77+ AC_ARG_VAR([GMOCK_PREFIX],
78+ [Path to Google Mock sources.])
79+ AC_ARG_VAR([GMOCK_INCLUDES],
80+ [Path to Google Mock headers.])
81+ AC_ARG_VAR([GMOCK_CPPFLAGS],
82+ [C preprocessor flags for Google Mock.])
83+
84+ gmock_includes=
85+ gmock_prefix=/usr/src/gmock
86+ AC_ARG_WITH([gmock-prefix],[
87+ AS_HELP_STRING([--with-gmock-prefix],
88+ [Prefix where Google Mock is installed (default $gmock_prefix)])
89+ ],[
90+ gmock_prefix=$withval
91+ ])
92+
93+ AC_ARG_WITH([gmock-includes],[
94+ AS_HELP_STRING([--with-gmock-includes],
95+ [Search path for Google Mock headers (default none)])
96+ ],[
97+ gmock_includes=$withval
98+ ])
99+
100+ AS_IF([test x$gmock_includes != x],
101+ [GMOCK_CPPFLAGS=-I$gmock_includes],
102+ [GMOCK_CPPFLAGS=])
103 tmp_CPPFLAGS="$CPPFLAGS"
104- CPPFLAGS="$CPPFLAGS $GTEST_CPPFLAGS"
105-
106- AC_CHECK_HEADER([gtest/gtest.h])
107-
108+ CPPFLAGS="$CPPFLAGS $GMOCK_CPPFLAGS"
109+ AC_CHECK_HEADER([gmock/gmock.h],
110+ [have_gmock=yes],
111+ [have_gmock=no],
112+ [-])
113 CPPFLAGS="$tmp_CPPFLAGS"
114-
115- AC_LANG_POP
116-
117- AS_IF([test -f $GTEST_SOURCE/src/gtest-all.cc && test -f $GTEST_SOURCE/src/gtest_main.cc],
118- [have_gtest_source=yes], [have_gtest_source=no])
119-
120- AS_IF([test "x$ac_cv_header_gtest_gtest_h" = "xyes" && test "x$have_gtest_source" = "xyes"],
121- [have_gtest=yes] [AC_SUBST(GTEST_CPPFLAGS)] [AC_SUBST(GTEST_SOURCE)],
122- [have_gtest=no])
123+ AS_IF([test x$have_gmock = xyes],[
124+ AC_CHECK_FILES([$gmock_prefix/src/gmock-all.cc],
125+ [have_gmock=yes],
126+ [have_gmock=no])
127+
128+ gtest_include_path=/usr/include
129+ gtest_prefix_path=/usr/src/gtest
130+ AS_IF([test x$have_gmock = xyes],[
131+ AC_SUBST([GMOCK_CPPFLAGS], "$GMOCK_CPPFLAGS -I$gmock_prefix")
132+ AC_SUBST([GMOCK_PREFIX], [$gmock_prefix])
133+ gtest_prefix_path="$GMOCK_PREFIX/gtest$PATH_SEPARATOR$gtest_prefix_path"
134+ gtest_include_path="$GMOCK_PREFIX/gtest/include$PATH_SEPARATOR$gtest_include_path"
135+ ])
136+
137+ AC_ARG_VAR([GTEST_PREFIX],
138+ [Path to Google Test sources.])
139+ AC_ARG_VAR([GTEST_CPPFLAGS],
140+ [C preprocessor flags for Google Test.])
141+
142+ ax_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
143+ for incdir in $gtest_include_path; do
144+ IFS=$ax_save_IFS
145+ tmp_CPPFLAGS="$CPPFLAGS"
146+ CPPFLAGS="$CPPFLAGS -I$incdir"
147+ AC_CHECK_HEADER([gtest/gtest.h],
148+ [have_gtest=yes],
149+ [have_gtest=no])
150+ CPPFLAGS="$tmp_CPPFLAGS"
151+ AS_IF([test x$have_gtest = xyes],[
152+ GTEST_CPPFLAGS=-I$incdir
153+ break
154+ ])
155+ done
156+ IFS=$ax_save_IFS
157+
158+ AS_IF([test x$have_gtest = xyes],[
159+ ax_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
160+ for ax_prefix in $gtest_prefix_path; do
161+ IFS=$ax_save_IFS
162+ AC_CHECK_FILES([$ax_prefix/src/gtest-all.cc],
163+ [have_gtest=yes],
164+ [have_gtest=no])
165+ AS_IF([test x$have_gtest = xyes],[
166+ AC_SUBST([GTEST_CPPFLAGS], "$GTEST_CPPFLAGS -I$ax_prefix")
167+ AC_SUBST([GTEST_PREFIX],[$ax_prefix])
168+ break
169+ ])
170+ done
171+ IFS=$ax_save_IFS
172+ ])
173+
174+ ])
175 ]) # CHECK_GTEST
176
177
178=== modified file 'tests/Makefile.am'
179--- tests/Makefile.am 2013-07-03 22:22:41 +0000
180+++ tests/Makefile.am 2013-07-10 11:59:28 +0000
181@@ -1,9 +1,10 @@
182 if BUILD_TESTS
183
184-nodist_libgtest_a_SOURCES = $(GTEST_SOURCE)/src/gtest-all.cc
185+nodist_libgtest_a_SOURCES = \
186+ $(GMOCK_PREFIX)/src/gmock-all.cc \
187+ $(GTEST_PREFIX)/src/gtest-all.cc
188
189-libgtest_a_CPPFLAGS = $(GTEST_CPPFLAGS) -w
190-libgtest_a_CXXFLAGS = $(GTEST_CXXFLAGS) $(AM_CXXFLAGS)
191+libgtest_a_CPPFLAGS = $(GMOCK_CPPFLAGS) $(GTEST_CPPFLAGS) -w
192 check_LIBRARIES = libgtest.a
193
194 check_PROGRAMS = \
195@@ -54,6 +55,7 @@
196 -DDATADIR=\""$(datadir)"\" \
197 -DG_LOG_DOMAIN=\"NuxTests\" \
198 -DTESTDIR=\""$(top_srcdir)/tests"\" \
199+ $(GMOCK_CPPFLAGS) $(GTEST_CPPFLAGS) \
200 $(GCC_TESTS_FLAGS) \
201 $(NUX_CORE_CFLAGS) \
202 $(NUX_EXAMPLES_CFLAGS) \
203@@ -66,7 +68,7 @@
204 libgtest.a
205
206 gtest_nuxcore_LDFLAGS = \
207- -lpthread -lgmock \
208+ -lpthread \
209 -lboost_filesystem -lboost_system
210
211 ##### gtest-nux ######
212@@ -98,6 +100,7 @@
213 -DDATADIR=\""$(datadir)"\" \
214 -DG_LOG_DOMAIN=\"NuxTests\" \
215 -DTESTDIR=\""$(top_srcdir)/tests"\" \
216+ $(GMOCK_CPPFLAGS) $(GTEST_CPPFLAGS) \
217 $(GCC_TESTS_FLAGS) \
218 $(NUX_CORE_CFLAGS) \
219 $(NUX_EXAMPLES_CFLAGS) \
220@@ -114,7 +117,7 @@
221 libgtest.a
222
223 gtest_nux_LDFLAGS = \
224- -lpthread -lgmock \
225+ -lpthread \
226 -lboost_filesystem -lboost_system
227
228 ##### gtest-nux-slow ######
229@@ -141,6 +144,7 @@
230 -DDATADIR=\""$(datadir)"\" \
231 -DG_LOG_DOMAIN=\"NuxTests\" \
232 -DTESTDIR=\""$(top_srcdir)/tests"\" \
233+ $(GMOCK_CPPFLAGS) $(GTEST_CPPFLAGS) \
234 $(GCC_TESTS_FLAGS) \
235 $(NUX_CORE_CFLAGS) \
236 $(NUX_EXAMPLES_CFLAGS) \
237@@ -157,7 +161,7 @@
238 libgtest.a
239
240 gtest_nux_slow_LDFLAGS = \
241- -lpthread -lgmock \
242+ -lpthread \
243 -lboost_filesystem -lboost_system
244
245 ##### gtest-nuxgraphics ######
246@@ -175,6 +179,7 @@
247 -DDATADIR=\""$(datadir)"\" \
248 -DG_LOG_DOMAIN=\"NuxTests\" \
249 -DTESTDIR=\""$(top_srcdir)/tests"\" \
250+ $(GMOCK_CPPFLAGS) $(GTEST_CPPFLAGS) \
251 $(GCC_TESTS_FLAGS) \
252 $(NUX_CORE_CFLAGS) \
253 $(NUX_EXAMPLES_CFLAGS) \
254@@ -188,9 +193,6 @@
255 $(NUX_LIBS) \
256 libgtest.a
257
258-gtest_nuxgraphics_LDFLAGS = \
259- -lgmock
260-
261 TestFlags = -I$(srcdir) \
262 -I$(top_srcdir) \
263 -DPREFIX=\""$(prefix)"\" \

Subscribers

People subscribed via source and target branches