#------------------------------------------------------------------------------
# Define the compiler environment
Env = Rscons::Environment.new do |env|
- env.build_dir('source/','build/obj/source')
- env["CFLAGS"] += ['--std=c99', '-Wall', '-Wextra', '-Werror']
+ env.build_dir('source','build/obj/source')
+ env["CFLAGS"] += ['--std=c99', '--pedantic', '-Wall', '-Wextra', '-Werror']
env['CPPPATH'] += Dir['source/**/']
end
TestEnv = Env.clone do |env|
env.build_dir('source','build/obj/test_source')
env.build_dir('tests','build/obj/tests/source')
- env['CFLAGS'] += ['-DLEAK_DETECT_LEVEL=1']
+ env['CFLAGS'] += ['-g', '--coverage', '-DLEAK_DETECT_LEVEL=1']
+ #env['CFLAGS'] += ['-DNDEBUG'] #disables asserts so they won't effect coverage analysis
+ env["LDFLAGS"] += ['--coverage']
env['CPPPATH'] += Dir['tests/']
end
TestEnv.Program('build/test_libcds', Dir['source/**/*.c', 'tests/**/*.c'])
TestEnv.process
sh "build/test_libcds"
+ FileList['build/obj/test_source/**/*.gcno'].each do |gcno|
+ obj = gcno.ext('o')
+ path = File.dirname(obj)
+ gcov = File.basename(obj).ext('c.gcov')
+ sh *['gcov', '-abc', obj]
+ FileUtils.cp(gcov,"#{path}/#{gcov}")
+ FileUtils.rm(gcov)
+ end
end
#------------------------------------------------------------------------------