Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
biboumi
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
88
Issues
88
List
Boards
Labels
Service Desk
Milestones
Merge Requests
7
Merge Requests
7
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
louiz’
biboumi
Commits
9fe94215
Commit
9fe94215
authored
Oct 29, 2015
by
louiz’
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make lcov gcov etc optional
make coverage will display an error instead
parent
3b7bbe14
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
20 deletions
+24
-20
CMakeLists.txt
CMakeLists.txt
+1
-1
cmake/Modules/CodeCoverage.cmake
cmake/Modules/CodeCoverage.cmake
+23
-19
No files found.
CMakeLists.txt
View file @
9fe94215
...
...
@@ -186,7 +186,7 @@ add_custom_target(check COMMAND "test_suite"
#
## Code coverage
#
if
(
CMAKE_BUILD_TYPE MATCHES D
EBUG
)
if
(
CMAKE_BUILD_TYPE MATCHES D
ebug
)
include
(
CodeCoverage
)
SETUP_TARGET_FOR_COVERAGE
(
coverage
test_suite
...
...
cmake/Modules/CodeCoverage.cmake
View file @
9fe94215
...
...
@@ -73,18 +73,30 @@ FIND_PROGRAM( LCOV_PATH lcov )
FIND_PROGRAM
(
GENHTML_PATH genhtml
)
FIND_PROGRAM
(
GCOVR_PATH gcovr PATHS
${
CMAKE_SOURCE_DIR
}
/tests
)
IF
(
NOT GCOV_PATH
)
MESSAGE
(
FATAL_ERROR
"gcov not found! Aborting..."
)
ENDIF
()
# NOT GCOV_PATH
# Display an error when the target is called. If no error is found, this
# function will be overridden by the real one later in this file
FUNCTION
(
SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname
)
ADD_CUSTOM_TARGET
(
${
_targetname
}
COMMAND echo
"Coverage is not available:
${
ERROR_MSG
}
"
)
ENDFUNCTION
()
IF
(
NOT GCOV_PATH
)
set
(
ERROR_MSG
"gcov not found"
)
return
()
ENDIF
()
IF
(
NOT LCOV_PATH
)
set
(
ERROR_MSG
"lcov not found"
)
return
()
ENDIF
()
IF
(
NOT GENHTML_PATH
)
set
(
ERROR_MSG
"genhtml not found"
)
return
()
ENDIF
()
IF
(
NOT CMAKE_COMPILER_IS_GNUCXX
)
# Clang version 3.0.0 and greater now supports gcov as well.
MESSAGE
(
WARNING
"Compiler is not GNU gcc! Clang Version 3.0.0 and greater supports gcov as well, but older versions don't."
)
IF
(
NOT
"
${
CMAKE_CXX_COMPILER_ID
}
"
STREQUAL
"Clang"
)
MESSAGE
(
FATAL_ERROR
"Compiler is not GNU gcc! Aborting..."
)
ENDIF
()
ENDIF
()
# NOT CMAKE_COMPILER_IS_GNUCXX
set
(
ERROR_MSG
"Compiler is not gcc"
)
return
()
ENDIF
()
SET
(
CMAKE_CXX_FLAGS_COVERAGE
"-g -O0 --coverage -fprofile-arcs -ftest-coverage"
...
...
@@ -123,19 +135,11 @@ ENDIF() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug"
# Pass them in list form, e.g.: "-j;2" for -j 2
FUNCTION
(
SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname
)
IF
(
NOT LCOV_PATH
)
MESSAGE
(
FATAL_ERROR
"lcov not found! Aborting..."
)
ENDIF
()
# NOT LCOV_PATH
IF
(
NOT GENHTML_PATH
)
MESSAGE
(
FATAL_ERROR
"genhtml not found! Aborting..."
)
ENDIF
()
# NOT GENHTML_PATH
# Setup target
ADD_CUSTOM_TARGET
(
${
_targetname
}
# Cleanup lcov
${
LCOV_PATH
}
--directory . --zerocounters
COMMAND
${
LCOV_PATH
}
--directory . --zerocounters
# Create baseline coverage data file
COMMAND
${
LCOV_PATH
}
-c -i -d . -o
${
_outputname
}
.baseline.info -q
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment