Message ID | 1487784452-7424-1-git-send-email-casantos@datacom.ind.br |
---|---|
State | Rejected, archived |
Headers | show |
Hello, Thanks for this new version, but there's still one thing (the same thing as before) that I don't understand. On Wed, 22 Feb 2017 14:27:32 -0300, Carlos Santos wrote: > +# GTest's CMakeLists.txt uses a tricky logic: > +# - by default sets BUILD_GMOCK to ON and BUILD_GTEST to OFF > +# - if BUILD_GMOCK is ON then builds gmock, which in its turn builds gtest, > +# regardless the value of BUILD_GTEST > +# - otherwise, if BUILD_GTEST is ON then build gtest, only > +# So, to build only gtest we must set BUILD_GTEST to ON and BUILD_GMOCK to OFF > +# to revert the default values. Setting both to ON is not really necessary but > +# describes clearly what we intend to do. Knowing this, why don't you simply do the much more obvious: GTEST_CONF_OPTS += -DBUILD_GTEST=ON ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) GTEST_CONF_OPTS += -DBUILD_GMOCK=ON else GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF endif instead of the very cryptic! > +ifeq ($(BR2_PACKAGE_GTEST_GMOCK),) > +GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF > +GTEST_CONF_OPTS += -DBUILD_GTEST=ON > +endif Thanks, Thomas
[resending, since Zimbra failed to deliver my last message] > From: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com> > To: "Carlos Santos" <casantos@datacom.ind.br> > Cc: buildroot@buildroot.org, "Fabrice Fontaine" <fabrice.fontaine@orange.com>, "Romain Naour" <romain.naour@gmail.com>, > "Yann E. MORIN" <yann.morin.1998@free.fr> > Sent: Sunday, February 26, 2017 11:05:25 AM > Subject: Re: [Buildroot] [PATCH v7] gtest/gmock: bump to version 1.8.0 > Hello, > > Thanks for this new version, but there's still one thing (the same > thing as before) that I don't understand. > > On Wed, 22 Feb 2017 14:27:32 -0300, Carlos Santos wrote: >> +# GTest's CMakeLists.txt uses a tricky logic: >> +# - by default sets BUILD_GMOCK to ON and BUILD_GTEST to OFF >> +# - if BUILD_GMOCK is ON then builds gmock, which in its turn builds gtest, >> +# regardless the value of BUILD_GTEST >> +# - otherwise, if BUILD_GTEST is ON then build gtest, only >> +# So, to build only gtest we must set BUILD_GTEST to ON and BUILD_GMOCK to OFF >> +# to revert the default values. Setting both to ON is not really necessary but >> +# describes clearly what we intend to do. > > Knowing this, why don't you simply do the much more obvious: > > GTEST_CONF_OPTS += -DBUILD_GTEST=ON > > ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) > GTEST_CONF_OPTS += -DBUILD_GMOCK=ON > else > GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF > endif > > instead of the very cryptic! > >> +ifeq ($(BR2_PACKAGE_GTEST_GMOCK),) >> +GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF >> +GTEST_CONF_OPTS += -DBUILD_GTEST=ON >> +endif Because it does not work (try http://patchwork.ozlabs.org/patch/727786/).
Hello, On Mon, 27 Feb 2017 09:31:50 -0300 (BRT), Carlos Santos wrote: > Because it does not work (try http://patchwork.ozlabs.org/patch/727786/). Could you define "does not work" ? Indeed, I applied this version of your patch (v6), and built it with the following configurations: BR2_PACKAGE_GTEST=y # BR2_PACKAGE_GTEST_GMOCK is not set and: BR2_PACKAGE_GTEST=y BR2_PACKAGE_GTEST_GMOCK=y and both built successfully. The first one only installed gtest: >>> gtest release-1.8.0 Installing to staging directory PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/sbin:/home/thomas/projets/buildroot/output/host/usr/bin:/home/thomas/projets/buildroot/output/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/thomas/.rvm/bin:/home/thomas/sys/bin:/home/thomas/.gem/ruby/2.1.0/bin:/home/thomas/.rvm/bin" /usr/bin/make -j5 DESTDIR=/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot install/fast -C /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/ Install the project... -- Install configuration: "Release" -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest.a -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest_main.a -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-test-part.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-typed-test.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-message.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-death-test.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-linked_ptr.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port-arch.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-internal.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-string.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-death-test-internal.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-filepath.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-port.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-printers.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_pred_impl.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-spi.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-printers.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_prod.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h.pump /usr/bin/install -D -m 0644 package/gtest/gtest.pc /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/pkgconfig/gtest.pc # Generate the gtest-config script manually, since the CMake # build system is not doing it. sed 's%@PACKAGE_TARNAME@%gtest%; s%@PACKAGE_VERSION@%release-1.8.0%; s%@prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@exec_prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@libdir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib%; s%@includedir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include%; s%@bindir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin%; s%@PTHREAD_CFLAGS@%%; s%@PTHREAD_LIBS@%-lpthread%;' /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/googletest/scripts/gtest-config.in > /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config chmod +x /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config While the second one installed both gtest and gmock: >>> gtest release-1.8.0 Installing to staging directory PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/sbin:/home/thomas/projets/buildroot/output/host/usr/bin:/home/thomas/projets/buildroot/output/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/thomas/.rvm/bin:/home/thomas/sys/bin:/home/thomas/.gem/ruby/2.1.0/bin:/home/thomas/.rvm/bin" /usr/bin/make -j5 DESTDIR=/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot install/fast -C /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/ Install the project... -- Install configuration: "Release" -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgmock.a -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgmock_main.a -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-nice-strict.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-cardinalities.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-more-matchers.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-nice-strict.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-actions.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-matchers.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-actions.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-more-actions.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-port.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-internal-utils.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-generated-internal-utils.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-generated-internal-utils.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-port.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-generated-actions.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-matchers.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-generated-actions.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-matchers.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-spec-builders.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-actions.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-function-mockers.h.pump -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-matchers.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-function-mockers.h -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest.a -- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest_main.a -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-test-part.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-typed-test.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-message.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-death-test.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-linked_ptr.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port-arch.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h.pump -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-internal.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-string.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h.pump -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-death-test-internal.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-filepath.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h.pump -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-port.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-printers.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_pred_impl.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-spi.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-printers.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_prod.h -- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h.pump /usr/bin/install -D -m 0644 package/gtest/gtest.pc /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/pkgconfig/gtest.pc # Generate the gtest-config script manually, since the CMake # build system is not doing it. sed 's%@PACKAGE_TARNAME@%gtest%; s%@PACKAGE_VERSION@%release-1.8.0%; s%@prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@exec_prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@libdir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib%; s%@includedir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include%; s%@bindir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin%; s%@PTHREAD_CFLAGS@%%; s%@PTHREAD_LIBS@%-lpthread%;' /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/googletest/scripts/gtest-config.in > /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config chmod +x /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config /usr/bin/install -D -m 0644 package/gtest/gmock.pc /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/pkgconfig/gmock.pc What am I missing here ? Thanks, Thomas
> From: "Thomas Petazzoni" <thomas.petazzoni@free-electrons.com> > To: "Carlos Santos" <casantos@datacom.ind.br> > Cc: "Fabrice Fontaine" <fabrice.fontaine@orange.com>, "Romain Naour" <romain.naour@gmail.com>, "Yann E. MORIN" > <yann.morin.1998@free.fr>, buildroot@buildroot.org > Sent: Wednesday, March 1, 2017 7:09:27 PM > Subject: Re: [Buildroot] [PATCH v7] gtest/gmock: bump to version 1.8.0 > Hello, > > On Mon, 27 Feb 2017 09:31:50 -0300 (BRT), Carlos Santos wrote: > >> Because it does not work (try http://patchwork.ozlabs.org/patch/727786/). > > Could you define "does not work" ? Indeed, I applied this version of > your patch (v6), and built it with the following configurations: > > BR2_PACKAGE_GTEST=y > # BR2_PACKAGE_GTEST_GMOCK is not set > > and: > > BR2_PACKAGE_GTEST=y > BR2_PACKAGE_GTEST_GMOCK=y > > and both built successfully. Hum, that's correct. I'm at work now, without access to the machine in which I was running my tests, at home, and can't reproduce the problem that led me to believe that v7 was necessary. Looks like it was just a mistake. Please apply v6 and discard v7. Sorry for the noise.
diff --git a/Config.in.legacy b/Config.in.legacy index 20445b8..cc2ab69 100644 --- a/Config.in.legacy +++ b/Config.in.legacy @@ -143,6 +143,17 @@ comment "----------------------------------------------------" endif ############################################################################### +comment "Legacy options removed in 2017.05" + +config BR2_PACKAGE_GMOCK + bool "gmock removed" + select BR2_LEGACY + select BR2_PACKAGE_GTEST + select BR2_PACKAGE_GTEST_GMOCK + help + GMock is now a suboption of GTest + +############################################################################### comment "Legacy options removed in 2017.02" config BR2_PACKAGE_PERL_DB_FILE diff --git a/DEVELOPERS b/DEVELOPERS index 09a0a6e..752b873 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -286,7 +286,6 @@ N: Carlo Caione <carlo.caione@gmail.com> F: package/sunxi-boards/ N: Carlos Santos <casantos@datacom.ind.br> -F: package/gmock/ F: package/gtest/ F: package/libpam-radius-auth/ F: package/libpam-tacplus/ diff --git a/package/Config.in b/package/Config.in index 0212121..2ed7a08 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1325,7 +1325,6 @@ menu "Other" source "package/gflags/Config.in" source "package/glibmm/Config.in" source "package/glm/Config.in" - source "package/gmock/Config.in" source "package/gmp/Config.in" source "package/gsl/Config.in" source "package/gtest/Config.in" diff --git a/package/gmock/0001-force-use-python2.patch b/package/gmock/0001-force-use-python2.patch deleted file mode 100644 index 5dcb231..0000000 --- a/package/gmock/0001-force-use-python2.patch +++ /dev/null @@ -1,20 +0,0 @@ -Force use of Python 2 even when Python 3 is the default Python interpreter. - -Signed-off-by: Carlos Santos <casantos@datacom.ind.br> - ---- ./gtest/scripts/fuse_gtest_files.py.orig 2013-09-18 14:48:30.000000000 -0300 -+++ ./gtest/scripts/fuse_gtest_files.py 2015-07-22 15:42:53.291591205 -0300 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python2 - # - # Copyright 2009, Google Inc. - # All rights reserved. ---- ./scripts/generator/gmock_gen.py.orig 2013-09-18 14:50:15.000000000 -0300 -+++ ./scripts/generator/gmock_gen.py 2015-07-22 17:06:51.071815634 -0300 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python2 - # - # Copyright 2008 Google Inc. All Rights Reserved. - # diff --git a/package/gmock/Config.in b/package/gmock/Config.in deleted file mode 100644 index ec3eb92..0000000 --- a/package/gmock/Config.in +++ /dev/null @@ -1,32 +0,0 @@ -config BR2_PACKAGE_GMOCK - bool "gmock" - select BR2_PACKAGE_GTEST - depends on BR2_USE_WCHAR - depends on BR2_TOOLCHAIN_HAS_THREADS - depends on BR2_INSTALL_LIBSTDCPP - depends on BR2_USE_MMU # fork() - help - Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s - specifics in mind, Google C++ Mocking Framework (or Google Mock for - short) is a library for writing and using C++ mock classes. - - Google Mock: - - * lets you create mock classes trivially using simple macros, - * supports a rich set of matchers and actions, - * handles unordered, partially ordered, or completely ordered - expectations, - * is extensible by users, and - * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and - Symbian. - - http://code.google.com/p/googlemock/ - - There are both host and target packages. The target one has include - files required to compile the tests and the static libraries required - to link/run them. The host package installs gmock_gen, a Python script - used to generate code mocks. - -comment "gmock needs a toolchain w/ C++, wchar, threads" - depends on BR2_USE_MMU - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP diff --git a/package/gmock/gmock.hash b/package/gmock/gmock.hash deleted file mode 100644 index 2b71739..0000000 --- a/package/gmock/gmock.hash +++ /dev/null @@ -1,2 +0,0 @@ -# Locally computed -sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b gmock-1.7.0.zip diff --git a/package/gmock/gmock.mk b/package/gmock/gmock.mk deleted file mode 100644 index 4f04422..0000000 --- a/package/gmock/gmock.mk +++ /dev/null @@ -1,64 +0,0 @@ -################################################################################ -# -# gmock -# -################################################################################ - -# Make sure this remains the same version as the gtest one -GMOCK_VERSION = 1.7.0 -GMOCK_SOURCE = gmock-$(GMOCK_VERSION).zip -GMOCK_SITE = http://googlemock.googlecode.com/files -GMOCK_INSTALL_STAGING = YES -GMOCK_INSTALL_TARGET = NO -GMOCK_LICENSE = BSD-3c -GMOCK_LICENSE_FILES = LICENSE -GMOCK_DEPENDENCIES = gtest host-gmock - -# GMock 1.7.0 relies on Python 2.7 syntax which is NOT compatible with Python3. -HOST_GMOCK_DEPENDENCIES = host-python -HOST_GMOCK_PYTHONPATH=$(HOST_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages - -# Static linking is required in order to keep the GMock package completely -# separated from GTest. According to GMock's README file: -# -# "Google Mock can be used as a DLL, but the same DLL must contain Google -# Test as well. See Google Test's README file for instructions on how to -# set up necessary compiler settings". -GMOCK_CONF_OPTS = --enable-static --disable-shared - -define GMOCK_EXTRACT_CMDS - $(UNZIP) $(DL_DIR)/$(GMOCK_SOURCE) -d $(BUILD_DIR) -endef - -# We can't use the default rule for autotools-package staging because it fails -# because it tries to rebuild/install gtest stuff and fails after this error: -# "'make install' is dangerous and not supported. Instead, see README for -# how to integrate Google Test into your build system." -define GMOCK_INSTALL_STAGING_CMDS - $(INSTALL) -D -m 0755 $(@D)/lib/.libs/libgmock.a $(STAGING_DIR)/usr/lib/libgmock.a - $(INSTALL) -D -m 0755 $(@D)/lib/.libs/libgmock_main.a $(STAGING_DIR)/usr/lib/libgmock_main.a - $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gmock/ - cp -rp $(@D)/include/gmock/* $(STAGING_DIR)/usr/include/gmock/ - $(INSTALL) -D -m 0755 package/gmock/gmock.pc \ - $(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc -endef - -# Unzipping inside $(@D) and moving everything from the created subdirectory is -# required because unzipping directly in $(BUILD_DIR) would cause host-gmock to -# overwrite the gmock subdir instead of unzipping in a host-gmock subdir. -define HOST_GMOCK_EXTRACT_CMDS - $(UNZIP) $(DL_DIR)/$(GMOCK_SOURCE) -d $(@D) - mv $(@D)/gmock-$(GMOCK_VERSION)/* $(@D) - rmdir $(@D)/gmock-$(GMOCK_VERSION) -endef - -define HOST_GMOCK_INSTALL_CMDS - $(INSTALL) -D -m 0755 $(@D)/scripts/generator/gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen.py - ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen - cp -rp $(@D)/scripts/generator/cpp $(HOST_GMOCK_PYTHONPATH) -endef - -$(eval $(autotools-package)) -# The host package does not build anything, just installs gmock_gen stuff, so -# it does not need to be a host-autotools-package. -$(eval $(host-generic-package)) diff --git a/package/gmock/gmock.pc b/package/gmock/gmock.pc deleted file mode 100644 index 2f90068..0000000 --- a/package/gmock/gmock.pc +++ /dev/null @@ -1,11 +0,0 @@ -prefix=/usr -exec_prefix=${prefix} -libdir=${prefix}/lib/ -includedir=${prefix}/include - -Name: gmock -Description: Google C++ Mocking Framework -Version: 1.7.0 -Libs: -L${libdir} -lgmock -Libs.private: -lpthread -Cflags: -I${includedir} diff --git a/package/gtest/Config.in b/package/gtest/Config.in index 355b736..3f1f385 100644 --- a/package/gtest/Config.in +++ b/package/gtest/Config.in @@ -21,6 +21,34 @@ config BR2_PACKAGE_GTEST https://github.com/google/googletest +if BR2_PACKAGE_GTEST + +config BR2_PACKAGE_GTEST_GMOCK + bool "gmock" + help + Inspired by jMock, EasyMock, and Hamcrest, and designed with + C++'s specifics in mind, Google C++ Mocking Framework (or + Google Mock for short) is a library for writing and using C++ + mock classes. + + Google Mock: + + * lets you create mock classes trivially using simple + macros, supports a rich set of matchers and actions, + * handles unordered, partially ordered, or completely + ordered expectations, + * is extensible by users, and + * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, + and Symbian. + + There are both host and target packages. The target one has + include files required to compile the tests and the static + libraries required to link/run them. The host package installs + gmock_gen, a Python script used to generate code mocks. + +endif # BR2_PACKAGE_GTEST + comment "gtest needs a toolchain w/ C++, wchar, threads" depends on BR2_USE_MMU - depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_INSTALL_LIBSTDCPP diff --git a/package/gtest/gmock.pc b/package/gtest/gmock.pc new file mode 100644 index 0000000..4c72354 --- /dev/null +++ b/package/gtest/gmock.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib/ +includedir=${prefix}/include + +Name: gmock +Description: Google C++ Mocking Framework +Version: 1.8.0 +Libs: -L${libdir} -lgmock +Libs.private: -lpthread +Cflags: -I${includedir} diff --git a/package/gtest/gtest.hash b/package/gtest/gtest.hash index 79e31e4..474008d 100644 --- a/package/gtest/gtest.hash +++ b/package/gtest/gtest.hash @@ -1,2 +1,2 @@ # Locally computed: -sha256 f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc gtest-release-1.7.0.tar.gz +sha256 58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8 gtest-release-1.8.0.tar.gz diff --git a/package/gtest/gtest.mk b/package/gtest/gtest.mk index eb30905..27ead0a 100644 --- a/package/gtest/gtest.mk +++ b/package/gtest/gtest.mk @@ -4,13 +4,29 @@ # ################################################################################ -# Make sure this remains the same version as the gmock one -GTEST_VERSION = release-1.7.0 +GTEST_VERSION = release-1.8.0 GTEST_SITE = $(call github,google,googletest,$(GTEST_VERSION)) GTEST_INSTALL_STAGING = YES GTEST_INSTALL_TARGET = NO GTEST_LICENSE = BSD-3c -GTEST_LICENSE_FILES = LICENSE +GTEST_LICENSE_FILES = googletest/LICENSE + +ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) +GTEST_DEPENDENCIES = host-gtest +endif + +HOST_GTEST_LICENSE = Apache-2.0 +HOST_GTEST_LICENSE_FILES = googlemock/scripts/generator/LICENSE +ifeq ($(BR2_PACKAGE_PYTHON3),y) +HOST_GTEST_PYTHON_VERSION = $(PYTHON3_VERSION_MAJOR) +HOST_GTEST_DEPENDENCIES = host-python3 +else +HOST_GTEST_PYTHON_VERSION = $(PYTHON_VERSION_MAJOR) +HOST_GTEST_DEPENDENCIES = host-python +endif + +HOST_GTEST_GMOCK_PYTHONPATH = \ + $(HOST_DIR)/usr/lib/python$(HOST_GTEST_PYTHON_VERSION)/site-packages # While it is possible to build gtest as shared library, using this gtest shared # library requires to set some special configure option in the project using @@ -21,11 +37,20 @@ GTEST_LICENSE_FILES = LICENSE # the gtest sources. GTEST_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF -define GTEST_INSTALL_STAGING_CMDS - $(INSTALL) -D -m 0755 $(@D)/libgtest.a $(STAGING_DIR)/usr/lib/libgtest.a - $(INSTALL) -D -m 0755 $(@D)/libgtest_main.a $(STAGING_DIR)/usr/lib/libgtest_main.a - $(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/ - cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/ +# GTest's CMakeLists.txt uses a tricky logic: +# - by default sets BUILD_GMOCK to ON and BUILD_GTEST to OFF +# - if BUILD_GMOCK is ON then builds gmock, which in its turn builds gtest, +# regardless the value of BUILD_GTEST +# - otherwise, if BUILD_GTEST is ON then build gtest, only +# So, to build only gtest we must set BUILD_GTEST to ON and BUILD_GMOCK to OFF +# to revert the default values. Setting both to ON is not really necessary but +# describes clearly what we intend to do. +ifeq ($(BR2_PACKAGE_GTEST_GMOCK),) +GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF +GTEST_CONF_OPTS += -DBUILD_GTEST=ON +endif + +define GTEST_INSTALL_MISSING_FILES $(INSTALL) -D -m 0644 package/gtest/gtest.pc \ $(STAGING_DIR)/usr/lib/pkgconfig/gtest.pc # Generate the gtest-config script manually, since the CMake @@ -39,9 +64,29 @@ define GTEST_INSTALL_STAGING_CMDS s%@bindir@%$(STAGING_DIR)/usr/bin%;\ s%@PTHREAD_CFLAGS@%%;\ s%@PTHREAD_LIBS@%-lpthread%;' \ - $(@D)/scripts/gtest-config.in \ + $(@D)/googletest/scripts/gtest-config.in \ > $(STAGING_DIR)/usr/bin/gtest-config chmod +x $(STAGING_DIR)/usr/bin/gtest-config endef +define GTEST_GMOCK_INSTALL_MISSING_FILE + $(INSTALL) -D -m 0644 package/gtest/gmock.pc \ + $(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc +endef + +GTEST_POST_INSTALL_STAGING_HOOKS = GTEST_INSTALL_MISSING_FILES +ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) +GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_GMOCK_INSTALL_MISSING_FILE +endif + +define HOST_GTEST_INSTALL_CMDS + $(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \ + $(HOST_DIR)/usr/bin/gmock_gen + cp -rp $(@D)/googlemock/scripts/generator/cpp \ + $(HOST_GTEST_GMOCK_PYTHONPATH) +endef + $(eval $(cmake-package)) +# The host package does not build anything, just installs gmock_gen stuff, so +# it does not need to be a host-cmake-package. +$(eval $(host-generic-package)) diff --git a/package/gtest/gtest.pc b/package/gtest/gtest.pc index b7a8aa4..594e79d 100644 --- a/package/gtest/gtest.pc +++ b/package/gtest/gtest.pc @@ -5,7 +5,7 @@ includedir=${prefix}/include Name: gtest Description: Google C++ Testing Framework -Version: 1.7.0 +Version: 1.8.0 Libs: -L${libdir} -lgtest Libs.private: -lpthread Cflags: -I${includedir}