Skip to content

Commit 4e4efcd

Browse files
committed
ci: switch to trusty image
1 parent 97a71cb commit 4e4efcd

8 files changed

+82
-63
lines changed

.gitignore

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
build
2-
.idea
1+
.DS_Store
2+
build/
3+
.idea/
4+
.vscode/
5+
6+
doc/site/
7+
doc/doxygen/
8+
39
*.pyc
410
compile_commands.json
511
CMakeLists.txt.user
612
cppcheck*
713
report
814
utils/release
9-
.vscode
10-
doc/site
11-
doc/doxygen
1215
doc/all.xml
1316
reference.md

.travis.yml

+22-30
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,26 @@
11
language: c++
2+
os: linux
3+
dist: trusty
4+
sudo: required
25

3-
os:
4-
- linux
6+
matrix:
7+
include:
8+
- compiler: gcc
9+
env: RPCLIB_CXX_STANDARD=11 BUILD_TYPE=Release COVERAGE="ON"
10+
- compiler: gcc
11+
env: RPCLIB_CXX_STANDARD=14 BUILD_TYPE=Release COVERAGE="OFF"
12+
- compiler: clang
13+
env: RPCLIB_CXX_STANDARD=11 BUILD_TYPE=Release COVERAGE="OFF"
14+
- compiler: clang
15+
env: RPCLIB_CXX_STANDARD=14 BUILD_TYPE=Release COVERAGE="OFF"
516

6-
env:
7-
matrix:
8-
- RPCLIB_CXX_STANDARD=14 BUILD_TYPE=Release
9-
- RPCLIB_CXX_STANDARD=11 BUILD_TYPE=Release
10-
11-
compiler:
12-
- gcc
13-
- clang
14-
15-
addons:
16-
apt:
17-
sources:
18-
- llvm-toolchain-precise-3.8
19-
- ubuntu-toolchain-r-test
20-
- george-edison55-precise-backports
21-
packages:
22-
- libsfml-dev
23-
- g++-5
24-
- gcc-5
25-
- clang-3.8
26-
- cmake
27-
- cmake-data
17+
before_install:
18+
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
19+
- sudo apt-get update -qq
2820

2921
install:
30-
- if [ "$CXX" == "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi
31-
- if [ "$CXX" == "clang++" ]; then export CXX="clang++-3.8" CC="clang-3.8"; fi
32-
- pip install --user cpp-coveralls
22+
- sudo apt-get install -qq g++-5
23+
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 90
3324
- pip install --user conan
3425
- pip install --user requests==2.5.3
3526
- conan remote add conan-community https://api.bintray.com/conan/conan-community/conan
@@ -38,10 +29,11 @@ script:
3829
- mkdir build ; cd build
3930
- conan install .. -r conan-community
4031
- . ./activate.sh
41-
- cmake -DRPCLIB_ENABLE_COVERAGE=ON -DRPCLIB_BUILD_TESTS=ON -DRPCLIB_CXX_STANDARD=$RPCLIB_CXX_STANDARD -DCMAKE_INSTALL_PREFIX=../install ..
32+
- cmake -DRPCLIB_ENABLE_COVERAGE=$COVERAGE -DRPCLIB_BUILD_TESTS=ON -DRPCLIB_CXX_STANDARD=$RPCLIB_CXX_STANDARD -DCMAKE_INSTALL_PREFIX=../install ..
4233
- cmake --build . --config $BUILD_TYPE
4334
- cmake --build . --target install
4435

4536
after_success:
46-
- ./output/bin/rpc_test
47-
- coveralls --exclude dependencies --exclude test --exclude include/rpc/msgpack --exclude include/rcp/msgpack.hpp --gcov /usr/bin/gcov-5
37+
- ./tests/rpc_test
38+
- lcov --capture --directory . --output-file coverage.info
39+
- bash <(curl -s https://codecov.io/bash)

CMakeLists.txt

+19-22
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
55

66
include(policies)
77
include(msvc_support)
8+
include(coverage)
89

910
#
1011
# Options
@@ -28,9 +29,6 @@ option(RPCLIB_MSVC_STATIC_RUNTIME
2829
"MSVC only: build with /MT instead of /MD"
2930
OFF)
3031

31-
# Perform steps and checks required for MSVC support
32-
rpclib_msvc_support()
33-
3432
#
3533
# Other configuration values
3634
#
@@ -53,6 +51,8 @@ if(NOT ${RPCLIB_CXX_STANDARD} EQUAL 14 AND
5351
message(fatal_error "Unsupported C++ standard: ${RPCLIB_CXX_STANDARD}")
5452
endif()
5553

54+
set(CMAKE_CXX_STANDARD ${RPCLIB_CXX_STANDARD})
55+
5656
#
5757
# Compile & install the library
5858
#
@@ -105,17 +105,13 @@ add_library(${PROJECT_NAME}
105105
${DEP_HEADERS}
106106
${RPCLIB_HEADERS})
107107

108+
# Perform steps and checks required for MSVC support
109+
rpclib_msvc_support()
110+
108111
set(RPCLIB_BUILD_FLAGS "") # reset flags
109112

110-
if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
111-
target_compile_options(${PROJECT_NAME} PUBLIC
112-
-std=c++${RPCLIB_CXX_STANDARD})
113-
if(RPCLIB_ENABLE_COVERAGE)
114-
target_compile_options(${PROJECT_NAME} PRIVATE --coverage -O0 -g)
115-
# yes, this is ugly as "--coverage" is not a library, but a flag.
116-
# however, this does not work with the LINK_FLAGS target property
117-
list(APPEND RPCLIB_DEP_LIBRARIES "--coverage")
118-
endif()
113+
if(RPCLIB_ENABLE_COVERAGE)
114+
enable_coverage(${PROJECT_NAME})
119115
endif()
120116

121117
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
@@ -131,16 +127,17 @@ if (RPCLIB_EXTRA_BUILD_FLAGS)
131127
list(APPEND RPCLIB_BUILD_FLAGS ${RPCLIB_EXTRA_BUILD_FLAGS})
132128
endif()
133129

134-
target_compile_definitions(${PROJECT_NAME} PRIVATE
135-
"${RPCLIB_COMPILE_DEFINITIONS}"
136-
"${RPCLIB_ARCH_DEF}"
137-
"${RPCLIB_OS_DEF}"
138-
"ASIO_STANDALONE"
139-
"RPCLIB_ASIO=clmdep_asio"
140-
"RPCLIB_FMT=clmdep_fmt")
141-
142-
target_compile_definitions(${PROJECT_NAME} PUBLIC
143-
"RPCLIB_MSGPACK=clmdep_msgpack")
130+
target_compile_definitions(${PROJECT_NAME}
131+
PRIVATE
132+
"${RPCLIB_COMPILE_DEFINITIONS}"
133+
"${RPCLIB_ARCH_DEF}"
134+
"ASIO_STANDALONE"
135+
"RPCLIB_ASIO=clmdep_asio"
136+
"RPCLIB_FMT=clmdep_fmt"
137+
PUBLIC
138+
"${RPCLIB_OS_DEF}"
139+
"RPCLIB_MSGPACK=clmdep_msgpack"
140+
)
144141

145142
if(RPCLIB_ENABLE_LOGGING)
146143
target_compile_definitions(${PROJECT_NAME} PRIVATE "RPCLIB_ENABLE_LOGGING")

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# rpclib ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![Build Status](https://travis-ci.org/rpclib/rpclib.svg?branch=master)](https://travis-ci.org/rpclib/rpclib) [![Build status](https://ci.appveyor.com/api/projects/status/9lft2tlamcox8epq?svg=true)](https://ci.appveyor.com/project/sztomi/callme) [![Coverage Status](https://coveralls.io/repos/github/rpclib/rpclib/badge.svg)](https://coveralls.io/github/rpclib/rpclib?branch=dev) ![Coverity](https://scan.coverity.com/projects/7259/badge.svg?flat=1) [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000)](https://gitter.im/rpclib/Lobby)
2+
# rpclib ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![Build Status](https://travis-ci.org/rpclib/rpclib.svg?branch=master)](https://travis-ci.org/rpclib/rpclib) [![Build status](https://ci.appveyor.com/api/projects/status/9lft2tlamcox8epq?svg=true)](https://ci.appveyor.com/project/sztomi/callme) [![Coverage Status](https://img.shields.io/codecov/c/github/rpclib/rpclib/dev.svg)](https://img.shields.io/codecov/c/github/rpclib/rpclib/dev.svg) ![Coverity](https://scan.coverity.com/projects/7259/badge.svg?flat=1) [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000)](https://gitter.im/rpclib/Lobby)
33

44
`rpclib` is a RPC library for C++, providing both a client and server implementation. It is built using modern C++14, and as such, requires a recent compiler. Main highlights:
55

appveyor.yml

+4-5
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ configuration:
1414
environment:
1515
matrix:
1616
- CMAKE_PLATFORM: "Visual Studio 14 2015"
17+
- CMAKE_PLATFORM: "Visual Studio 15 2017"
1718

1819
install: true
1920

@@ -23,8 +24,6 @@ build_script:
2324
- git submodule update --init --recursive
2425
- md build
2526
- cd build
26-
- cmake -DRPCLIB_ENABLE_COVERAGE=ON -DRPCLIB_BUILD_TESTS=ON -G "%CMAKE_PLATFORM%" ..
27-
- set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
28-
- set MSBuildOptions=/v:m /p:Configuration=%Configuration% /logger:%MSBuildLogger%
29-
- msbuild %MSBuildOptions% rpc.sln
30-
- .\output\bin\Release\rpc_test.exe
27+
- cmake -DRPCLIB_BUILD_TESTS=ON -G "%CMAKE_PLATFORM%" ..
28+
- cmake --build . --config %CONFIGURATION%
29+
- .\tests\Release\rpc_test.exe

cmake/coverage.cmake

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function(enable_coverage TARGET)
2+
if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
3+
4+
if(APPLE)
5+
set(COVERAGE_LIB "")
6+
else()
7+
set(COVERAGE_LIB -lgcov)
8+
endif()
9+
10+
set_target_properties(${TARGET}
11+
PROPERTIES
12+
COMPILE_FLAGS --coverage
13+
LINK_FLAGS "${COVERAGE_LIB} --coverage"
14+
)
15+
endif()
16+
endfunction()

codecov.yml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
ignore:
3+
- "include/rpc/msgpack"
4+
- "dependencies"
5+
6+
coverage:
7+
precision: 2

tests/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
include(coverage)
2+
13
set(TEST_PROJECT_NAME ${CMAKE_PROJECT_NAME}_test)
24
set(TEST_SOURCES
35
${RPCLIB_DEPENDENCIES}/src/gmock-gtest-all.cc
@@ -33,3 +35,6 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
3335
-Wno-exit-time-destructors -Wno-switch-enum -Wno-format-nonliteral -Wno-unused-parameter -Wno-disabled-macro-expansion)
3436
endif()
3537

38+
if(RPCLIB_ENABLE_COVERAGE)
39+
enable_coverage(${TEST_PROJECT_NAME})
40+
endif()

0 commit comments

Comments
 (0)