cmake: add coveralls support
This commit is contained in:
parent
2cf2751aef
commit
2a65d7b55b
24
.travis.yml
24
.travis.yml
@ -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
|
||||
|
||||
|
@ -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}")
|
||||
|
@ -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})
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user