Commit d52b1f31 authored by Andreas Tille's avatar Andreas Tille
Browse files

New upstream version 3.01

parent 4584056c
Loading
Loading
Loading
Loading

.gitignore

deleted100644 → 0
+0 −30
Original line number Diff line number Diff line
/blib/
blib/
*.bs
_build/
/.build/
Build
!Build/
Build.bat
cover_db/
/_eumm/
inc/
.last_cover_stats
lib/Bio/DB/HTS.c
lib/Bio/DB/HTS/Faidx.c
lib/Bio/DB/HTS/Faidx.o
lib/Bio/DB/HTS.o
/Makefile
/Makefile.old
/MANIFEST.bak
/META.json
/META.yml
/MYMETA.*
MYMETA.*
nytprof.out
*.o
/pm_to_blib
t/data/*ai
t/data/*.gzi
t/data/write_test_07.cram
t/data/write_test_08.bam

.travis.yml

deleted100644 → 0
+0 −57
Original line number Diff line number Diff line
language: "perl"

perl:
  - "5.26"
  - "5.14"
  - "5.10"

env:
  matrix:
    - HTSLIB_VERSION=1.3.1
    - HTSLIB_VERSION=1.5
    - HTSLIB_VERSION=1.7
    - HTSLIB_VERSION=1.8
    - HTSLIB_VERSION=1.9

sudo: false

addons:
    apt:
        packages:
        - unzip
        - liblzma-dev
        - libbz2-dev

before_install:
    - git clone -b BioPerl-v1.7.4 --depth 1 https://github.com/bioperl/bioperl-live.git
    - git clone --branch master --depth 1 https://github.com/Ensembl/ensembl-test.git

install:
    - git clone --branch $HTSLIB_VERSION --depth=1 https://github.com/samtools/htslib.git
    - cd htslib
    - make prefix=~/biodbhts install
    - export HTSLIB_DIR=
    - cd ..
    # manually install items listed from cpanfile so we can skip BioPerl
    - cpanm -f -n Carp
    - cpanm -f -n Test::Most
    - cpanm -f -n Test::LeakTrace
    - cpanm -f -n Module::Build
    - cpanm -f -n Log::Log4perl
    - cpanm -f -n Try::Tiny
    # - cpanm -v --installdeps --notest .
    # install the modules just used here
    - cpanm --notest Perl::Tidy
    - cpanm --notest Test::Code::TidyAll
    - export PERL5LIB=$PERL5LIB:$PWD/bioperl-live/lib
    - perl Build.PL --prefix=~/biodbhts
    - ./Build
    - ./Build test

script: "./travisci/harness.sh"


notifications:
  email:
    on_success: always
    on_failure: always
+13 −74
Original line number Diff line number Diff line
#!/usr/bin/perl

# Copyright [2015-2019] EMBL-European Bioinformatics Institute
# Copyright [2015-2018] EMBL-European Bioinformatics Institute
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -75,15 +75,7 @@ sub find_hts {
    # If either of these are set, we expect to find the htslib files there:
    # (They're explicitly set by the user, so we shouldn't fall back to
    # finding another copy somewhere else.)
    my $incdir = $self->args('htslib-includedir');
    my $libdir = $self->args('htslib-libdir');
    if ($incdir && $libdir) {
        return 1 if $self->find_hts_in_split_install_dirs($incdir, $libdir);
        $self->die_hts_not_found(
            "--htslib-includedir '$incdir' or --htslib-libdir '$libdir' command line parameters do not contain expected files\n"
        );
    }
    elsif (my $dir = $self->args('htslib')) {
    if (my $dir = $self->args('htslib')) {
        return 1 if $self->find_hts_in_build_dir($dir);
        return 1 if $self->find_hts_in_install_dir($dir);
        $self->die_hts_not_found(
@@ -113,9 +105,6 @@ sub find_hts {
    }
    return 1 if $found;

    # Try pkgconfig again but this time trust whatever it returns, without extra verification
    return 1 if $self->find_hts_with_pkgconfig();

    $self->die_hts_not_found();
}

@@ -125,15 +114,12 @@ sub set_include_and_compiler_flags {
    my $hts_include = $self->config_data('hts_include');
    my $hts_lib     = $self->config_data('hts_lib');
    my $static      = $self->args('static');

    $self->include_dirs([$hts_include]) if $hts_include;

    my @linker_dirflags;
    if ($hts_lib) {
      push @linker_dirflags, "-L$hts_lib";
      push @linker_dirflags, "-Wl,-rpath,$hts_lib" unless $static;
    $self->include_dirs([$hts_include]);
    if($static){
      $self->extra_linker_flags("-L$hts_lib", '-lhts', '-lpthread', '-lz');
    }else{
      $self->extra_linker_flags("-L$hts_lib", "-Wl,-rpath,$hts_lib", '-lhts', '-lpthread', '-lz');
    }
    $self->extra_linker_flags(@linker_dirflags, '-lhts', '-lpthread', '-lz');
}

sub hts_dev_files_exist {
@@ -179,48 +165,6 @@ sub find_hts_in_install_dir {
    }
}

sub find_hts_in_split_install_dirs {
    my ($self, $hts_include, $hts_lib) = @_;

    chomp($hts_lib);
    chomp($hts_include);
    $hts_include =~ s{include/htslib$}{include};

    if (hts_dev_files_exist($hts_lib, $hts_include)) {
        $self->config_data('hts_lib'     => $hts_lib);
        $self->config_data('hts_include' => $hts_include);
        return 1;
    }
    else {
        return 0;
    }
}

sub find_hts_with_pkgconfig {
    my ($self) = @_;

    return 0 unless can_load(
        modules => { 'ExtUtils::PkgConfig' => undef }
    );
    my $pkg_name = 'htslib';
    return 0 unless ExtUtils::PkgConfig->exists($pkg_name);

    if (my $libs_only_L = ExtUtils::PkgConfig->libs_only_L($pkg_name)) {
        # For compatibility with other htslib search methods. Note that this
        # assumes there will be at most one each of -I/-L directories, which
        # is true as of htslib-1.5 but might change in the future.
        $libs_only_L =~ s{^-L}{};
        $self->config_data('hts_lib' => $libs_only_L);
    }
    if (my $cflags_only_I = ExtUtils::PkgConfig->cflags_only_I($pkg_name)) {
        # See above
        $cflags_only_I =~ s{^-I}{};
        $self->config_data('hts_include' => $cflags_only_I);
    }

    return 1;
}

sub die_hts_not_found {
    my ($self, $msg) = @_;

@@ -233,17 +177,12 @@ Install it if you have not done so already.
This script will attempt to locate HTSlib by looking for htslib/hts.h
and libhts.a / libhts.so in:

  1. --htslib-includedir and --htslib-libdir command line arguments
  2. --htslib command line argument
  3. HTSLIB_DIR environment variable
  4. --prefix command line argument (which also sets installation location)
  5. Alien::HTSlib dependency resolver
  6. pkg-config (extra directories can be set in PKG_CONFIG_PATH environment variable)
  7. common library locations: /usr /usr/local, /usr/share, /opt/local

If none of the above succeeds but htslib is registered with pkg-config, the script
will try using pkg-config paths (via ExtUtils::PkgConfig) without checking if header
and library files exist.
  1. --htslib command line argument
  2. HTSLIB_DIR environment variable
  3. --prefix command line argument (which also sets installation location)
  4. Alien::HTSlib dependency resolver
  5. pkg-config (extra directories can be set in PKG_CONFIG_PATH environment variable)
  6. common library locations: /usr /usr/local, /usr/share, /opt/local

END

+1 −1
Original line number Diff line number Diff line
#!/usr/bin/perl

# Copyright [2015-2019] EMBL-European Bioinformatics Institute
# Copyright [2015-2018] EMBL-European Bioinformatics Institute
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
+1 −1
Original line number Diff line number Diff line
@@ -186,7 +186,7 @@
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [2015-2019] EMBL-European Bioinformatics Institute
   Copyright [2015-2018] EMBL-European Bioinformatics Institute

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
Loading