cmake: add coveralls support

This commit is contained in:
Hugues Delorme 2015-09-09 17:13:12 +02:00
parent 2cf2751aef
commit 2a65d7b55b
4 changed files with 40 additions and 11 deletions

View File

@ -10,12 +10,20 @@ compiler:
env:
matrix:
- TRAVIS_BUILD_TYPE=Debug TRAVIS_SHARED_LIBS=OFF TRAVIS_STRICT_C90=OFF TRAVIS_MAKE_CHECK=ON
- TRAVIS_BUILD_TYPE=Debug TRAVIS_SHARED_LIBS=ON TRAVIS_STRICT_C90=ON TRAVIS_MAKE_CHECK=ON
- TRAVIS_BUILD_TYPE=Release TRAVIS_SHARED_LIBS=OFF TRAVIS_STRICT_C90=OFF TRAVIS_MAKE_CHECK=OFF
- TRAVIS_BUILD_TYPE=Debug TRAVIS_SHARED_LIBS=OFF TRAVIS_STRICT_C90=OFF TRAVIS_MAKE_CHECK=ON TRAVIS_COVERALLS=ON
- TRAVIS_BUILD_TYPE=Debug TRAVIS_SHARED_LIBS=ON TRAVIS_STRICT_C90=ON TRAVIS_MAKE_CHECK=ON TRAVIS_COVERALLS=OFF
- TRAVIS_BUILD_TYPE=Release TRAVIS_SHARED_LIBS=OFF TRAVIS_STRICT_C90=OFF TRAVIS_MAKE_CHECK=OFF TRAVIS_COVERALLS=OFF
script:
- cmake --version
- if [ "${TRAVIS_COVERALLS}" = "ON" ] \
&& [ "${TRAVIS_OS_NAME}" = "linux" ] \
&& [ "${CC}" = "gcc" ];
then
pip install cpp-coveralls;
else
export TRAVIS_COVERALLS=OFF;
fi
- mkdir build && cd build
- cmake .. -G "Unix Makefiles"
-DCMAKE_DEBUG_POSTFIX=_d
@ -23,10 +31,14 @@ script:
-DGMIO_BUILD_SHARED_LIBS=$TRAVIS_SHARED_LIBS
-DGMIO_BUILD_STRICT_C90=$TRAVIS_STRICT_C90
-DGMIO_BUILD_TESTS_FAKE_SUPPORT=ON
-DGMIO_BUILD_TESTS_COVERALLS=ON
-DCMAKE_INSTALL_PREFIX=../install
- make -j4
- if [ "${TRAVIS_MAKE_CHECK}" = "ON" ]; then
make VERBOSE=1 check;
fi
- if [ "${TRAVIS_MAKE_CHECK}" = "ON" ]; then
make check;
fi
- make install
- if [ "${TRAVIS_COVERALLS}" = "ON" ]; then
coveralls --gcov-options '\-lp';
fi

View File

@ -28,6 +28,11 @@ set(GMIO_VERSION_PATCH 0)
set(GMIO_VERSION
${GMIO_VERSION_MAJOR}.${GMIO_VERSION_MINOR}.${GMIO_VERSION_PATCH})
# Detect Clang
if (CMAKE_C_COMPILER MATCHES ".*clang")
set(CMAKE_COMPILER_IS_CLANG 1)
endif ()
# Options
option(GMIO_BUILD_STRICT_C90 "Build gmio library(and tests) with strict conformance to C90 standard" OFF)
option(GMIO_BUILD_SHARED_LIBS "Build gmio as a shared library (DLL)" OFF)
@ -39,11 +44,9 @@ cmake_dependent_option(
GMIO_BUILD_BENCHMARK_OPENCASCADE "Build benchmark for OpenCascade" ON
"GMIO_BUILD_BENCHMARKS" OFF)
option(GMIO_BUILD_TESTS_FAKE_SUPPORT "Build tests/fake_support target" OFF)
# Detect Clang
if (CMAKE_C_COMPILER MATCHES ".*clang")
set(CMAKE_COMPILER_IS_CLANG 1)
endif ()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG)
option(GMIO_BUILD_TESTS_COVERAGE "Instrument testing code with code coverage" OFF)
endif()
# Find bit size of the target architecture
math(EXPR GMIO_TARGET_ARCH_BIT_SIZE "8 * ${CMAKE_SIZEOF_VOID_P}")

View File

@ -13,6 +13,13 @@
## "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html".
#############################################################################
if(GMIO_BUILD_TESTS_COVERAGE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall -W -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -Wall -W -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage")
link_libraries(gcov)
endif()
# Add core source files
file(GLOB GMIO_SRC_FILES gmio_core/* gmio_core/internal/*)
set(GMIO_SRC_FILES ${GMIO_SRC_FILES})

View File

@ -23,6 +23,13 @@ add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
include_directories(${CMAKE_BINARY_DIR}/src/gmio_core) # For generated cmake headers
if(GMIO_BUILD_TESTS_COVERAGE)
set(CMAKE_CXX_FLAGS "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage")
set(CMAKE_C_FLAGS "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage")
set(CMAKE_EXE_LINKER_FLAGS "-fprofile-arcs -ftest-coverage")
link_libraries(gcov)
endif()
# test_internal
add_executable(
test_internal