Merge pull request #58 from tusharpm/master

Add travis-ci integration
This commit is contained in:
Michele Caini 2016-09-17 19:56:06 +02:00 committed by GitHub
commit 682246d2a1
7 changed files with 108 additions and 13 deletions

38
.travis.yml Normal file
View File

@ -0,0 +1,38 @@
os:
- linux
matrix:
include:
- os: osx
osx_image: xcode7.3
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.8
packages:
- gcc-5
- g++-5
- clang-3.8
language: cpp
compiler:
- gcc
- clang
before_install: ./travis.sh
install:
- if [ "$CXX" = "g++" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export CXX="g++-5" CC="gcc-5"; fi
- if [ "$CXX" = "clang++" ] && [ "$TRAVIS_OS_NAME" = "linux" ]; then export CXX="clang++-3.8" CC="clang-3.8"; fi
- echo ${PATH}
- echo ${CXX}
- ${CXX} --version
- ${CXX} -v
- cmake --version
before_script: ./deps.sh
script: mkdir -p build && cd build && cmake .. && make && make test

View File

@ -92,6 +92,7 @@ find_package(UV REQUIRED)
find_package(Threads REQUIRED)
find_package(GoogleTest)
find_package(Doxygen 1.8)
find_package(LibRt)
#
# Referenced directories and targets

View File

@ -2,6 +2,8 @@
# uvw
[![Build Status](https://travis-ci.org/skypjack/uvw.svg?branch=master)](https://travis-ci.org/skypjack/uvw)
# Introduction
`uvw` is a header-only, event based, tiny and easy to use *libuv* wrapper in modern C++.<br/>

View File

@ -0,0 +1,31 @@
# FindLibRt
# --------
#
# Find the native realtime includes and library.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables:
#
# ::
#
# LIBRT_INCLUDE_DIRS - where to find time.h, etc.
# LIBRT_LIBRARIES - List of libraries when using librt.
# LIBRT_FOUND - True if realtime library found.
#
# Hints
# ^^^^^
#
# A user may set ``LIBRT_ROOT`` to a realtime installation root to tell this
# module where to look.
find_path(LIBRT_INCLUDE_DIRS
NAMES time.h
PATHS ${LIBRT_ROOT}/include/
)
find_library(LIBRT_LIBRARIES rt)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibRt DEFAULT_MSG LIBRT_LIBRARIES LIBRT_INCLUDE_DIRS)
mark_as_advanced(LIBRT_INCLUDE_DIRS LIBRT_LIBRARIES)

View File

@ -15,9 +15,16 @@ set(
COMMON_LINK_LIBS
${CMAKE_THREAD_LIBS_INIT}
${GOOGLETEST_LIBRARIES}
${UV_LIBRARIES}
${UV_STATIC_LIBRARY}
)
if(${LIBRT_FOUND})
list(APPEND COMMON_LINK_LIBS ${LIBRT_LIBRARIES})
endif(${LIBRT_FOUND})
add_library(odr OBJECT odr.cpp)
target_include_directories(odr PRIVATE ${COMMON_INCLUDE_DIRS})
# List of available targets
set(TARGET_MAIN main)
@ -33,7 +40,7 @@ set(TARGET_WORK work)
# Test TARGET_MAIN
set(TARGET_MAIN_SOURCES odr.cpp main.cpp)
set(TARGET_MAIN_SOURCES $<TARGET_OBJECTS:odr> main.cpp)
add_executable(${TARGET_MAIN} ${TARGET_MAIN_SOURCES})
target_include_directories(${TARGET_MAIN} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_MAIN} PRIVATE ${COMMON_LINK_LIBS})
@ -41,7 +48,7 @@ add_test(NAME ${TARGET_MAIN} COMMAND ${TARGET_MAIN})
# Test TARGET_ASYNC
set(TARGET_ASYNC_SOURCES odr.cpp uvw/async.cpp)
set(TARGET_ASYNC_SOURCES $<TARGET_OBJECTS:odr> uvw/async.cpp)
add_executable(${TARGET_ASYNC} ${TARGET_ASYNC_SOURCES})
target_include_directories(${TARGET_ASYNC} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_ASYNC} PRIVATE ${COMMON_LINK_LIBS})
@ -49,7 +56,7 @@ add_test(NAME ${TARGET_ASYNC} COMMAND ${TARGET_ASYNC})
# Test TARGET_CHECK
set(TARGET_CHECK_SOURCES odr.cpp uvw/check.cpp)
set(TARGET_CHECK_SOURCES $<TARGET_OBJECTS:odr> uvw/check.cpp)
add_executable(${TARGET_CHECK} ${TARGET_CHECK_SOURCES})
target_include_directories(${TARGET_CHECK} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_CHECK} PRIVATE ${COMMON_LINK_LIBS})
@ -57,7 +64,7 @@ add_test(NAME ${TARGET_CHECK} COMMAND ${TARGET_CHECK})
# Test TARGET_EMITTER
set(TARGET_EMITTER_SOURCES odr.cpp uvw/emitter.cpp)
set(TARGET_EMITTER_SOURCES $<TARGET_OBJECTS:odr> uvw/emitter.cpp)
add_executable(${TARGET_EMITTER} ${TARGET_EMITTER_SOURCES})
target_include_directories(${TARGET_EMITTER} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_EMITTER} PRIVATE ${COMMON_LINK_LIBS})
@ -65,7 +72,7 @@ add_test(NAME ${TARGET_EMITTER} COMMAND ${TARGET_EMITTER})
# Test TARGET_IDLE
set(TARGET_IDLE_SOURCES odr.cpp uvw/idle.cpp)
set(TARGET_IDLE_SOURCES $<TARGET_OBJECTS:odr> uvw/idle.cpp)
add_executable(${TARGET_IDLE} ${TARGET_IDLE_SOURCES})
target_include_directories(${TARGET_IDLE} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_IDLE} PRIVATE ${COMMON_LINK_LIBS})
@ -73,7 +80,7 @@ add_test(NAME ${TARGET_IDLE} COMMAND ${TARGET_IDLE})
# Test TARGET_LOOP
set(TARGET_LOOP_SOURCES odr.cpp uvw/loop.cpp)
set(TARGET_LOOP_SOURCES $<TARGET_OBJECTS:odr> uvw/loop.cpp)
add_executable(${TARGET_LOOP} ${TARGET_LOOP_SOURCES})
target_include_directories(${TARGET_LOOP} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_LOOP} PRIVATE ${COMMON_LINK_LIBS})
@ -81,7 +88,7 @@ add_test(NAME ${TARGET_LOOP} COMMAND ${TARGET_LOOP})
# Test TARGET_PREPARE
set(TARGET_PREPARE_SOURCES odr.cpp uvw/prepare.cpp)
set(TARGET_PREPARE_SOURCES $<TARGET_OBJECTS:odr> uvw/prepare.cpp)
add_executable(${TARGET_PREPARE} ${TARGET_PREPARE_SOURCES})
target_include_directories(${TARGET_PREPARE} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_PREPARE} PRIVATE ${COMMON_LINK_LIBS})
@ -89,7 +96,7 @@ add_test(NAME ${TARGET_PREPARE} COMMAND ${TARGET_PREPARE})
# Test TARGET_SIGNAL
set(TARGET_SIGNAL_SOURCES odr.cpp uvw/signal.cpp)
set(TARGET_SIGNAL_SOURCES $<TARGET_OBJECTS:odr> uvw/signal.cpp)
add_executable(${TARGET_SIGNAL} ${TARGET_SIGNAL_SOURCES})
target_include_directories(${TARGET_SIGNAL} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_SIGNAL} PRIVATE ${COMMON_LINK_LIBS})
@ -97,7 +104,7 @@ add_test(NAME ${TARGET_SIGNAL} COMMAND ${TARGET_SIGNAL})
# Test TARGET_TIMER
set(TARGET_TIMER_SOURCES odr.cpp uvw/timer.cpp)
set(TARGET_TIMER_SOURCES $<TARGET_OBJECTS:odr> uvw/timer.cpp)
add_executable(${TARGET_TIMER} ${TARGET_TIMER_SOURCES})
target_include_directories(${TARGET_TIMER} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_TIMER} PRIVATE ${COMMON_LINK_LIBS})
@ -105,7 +112,7 @@ add_test(NAME ${TARGET_TIMER} COMMAND ${TARGET_TIMER})
# Test TARGET_WORK
set(TARGET_WORK_SOURCES odr.cpp uvw/work.cpp)
set(TARGET_WORK_SOURCES $<TARGET_OBJECTS:odr> uvw/work.cpp)
add_executable(${TARGET_WORK} ${TARGET_WORK_SOURCES})
target_include_directories(${TARGET_WORK} PRIVATE ${COMMON_INCLUDE_DIRS})
target_link_libraries(${TARGET_WORK} PRIVATE ${COMMON_LINK_LIBS})

View File

@ -10,9 +10,9 @@ TEST(Signal, Fake) {
handle->on<uvw::ErrorEvent>(l);
handle->on<uvw::CheckEvent>(l);
handle->start(42);
handle->start(2);
ASSERT_EQ(42, handle->signal());
ASSERT_EQ(2, handle->signal());
handle->stop();
handle->close();

16
travis.sh Executable file
View File

@ -0,0 +1,16 @@
#!/usr/bin/env bash
USER_PATH_DIR=~/bin
TEMP_DIR=~/.cmake
mkdir -p ${USER_PATH_DIR}
mkdir -p ${TEMP_DIR}
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
curl -s https://cmake.org/files/v3.6/cmake-3.6.2-Linux-x86_64.tar.gz | tar -xz -C ${TEMP_DIR}
ln -s ${TEMP_DIR}/cmake-3.6.2-Linux-x86_64/bin/cmake ${USER_PATH_DIR}
fi
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
curl -s https://cmake.org/files/v3.6/cmake-3.6.2-Darwin-x86_64.tar.gz | tar -xz -C ${TEMP_DIR}
"${TEMP_DIR}/cmake-3.6.2-Darwin-x86_64/CMake.app/Contents/bin/cmake-gui" --install=${USER_PATH_DIR}
fi