From 4fed9327a4b87c8871677ca5b5892263022a914b Mon Sep 17 00:00:00 2001 From: "Meredith L. Patterson" <mlp@thesmartpolitenerd.com> Date: Sun, 4 Oct 2015 02:53:54 +0200 Subject: [PATCH] now both clang and gcc have coverage without any dumb hacks --- .travis.yml | 1 - SConstruct | 13 ++++++++----- src/SConscript | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index d74cf612..05206db5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -91,7 +91,6 @@ matrix: language: cpp env: BINDINGS=cpp CC=clang before_install: - - if [ "$CC" == "clang" ]; then export CC="clang --coverage"; fi - sudo apt-get update -qq - sudo apt-get install lcov - gem install coveralls-lcov diff --git a/SConstruct b/SConstruct index b7549cd8..bb2bb858 100644 --- a/SConstruct +++ b/SConstruct @@ -90,14 +90,17 @@ if GetOption("variant") == 'debug': else: env = opt +env["CC"] = os.getenv("CC") or env["CC"] +env["CXX"] = os.getenv("CXX") or env["CXX"] + if GetOption("coverage"): env.Append(CFLAGS=["--coverage"], CXXFLAGS=["--coverage"], - LDFLAGS=["--coverage"], - LIBS=['gcov']) - -env["CC"] = os.getenv("CC") or env["CC"] -env["CXX"] = os.getenv("CXX") or env["CXX"] + LDFLAGS=["--coverage"]) + if env["CC"] == "gcc": + env.Append(LIBS=['gcov']) + else: + env.ParseConfig('llvm-config --ldflags') if os.getenv("CC") == "clang" or env['PLATFORM'] == 'darwin': env.Replace(CC="clang", diff --git a/src/SConscript b/src/SConscript index 0351e1ba..dd6b6162 100644 --- a/src/SConscript +++ b/src/SConscript @@ -89,7 +89,7 @@ env.Install("$pkgconfigpath", "../../../libhammer.pc") testenv = env.Clone() testenv.ParseConfig('pkg-config --cflags --libs glib-2.0') testenv.Append(LIBS=['hammer'], LIBPATH=['.']) -ctestexec = testenv.Program('test_suite', ctests + ['test_suite.c']) +ctestexec = testenv.Program('test_suite', ctests + ['test_suite.c'], LINKFLAGS="--coverage" if testenv.GetOption("coverage") else None) ctest = Alias('testc', [ctestexec], "".join(["env LD_LIBRARY_PATH=", os.path.dirname(ctestexec[0].path), " ", ctestexec[0].path])) AlwaysBuild(ctest) testruns.append(ctest) -- GitLab