diff options
author | David Kalnischkies <david@kalnischkies.de> | 2014-04-13 21:40:35 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2014-04-13 22:12:01 +0200 |
commit | cbc9ec23b0fb551f20f4fd8ca46d98f59b5666bc (patch) | |
tree | 001a279cf2a604793da3603d3c3017418b8d0d8a /buildlib | |
parent | 23fc5ecaa01bc41d582640dd5950be73987a8b4b (diff) | |
download | apt-cbc9ec23b0fb551f20f4fd8ca46d98f59b5666bc.tar.gz |
compile with absolute paths to allow lcov use
Instructing gcc (or clang) to prepare for capturing coverage data is
easy: Just build with: CXXFLAGS=--coverage
The hard part is that our buildsystem uses relative paths and so
confuses the hell out of lcov as it assumes this way that all our *.cc
files are in the same directory… by changing to absolute paths in the
compile rules we solve this problem.
Still not perfect as it refers to build/include files for most headers
and our forking/threading code isn't properly captured, but good enough
to see red reports for now:
CXXFLAGS=--coverage make
make test
./test/integration/run-tests -q
lcov --no-external --directory . --capture --output-file apt.info
genhtml --output-directory ./coverage/ apt.info
Git-Dch: Ignore
Diffstat (limited to 'buildlib')
-rw-r--r-- | buildlib/library.mak | 2 | ||||
-rw-r--r-- | buildlib/program.mak | 2 | ||||
-rw-r--r-- | buildlib/python.mak | 2 | ||||
-rw-r--r-- | buildlib/staticlibrary.mak | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/buildlib/library.mak b/buildlib/library.mak index ef1306b66..cc0286d7e 100644 --- a/buildlib/library.mak +++ b/buildlib/library.mak @@ -63,7 +63,7 @@ $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS) vpath %.cc $(SUBDIRS) $(OBJ)/%.opic: %.cc $(LIBRARYDEPENDS) echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available diff --git a/buildlib/program.mak b/buildlib/program.mak index da538f5eb..71c265f39 100644 --- a/buildlib/program.mak +++ b/buildlib/program.mak @@ -50,7 +50,7 @@ $($(LOCAL)-BIN): $($(LOCAL)-OBJS) $($(LOCAL)-MKS) vpath %.cc $(SUBDIRS) $(OBJ)/%.o: %.cc echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available diff --git a/buildlib/python.mak b/buildlib/python.mak index 02345c2d2..f08ab5563 100644 --- a/buildlib/python.mak +++ b/buildlib/python.mak @@ -58,7 +58,7 @@ endif # ifdef PYTHONLIB vpath %.cc $(SUBDIRS) $(OBJ)/%.opic: %.cc echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) $(PICFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available diff --git a/buildlib/staticlibrary.mak b/buildlib/staticlibrary.mak index ce9259dc0..86908700f 100644 --- a/buildlib/staticlibrary.mak +++ b/buildlib/staticlibrary.mak @@ -50,7 +50,7 @@ endif vpath %.cc $(SUBDIRS) $(OBJ)/%.o: %.cc echo Compiling $< to $@ - $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $(abspath $<) $(DoDep) # Include the dependencies that are available |