ADD_DEFINITIONS(-Wall -Werror)
ENDIF ("CMAKE_C_COMPILER_ID" MATCHES "^GNU$")
+DEFINE_PROPERTY(GLOBAL
+ PROPERTY ALL_TESTS
+ BRIEF_DOCS "Test targets to be run by run_all_tests"
+ FULL_DOCS "Test targets to be run by run_all_tests")
+
add_subdirectory(libarchive)
add_subdirectory(tar)
add_subdirectory(cpio)
+# This doesn't quite work and I don't understand why: the dependent
+# tests do get run, but the final invocation of run_all_tests chokes.
+# (At least on FreeBSD; I'll have to test on VS and MinGW and see what
+# happens there.)
+IF(ENABLE_TEST)
+GET_PROPERTY(TESTS GLOBAL PROPERTY ALL_TESTS)
+ADD_CUSTOM_TARGET(run_all_tests DEPENDS ${TESTS})
+ENDIF(ENABLE_TEST)
#
ADD_EXECUTABLE(bsdcpio_test ${bsdcpio_test_SOURCES})
SET_PROPERTY(TARGET bsdcpio_test PROPERTY COMPILE_DEFINITIONS LIST_H)
+
+ # ADD_TEST() for each separate test
SET(num 0)
FOREACH(test ${bsdcpio_test_SOURCES})
IF(test MATCHES "^test_[^/]+[.]c$")
MATH(EXPR num "${num} + 1")
ENDIF(test MATCHES "^test_[^/]+[.]c$")
ENDFOREACH(test)
+
+ #
+ # Experimental new test handling
+ #
+ ADD_CUSTOM_TARGET(run_bsdcpio_test
+ DEPENDS bsdcpio_test bsdcpio
+ COMMAND bsdcpio_test -v -p ${BSDCPIO} -r ${CMAKE_CURRENT_SOURCE_DIR})
+
+ SET_PROPERTY(GLOBAL APPEND PROPERTY ALL_TESTS run_bsdcpio_test)
ENDIF(ENABLE_CPIO AND ENABLE_TEST)
TARGET_LINK_LIBRARIES(libarchive_test ${ADDITIONAL_LIBS})
SET_PROPERTY(TARGET libarchive_test PROPERTY COMPILE_DEFINITIONS
LIBARCHIVE_STATIC LIST_H)
+
+ # Register ADD_TEST() for each separate test
SET(num 0)
FOREACH(test ${libarchive_test_SOURCES})
IF(test MATCHES "^test_[^/]+[.]c$")
MATH(EXPR num "${num} + 1")
ENDIF(test MATCHES "^test_[^/]+[.]c$")
ENDFOREACH(test)
+
+
+ #
+ # Experimental new test handling
+ #
+ ADD_CUSTOM_TARGET(run_libarchive_test
+ DEPENDS libarchive_test
+ COMMAND libarchive_test -v -r ${CMAKE_CURRENT_SOURCE_DIR})
+
+ SET_PROPERTY(GLOBAL APPEND PROPERTY ALL_TESTS run_libarchive_test)
ENDIF(ENABLE_TEST)
#
ADD_EXECUTABLE(bsdtar_test ${bsdtar_test_SOURCES})
SET_PROPERTY(TARGET bsdtar_test PROPERTY COMPILE_DEFINITIONS LIST_H)
+
+ # ADD_TEST() for each separate test
SET(num 0)
FOREACH(test ${bsdtar_test_SOURCES})
IF(test MATCHES "^test_[^/]+[.]c$")
MATH(EXPR num "${num} + 1")
ENDIF(test MATCHES "^test_[^/]+[.]c$")
ENDFOREACH(test)
+
+ #
+ # Experimental new test handling
+ #
+ ADD_CUSTOM_TARGET(run_bsdtar_test
+ DEPENDS bsdtar_test bsdtar
+ COMMAND bsdtar_test -v -p ${BSDTAR} -r ${CMAKE_CURRENT_SOURCE_DIR})
+
+ SET_PROPERTY(GLOBAL APPEND PROPERTY ALL_TESTS run_bsdtar_test)
ENDIF (ENABLE_TAR AND ENABLE_TEST)