Files
libgphoto2/tests/Makefile.am
Hans Ulrich Niedermann eef3638d22 tests: add pedantic compile tests for -std={c2x,c++20}
Add a pedantic C compile test for c2x in addition to
the existing ones for c90, c99, and c11.

Add a pedantic C++ compile test for c++20 in addition to
the existing ones for c++98, c++11, c++14, and c++17.
2021-11-03 21:18:55 +01:00

217 lines
7.3 KiB
Makefile

########################################################################
# Housekeeping
########################################################################
EXTRA_PROGRAMS =
check_PROGRAMS =
TESTS =
INSTALL_TESTS =
noinst_PROGRAMS =
########################################################################
# Set up test environment
########################################################################
# Now that we build all the camlibs in one directory, we can run our checks
# with CAMLIBS set to the camlib build directory.
TESTS_ENVIRONMENT = env \
CAMLIBS="$(top_builddir)/camlibs"
# After installation, this will be CAMLIBS = $(DESTDIR)$(camlibdir)
INSTALL_TESTS_ENVIRONMENT = env \
CAMLIBS="$(DESTDIR)$(camlibdir)" \
LD_LIBRARY_PATH="$(DESTDIR)$(libdir)$${LD_LIBRARY_PATH+:$${LD_LIBRARY_PATH}}"
########################################################################
# Define test programs
########################################################################
# Default CPPFLAGS to use
AM_CPPFLAGS += -I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/libgphoto2_port
# Test endianness conversions
TESTS += test-endian
check_PROGRAMS += test-endian
test_endian_SOURCES = test-endian.c
test_endian_LDADD = \
$(top_builddir)/libgphoto2/libgphoto2.la \
$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
$(LIBLTDL) \
$(LIBEXIF_LIBS) \
$(INTLLIBS)
# Print the libgphoto2 version information for this libgphoto2 build
noinst_PROGRAMS += print-libgphoto2-version
print_libgphoto2_version_SOURCES = print-libgphoto2-version.c
print_libgphoto2_version_LDADD =
print_libgphoto2_version_LDADD += $(top_builddir)/libgphoto2/libgphoto2.la
print_libgphoto2_version_LDADD += $(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la
print_libgphoto2_version_LDADD += $(LIBLTDL)
print_libgphoto2_version_LDADD += $(LIBEXIF_LIBS)
print_libgphoto2_version_LDADD += $(INTLLIBS)
# Test basic libgphoto2 functionality
noinst_PROGRAMS += test-gphoto2
test_gphoto2_SOURCES = test-gphoto2.c
test_gphoto2_LDADD = \
$(top_builddir)/libgphoto2/libgphoto2.la \
$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
$(LIBLTDL) \
$(LIBEXIF_LIBS) \
$(INTLLIBS)
# Test gp_filesystem_* functions
noinst_PROGRAMS += test-filesys
test_filesys_SOURCES = test-filesys.c
test_filesys_LDADD = \
$(top_builddir)/libgphoto2/libgphoto2.la \
$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
$(LIBLTDL) \
$(LIBEXIF_LIBS) \
$(INTLLIBS)
# Print a list of all cameras supported by this build of libgphoto2
TESTS += test-camera-list
INSTALL_TESTS += test-camera-list
check_PROGRAMS += test-camera-list
test_camera_list_SOURCES = test-camera-list.c
test_camera_list_LDADD = \
$(top_builddir)/libgphoto2/libgphoto2.la \
$(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la \
$(LIBLTDL) \
$(LIBEXIF_LIBS) \
$(INTLLIBS)
########################################################################
# Test pedantic compilation for multiple language standard
########################################################################
generic_pedantic_cppflags =
generic_pedantic_cppflags += -I$(top_srcdir)/libgphoto2_port
generic_pedantic_cppflags += -I$(top_srcdir)
if GP_HAVE_PEDANTIC_FLAGS_C90
TESTS += test-pedantic-c90
check_PROGRAMS += test-pedantic-c90
endif
EXTRA_PROGRAMS += test-pedantic-c90
test_pedantic_c90_SOURCES = test-pedantic-compilation.c
test_pedantic_c90_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_c90_CFLAGS = $(GP_PEDANTIC_CFLAGS_C90)
test_pedantic_c90_LDADD =
test_pedantic_c90_LDFLAGS =
if GP_HAVE_PEDANTIC_FLAGS_C99
TESTS += test-pedantic-c99
check_PROGRAMS += test-pedantic-c99
endif
EXTRA_PROGRAMS += test-pedantic-c99
test_pedantic_c99_SOURCES = test-pedantic-compilation.c
test_pedantic_c99_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_c99_CFLAGS = $(GP_PEDANTIC_CFLAGS_C99)
test_pedantic_c99_LDADD =
test_pedantic_c99_LDFLAGS =
if GP_HAVE_PEDANTIC_FLAGS_C11
TESTS += test-pedantic-c11
check_PROGRAMS += test-pedantic-c11
endif
EXTRA_PROGRAMS += test-pedantic-c11
test_pedantic_c11_SOURCES = test-pedantic-compilation.c
test_pedantic_c11_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_c11_CFLAGS = $(GP_PEDANTIC_CFLAGS_C11)
test_pedantic_c11_LDADD =
test_pedantic_c11_LDFLAGS =
if GP_HAVE_PEDANTIC_FLAGS_C2X
TESTS += test-pedantic-c2x
check_PROGRAMS += test-pedantic-c2x
endif
EXTRA_PROGRAMS += test-pedantic-c2x
test_pedantic_c2x_SOURCES = test-pedantic-compilation.c
test_pedantic_c2x_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_c2x_CFLAGS = $(GP_PEDANTIC_CFLAGS_C2X)
test_pedantic_c2x_LDADD =
test_pedantic_c2x_LDFLAGS =
if HAVE_CXX
if GP_HAVE_PEDANTIC_FLAGS_CXX98
TESTS += test-pedantic-cxx98
check_PROGRAMS += test-pedantic-cxx98
endif
endif
EXTRA_PROGRAMS += test-pedantic-cxx98
test_pedantic_cxx98_SOURCES = test-pedantic-compilation.cxx
test_pedantic_cxx98_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_cxx98_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX98)
test_pedantic_cxx98_LDADD =
test_pedantic_cxx98_LDFLAGS =
if HAVE_CXX
if GP_HAVE_PEDANTIC_FLAGS_CXX11
TESTS += test-pedantic-cxx11
check_PROGRAMS += test-pedantic-cxx11
endif
endif
EXTRA_PROGRAMS += test-pedantic-cxx11
test_pedantic_cxx11_SOURCES = test-pedantic-compilation.cxx
test_pedantic_cxx11_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_cxx11_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX11)
test_pedantic_cxx11_LDADD =
test_pedantic_cxx11_LDFLAGS =
if HAVE_CXX
if GP_HAVE_PEDANTIC_FLAGS_CXX14
TESTS += test-pedantic-cxx14
check_PROGRAMS += test-pedantic-cxx14
endif
endif
EXTRA_PROGRAMS += test-pedantic-cxx14
test_pedantic_cxx14_SOURCES = test-pedantic-compilation.cxx
test_pedantic_cxx14_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_cxx14_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX14)
test_pedantic_cxx14_LDADD =
test_pedantic_cxx14_LDFLAGS =
if HAVE_CXX
if GP_HAVE_PEDANTIC_FLAGS_CXX17
TESTS += test-pedantic-cxx17
check_PROGRAMS += test-pedantic-cxx17
endif
endif
EXTRA_PROGRAMS += test-pedantic-cxx17
test_pedantic_cxx17_SOURCES = test-pedantic-compilation.cxx
test_pedantic_cxx17_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_cxx17_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX17)
test_pedantic_cxx17_LDADD =
test_pedantic_cxx17_LDFLAGS =
if HAVE_CXX
if GP_HAVE_PEDANTIC_FLAGS_CXX20
TESTS += test-pedantic-cxx20
check_PROGRAMS += test-pedantic-cxx20
endif
endif
EXTRA_PROGRAMS += test-pedantic-cxx20
test_pedantic_cxx20_SOURCES = test-pedantic-compilation.cxx
test_pedantic_cxx20_CPPFLAGS = $(generic_pedantic_cppflags)
test_pedantic_cxx20_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX20)
test_pedantic_cxx20_LDADD =
test_pedantic_cxx20_LDFLAGS =
########################################################################
# Implement the checks for the installed library
########################################################################
include $(top_srcdir)/installcheck.mk