[CMake] Problems with coverage on OS X Server

NoRulez norulez at me.com
Sat Mar 24 13:34:22 EDT 2012


But it seems that there is something missing, because I also get the message that no coverage files were found for some projects:

-- Coverage Continuous  --
Cannot find any coverage files. Ignoring Coverage request.

Here are my version informations:
$ clang --version
Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin10.8.0
Thread model: posix

$ gcc --version
i686-apple-darwin10-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ ctest --version
ctest version 2.8.7

$ gcov --version
gcov (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.

Am 24. März 2012 um 18:12 schrieb David Cole <david.cole at kitware.com>:

> Yes, the ENV approach is the right way to do it. (that's how I did it,
> too, although in the calling env and not in the script itself...
> either is fine)
>
>
> On Sat, Mar 24, 2012 at 1:10 PM, NoRulez <norulez at me.com> wrote:
> > Thanks David,
> >
> > I think I found a solution, so if someone is also interessted in this, here
> > is how i configured clang in a CTestScript.cmake file:
> >
> > if (APPLE)
> >     set (ENV{CC} clang)
> >     set (ENV{CXX} clang++)
> > endif (APPLE)
> >
> > .
> > .
> > .
> >
> > ctest_start()
> > ctest_update()
> > ctest_configure()
> > .
> > .
> > .
> >
> >
> > Best Regards
> > NoRulez
> >
> > Am 24. März 2012 um 17:42 schrieb "NoRulez" <norulez at me.com>:
> >
> >
> > I've tried to set the C/C++ compiler as followed:
> >     if (APPLE)
> >         SET(CMAKE_C_COMPILER "/usr/bin/clang")
> >         SET(CMAKE_CXX_COMPILER "/usr/bin/clang++")
> >     endif (APPLE)
> >
> > But the result from the build is:
> >  -- Update Continuous --
> >  -- Configure Continuous --
> >  -- Reading custom configuration Continuous - Arachne --
> >  -- Build Continuous --
> >  -- Test Continuous --
> > No tests were found!!!
> >  -- Coverage Continuous --
> >  Cannot find any coverage files. Ignoring Coverage request.
> >  -- Memcheck Continuous --
> > No tests were found!!!
> >  -- Submit Continuous --
> >
> > Best Regards
> > NoRulez
> >
> > Am 24. März 2012 um 17:31 schrieb "NoRulez" <norulez at me.com>:
> >
> > I've found this
> > http://stackoverflow.com/questions/7031126/switching-between-gcc-and-clang-llvm-using-cmake
> >
> > Is this all which I need to configure or did you do something
> > different/special?
> > Please could you post your settings to use clang instead of gcc on OS X
> >
> > Thanks in advance
> >
> > Best Regards
> > NoRulez
> >
> > Am 24. März 2012 um 15:31 schrieb David Cole <david.cole at kitware.com>:
> >
> > Well, I've had mixed results trying this myself.
> >
> > With the trivial SmallAndFast project, I get a good coverage
> > measurement on 5 lines of code in 1 source file:
> > http://my.cdash.org/viewCoverage.php?buildid=313323&status=3
> >
> > With CMake itself, I get a bunch of *.gcda files generated in the
> > build tree, but the coverage info does not get communicated properly
> > via a ctest script sending to CDash. Looks like there's some issue
> > with ctest parsing of the gcov output using ctest 2.8.7 and clang on
> > the Mac and gcov 4.2.1:
> >
> > $ gcov --version
> > gcov (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)
> >
> > Looks like there's a problem somebody will have to fix before it will
> > work. Unfortunately, the gcov parsing code in ctest is a bit of a
> > tangle -- last time I was in there, I fixed some stuff up to work in a
> > MinGW environment, and it's not pretty. Also unfortunately, I don't
> > think I'll have the bandwidth to look at this myself in the near
> > future: anybody want to volunteer to take a look and submit a patch to
> > get this working...?
> >
> >
> > Thx,
> > David
> >
> >
> > On Sat, Mar 24, 2012 at 8:53 AM, David Cole <david.cole at kitware.com> wrote:
> >> The answer to that stackoverflow question recommends using
> >> clang/clang++ instead. (I have not tried this yet myself, but would
> >> not be entirely surprised to find out it's correct. I have observed
> >> the zero coverage phenomenon on my own Mac laptop, but have sufficient
> >> coverage capabilities elsewhere... so I didn't care enough to follow
> >> up on it previously.)
> >>
> >>
> >> HTH,
> >> David
> >>
> >>
> >>
> >> On Sat, Mar 24, 2012 at 8:51 AM, David Cole <david.cole at kitware.com>
> >> wrote:
> >>> Perhaps it's because of this problem with the Mac "gcc" which is not
> >>> *really* just gcc anymore, and apparently doesn't support gcov
> >>> transparently as it should...
> >>>
> >>>
> >>>  http://stackoverflow.com/questions/7988355/getting-0-gcov-coverage-for-a-mac-app
> >>>
> >>>
> >>> On Sat, Mar 24, 2012 at 7:45 AM,  <norulez at me.com> wrote:
> >>>> Hello,
> >>>>
> >>>> I have the following code in the main CTestScript.cmake which I call
> >>>> with
> >>>> "ctest -S CTestScript.cmake, Continuous":
> >>>>
> >>>>     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -Wall -W
> >>>> -Wunused-variable -Wunused-parameter -Wunused-function -Wunused
> >>>> -Wno-system-headers -Wno-deprecated -Woverloaded-virtual -Wwrite-strings
> >>>> -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")
> >>>>     SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}
> >>>> -fprofile-arcs -ftest-coverage")
> >>>>     SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}
> >>>> -fprofile-arcs -ftest-coverage")
> >>>>
> >>>>     FILE(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
> >>>>          CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@
> >>>>          CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@
> >>>>          CMAKE_EXE_LINKER_FLAGS:STRING=@CMAKE_EXE_LINKER_FLAGS@
> >>>>          CMAKE_MODULE_LINKER_FLAGS:STRING=@CMAKE_MODULE_LINKER_FLAGS@
> >>>>          CMAKE_SHARED_LINKER_FLAGS:STRING=@CMAKE_SHARED_LINKER_FLAGS@
> >>>>          ")
> >>>>
> >>>>
> >>>>     ## -- Configure
> >>>>     message (" -- Configure ${MODEL} - ${CTEST_BUILD_NAME} --")
> >>>>     ctest_configure (BUILD "${CTEST_BINARY_DIRECTORY}")
> >>>>
> >>>>
> >>>>
> >>>> On Windows XP and on Ubuntu Linux Server 11.10 it works and I get
> >>>> coverage
> >>>> information.
> >>>>
> >>>> But on OS X Lion Server I didn't get any coverage informations.
> >>>>
> >>>> On OS X the command gcov is available.
> >>>>
> >>>>
> >>>> Could someone please help?
> >>>>
> >>>>
> >>>> Thanks in advance
> >>>>
> >>>>
> >>>> Best Regards
> >>>>
> >>>> NoRulez
> >>>>
> >>>>
> >>>> --
> >>>>
> >>>> Powered by www.kitware.com
> >>>>
> >>>> Visit other Kitware open-source projects at
> >>>> http://www.kitware.com/opensource/opensource.html
> >>>>
> >>>> Please keep messages on-topic and check the CMake FAQ at:
> >>>> http://www.cmake.org/Wiki/CMake_FAQ
> >>>>
> >>>> Follow this link to subscribe/unsubscribe:
> >>>> http://www.cmake.org/mailman/listinfo/cmake
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120324/31ecf0d0/attachment-0001.htm>


More information about the CMake mailing list