diff --git a/.travis.yml b/.travis.yml index d74cf6120bc7c41aec6d908cfdd221fa49ef34b9..05206db5ef4b99ec3429d373fab8c379c34a1762 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 b7549cd8d697e1afe7837437a3463e936dac7862..bb2bb858e51ecf84db7588ba1c212bdf164e2e5d 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 0351e1ba8674492aef1c0aaf4cad4c52c08120fd..dd6b61628b943a79c14ecf250f89dd4e7e063bca 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)