diff --git a/.travis.yml b/.travis.yml index 2fd73c18b..f3c017ff6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -96,6 +96,7 @@ script: - if [[ "$ARCH" != *-android && "$ARCH" != html5 ]]; then pkg-config --static --libs raylib; nm -g release/libraylib.a | grep glfwGetProcAddress || (echo "libraylib.a doesn't contain GLFW symbols! Aborting..." && false); + ctest --output-on-failure; fi deploy: diff --git a/CMakeLists.txt b/CMakeLists.txt index 34411b463..a61229ab2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,3 +50,5 @@ endif() if (${BUILD_GAMES}) add_subdirectory(games) endif() + +enable_testing() diff --git a/cmake/test-pkgconfig.sh b/cmake/test-pkgconfig.sh new file mode 100755 index 000000000..ccbdfb652 --- /dev/null +++ b/cmake/test-pkgconfig.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Test if including/linking/running an installed raylib works + +set -x +export LD_RUN_PATH=/usr/local/lib + +CFLAGS="-Wall -Wextra -Werror $CFLAGS" +if [ "$ARCH" = "i386" ]; then +CFLAGS="-m32 $CLFAGS" +fi + +cat << EOF | ${CC:-cc} -otest -xc - $(pkg-config --libs --cflags $@ raylib.pc) $CFLAGS && exec ./test +#include +#include + +int main(void) +{ + int num = GetRandomValue(42, 1337); + return 42 <= num && num <= 1337 ? EXIT_SUCCESS : EXIT_FAILURE; +} +EOF diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c2999c417..333bcf1d9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -144,6 +144,8 @@ if(${SHARED}) PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) endif() + + add_test("pkg-config" ${PROJECT_SOURCE_DIR}/../cmake/test-pkgconfig.sh) endif(${SHARED}) if(${STATIC}) @@ -167,6 +169,8 @@ if(${STATIC}) ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) + + add_test("pkg-config--static" ${PROJECT_SOURCE_DIR}/../cmake/test-pkgconfig.sh --static) endif(${STATIC}) configure_file(../raylib.pc.in raylib.pc @ONLY) @@ -203,3 +207,5 @@ SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/../LICENSE.md") SET(CPACK_PACKAGE_FILE_NAME "raylib-${PROJECT_VERSION}$ENV{RAYLIB_PACKAGE_SUFFIX}") SET(CPACK_GENERATOR "ZIP;TGZ") # Remove this, if you want the NSIS installer on Windows include(CPack) + +enable_testing()