pantry/projects/github.com/linux-test-project/lcov/package.yml
Jacob Heider 3bc7b027e3
fix(lcov) (#2055)
* fix(lcov)

* wip

* wip

* wip

* wip

* sigh
2023-05-25 18:01:02 -04:00

93 lines
2 KiB
YAML

distributable:
url: https://github.com/linux-test-project/lcov/releases/download/v{{ version.raw }}/lcov-{{ version.raw }}.tar.gz
strip-components: 1
versions:
github: linux-test-project/lcov
strip: /^v/
provides:
- bin/lcov
- bin/geninfo
- bin/genhtml
- bin/gendesc
- bin/genpng
platforms: linux
dependencies:
perl.org: ">=5"
runtime:
env:
PERL5LIB: ${{prefix}}/lib/perl5
build:
dependencies:
tea.xyz/gx/cc: c99
tea.xyz/gx/make: '*'
cpanmin.us: ^1
script:
- cpanm -l {{prefix}} $PKGS
- make --jobs {{ hw.concurrency }} $ARGS install
- fix-shebangs.ts {{prefix}}/bin/*
# v2 installs to lib/lcov
- |
if test -d "{{prefix}}/lib/lcov"; then
cd "{{prefix}}/lib"
test -d perl5 || mkdir perl5
mv lcov/* perl5
rmdir lcov
ln -s perl5 lcov
fi
# cpanm installs without write perms
- chmod -R +w "{{prefix}}/lib/perl5"
# need to clean up paths in the scripts
- |
cd "{{prefix}}/bin"
sed -i.bak \
-e '2i use File::Basename qw(dirname);' \
-e 's|"{{prefix}}|dirname($0) . "/..|g' \
* ../lib/perl5/lcovutil.pm
rm *.bak ../lib/perl5/lcovutil.pm.bak
env:
PKGS:
- Capture::Tiny
- DateTime
- DateTime::Locale
- Devel::Cover
- Digest::MD5
- ExtUtils::Helpers
- File::Find
- File::Spec
- IPC::System::Simple
- JSON::XS
- Memory::Process
- Module::Build::Tiny
- Readonly
- Time::HiRes
ARGS:
- PREFIX="{{prefix}}"
- BIN_DR="{{prefix}}/bin"
test:
dependencies:
gnu.org/gcc: '*'
script: |
mv $FIXTURE hello_world.c
gcc -g -O2 --coverage -o hello_world hello_world.c
./hello_world
lcov --gcov-tool gcov --directory . --capture --output-file all_coverage.info
test -f all_coverage.info
grep hello_world.c all_coverage.info
fixture: |
#include <stdio.h>
int main(void)
{
puts("hello world");
return 0;
}