[Spice-devel] [spice-streaming-agent PATCH V2] catch: check for any of catch and catch2
Frediano Ziglio
fziglio at redhat.com
Thu Jan 31 18:05:55 UTC 2019
> Catch2 is now in upstream and Fedora (since Fedora 27)
>
> Signed-off-by: Uri Lublin <uril at redhat.com>
> ---
>
> Since v1:
> - check both catch2 and catch (in v1 only catch2 was checked)
>
> Poeple may find the indentation in configure.ac a bit confusing
> (the second AC_CHECK_HEADER, is in the else block of the first,
> and not in the else block of AS_IF). I think it's easy to see
> that way that the only difference between catch2 and catch.
> Let me know if it's important and I'll change the indentation.
>
> ---
> configure.ac | 9 +++++++--
> src/unittests/Makefile.am | 1 +
> src/unittests/test-mjpeg-fallback.cpp | 2 +-
> src/unittests/test-stream-port.cpp | 2 +-
> 4 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index c259f7e..9f4fd22 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -119,9 +119,14 @@ case "$enable_tests" in
> *) AC_MSG_ERROR([bad value ${enable_tests} for enable-tests option]) ;;
> esac
> AS_IF([test "x$enable_tests" != "xno"],
> - [AC_CHECK_HEADER([catch/catch.hpp],have_check="yes",)])
> + [AC_CHECK_HEADER([catch2/catch.hpp],
> CATCH_CFLAGS=-I/usr/include/catch2,
> + [AC_CHECK_HEADER([catch/catch.hpp],
> CATCH_CFLAGS=-I/usr/include/catch)])])
These checks assume that if the header is found it must be under /usr/include
which is not the case. User can install "manually" catch and pass CPPFLAGS
options for instance.
It's a pity that AC_CHECK_HEADER does not define where it found that header
but probably it just pass some flags to the compiler and let the compiler
find the header.
> +
> +AC_SUBST([CATCH_CFLAGS])
> +AS_IF([test "x$CATCH_CFLAGS" != "x"],
> + [have_check="yes"])
> AS_IF([test "x$enable_tests" = "xyes" && test "x$have_check" != "xyes"],
> - [AC_MSG_ERROR([Could not find Catch dependency header
> (catch/catch.hpp)])])
> + [AC_MSG_ERROR([Could not find Catch dependency header (catch.hpp)])])
> AM_CONDITIONAL([ENABLE_TESTS], [test "x$have_check" = "xyes"])
>
> AC_DEFINE_DIR([BINDIR], [bindir], [Where binaries are installed.])
> diff --git a/src/unittests/Makefile.am b/src/unittests/Makefile.am
> index 8ce1f7a..cce546d 100644
> --- a/src/unittests/Makefile.am
> +++ b/src/unittests/Makefile.am
> @@ -7,6 +7,7 @@ AM_CPPFLAGS = \
> -I$(top_srcdir)/src/unittests \
> $(DRM_CFLAGS) \
> $(SPICE_PROTOCOL_CFLAGS) \
> + $(CATCH_CFLAGS) \
> $(NULL)
>
> AM_CFLAGS = \
> diff --git a/src/unittests/test-mjpeg-fallback.cpp
> b/src/unittests/test-mjpeg-fallback.cpp
> index e39dc49..a8d2cef 100644
> --- a/src/unittests/test-mjpeg-fallback.cpp
> +++ b/src/unittests/test-mjpeg-fallback.cpp
> @@ -1,5 +1,5 @@
> #define CATCH_CONFIG_MAIN
> -#include "catch/catch.hpp"
> +#include <catch.hpp>
>
> #include "mjpeg-fallback.hpp"
>
> diff --git a/src/unittests/test-stream-port.cpp
> b/src/unittests/test-stream-port.cpp
> index e7b7b89..01e3820 100644
> --- a/src/unittests/test-stream-port.cpp
> +++ b/src/unittests/test-stream-port.cpp
> @@ -5,7 +5,7 @@
> */
>
> #define CATCH_CONFIG_MAIN
> -#include <catch/catch.hpp>
> +#include <catch.hpp>
> #include <sys/socket.h>
> #include <signal.h>
>
Beside that patch seems fine to me.
What about something like this: https://paste.fedoraproject.org/paste/cPE3WoGBXKSuRLk1XYriIw ?
Frediano
More information about the Spice-devel
mailing list