Skip to content

Commit 3b4cc5f

Browse files
committed
merge ci branch
2 parents 03a83d2 + b5fa78f commit 3b4cc5f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+728
-180
lines changed

.travis.yml

+39-142
Original file line numberDiff line numberDiff line change
@@ -1,151 +1,48 @@
11
language: cpp
2-
addons:
3-
homebrew:
4-
packages:
5-
- gfortran
62
matrix:
7-
allow_failures:
8-
- os: osx
93
include:
10-
- os: linux
11-
compiler: gcc
12-
addons:
13-
apt:
14-
sources: ['ubuntu-toolchain-r-test']
15-
packages: ['g++-4.7']
16-
env:
17-
- COMPILER=g++-4.7
18-
- os: linux
19-
compiler: gcc
20-
addons:
21-
apt:
22-
sources: ['ubuntu-toolchain-r-test']
23-
packages: ['g++-4.8']
24-
env:
25-
- COMPILER=g++-4.8
26-
if: branch = master
27-
- os: linux
28-
compiler: gcc
29-
addons:
30-
apt:
31-
sources: ['ubuntu-toolchain-r-test']
32-
packages: ['g++-4.9']
33-
env:
34-
- COMPILER=g++-4.9
35-
if: branch = master
36-
- os: linux
37-
compiler: gcc
38-
addons:
39-
apt:
40-
sources: ['ubuntu-toolchain-r-test']
41-
packages: ['g++-5']
42-
env:
43-
- COMPILER=g++-5
44-
if: branch = master
45-
- os: linux
46-
compiler: gcc
47-
addons:
48-
apt:
49-
sources: ['ubuntu-toolchain-r-test']
50-
packages: ['g++-6']
51-
env:
52-
- COMPILER=g++-6
53-
if: branch = master
54-
## clang's support for OpenMP requires extra work
55-
## just skip it for now
56-
# - os: linux
57-
# compiler: clang
58-
# env:
59-
# - COMPILER=clang++
60-
#
61-
# - os: linux
62-
# compiler: clang
63-
# addons:
64-
# apt:
65-
# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.5']
66-
# packages: ['clang-3.5']
67-
# env:
68-
# - COMPILER=clang++-3.5
69-
#
70-
# - os: linux
71-
# compiler: clang
72-
# addons:
73-
# apt:
74-
# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.6']
75-
# packages: ['clang-3.6']
76-
# env:
77-
# - COMPILER=clang++-3.6
78-
#
79-
# - os: linux
80-
# compiler: clang
81-
# addons:
82-
# apt:
83-
# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.7']
84-
# packages: ['clang-3.7']
85-
# env:
86-
# - COMPILER=clang++-3.7
87-
#
88-
# - os: linux
89-
# compiler: clang
90-
# addons:
91-
# apt:
92-
# sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.8']
93-
# packages: ['clang-3.8']
94-
# env:
95-
# - COMPILER=clang++-3.8
96-
#
97-
## - os: linux
98-
## compiler: clang
99-
## addons:
100-
## apt:
101-
## sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.9']
102-
## packages: ['clang-3.9']
103-
## env:
104-
## - COMPILER=clang++-3.9
105-
#
106-
# - os: osx
107-
# osx_image: xcode6.4
108-
# compiler: clang
109-
# env:
110-
# - COMPILER=clang++
111-
#
112-
# - os: osx
113-
# osx_image: xcode7.3
114-
# compiler: clang
115-
# env:
116-
# - COMPILER=clang++
117-
#
118-
# - os: osx
119-
# osx_image: xcode8.2
120-
# compiler: clang
121-
# env:
122-
# - COMPILER=clang++
123-
124-
## For simplicity, do not need to compile for xcode9, xcode10
125-
# - os: osx
126-
# osx_image: xcode10
127-
# compiler: g++
128-
# env:
129-
# - COMPILER=g++
130-
# - os: osx
131-
# osx_image: xcode9
132-
# compiler: g++
133-
# env:
134-
# - COMPILER=g++
135-
- os: osx
136-
osx_image: xcode8
137-
compiler: g++
138-
env:
139-
- COMPILER=g++
140-
- MATRIX_EVAL="brew update && brew install gcc && CC=gcc && CXX=g++"
141-
4+
- env: PLATFORM='linux64'
5+
os: linux
6+
dist: trusty
7+
sudo: required
8+
compiler: gcc
9+
- env: PLATFORM='windows32'
10+
os: linux
11+
dist: xenial
12+
sudo: required
13+
compiler: gcc
14+
- env: PLATFORM='macos'
15+
os: osx
16+
osx_image: xcode8
17+
compiler: clang
18+
- env: PLATFORM='musl64'
19+
os: linux
20+
dist: trusty
21+
sudo: required
22+
compiler: gcc
14223
before_install:
143-
- uname -a
14424
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then free -m; fi
14525
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then vm_stat; fi
14626
- df -h
14727
- ulimit -a
148-
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -q && sudo apt-get install -y -qq gfortran; fi
149-
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then eval "${MATRIX_EVAL}"; fi
28+
- TARGET="${PLATFORM::${#PLATFORM}-2}"
29+
- "./build/${TARGET}/requirements.sh"
30+
install:
31+
- source ./build/${TARGET}/build.sh
32+
script:
33+
- echo "Nothing."
34+
before_deploy:
35+
- mkdir -p dist
36+
- "./build/${TARGET}/package.sh"
37+
deploy:
38+
provider: releases
39+
api_key:
40+
secure: ILnaYSSn9uaRUq8g0UOoAwdltVx9Qy/B7DPlt4ANMV3f4oxW9I7IotPnGcUpi7SzCAR9FlH9Drpct7awBWCXHRd9bp8nfhRnqnjwymhuyO08xkMYcdu3+TE5SjtKWnicakJZqwgAeUl0YSsEOl0M0A5LShKaFTn55tNQ/PPZe28=
41+
file:
42+
- "$(ls dist/*tar.gz dist/*.zip)"
43+
skip_cleanup: true
44+
on:
45+
repo: zhanxw/rvtests
46+
branch: master
47+
tags: true
15048

151-
script: make CXX=$COMPILER

Makefile.common

+7
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ CXX_INCLUDE = $(addprefix -I, $(INCLUDE)) -I. -I$(ROOT)
7777
CXX_LIB = $(LIB) -lm -lpthread
7878
CXX_LIB_DBG = $(LIB_DBG) -lm -lpthread
7979

80+
##################################################
81+
## Win32
82+
ifneq ($(WIN32),)
83+
CXX_LIB += -lws2_32
84+
CXX_LIB_DBG += -lws2_32
85+
endif
86+
8087
##################################################
8188
## MKL library
8289
USE_MKL ?=

Makefile.lib

+22-12
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,41 @@
11
## this file describe how we build libs
22
ROOT?=.
33

4+
##################################################
5+
## Win32
6+
ifneq ($(WIN32),)
7+
MAKEFILE=-f Makefile.win CROSS=${CROSS} WIN32=1
8+
endif
9+
## MUSL
10+
ifneq ($(MUSL),)
11+
MAKEFILE=-f Makefile.win CROSS=${CROSS}
12+
endif
13+
414
## third-party lib
515
$(TABIX_INC) $(TABIX_LIB):
6-
$(MAKE) -C $(ROOT)/third tabix
16+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third tabix
717
$(EIGEN_INC) $(EIGEN_LIB):
8-
$(MAKE) -C $(ROOT)/third eigen
18+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third eigen
919
$(PCRE_INC) $(PCRE_LIB):
10-
$(MAKE) -C $(ROOT)/third pcre
20+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third pcre
1121
$(GSL_INC) $(GSL_LIB):
12-
$(MAKE) -C $(ROOT)/third gsl
22+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third gsl
1323
$(NLOPT_INC) $(NLOPT_LIB):
14-
$(MAKE) -C $(ROOT)/third nlopt
24+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third nlopt
1525
$(ZLIB_INC) $(ZLIB_LIB):
16-
$(MAKE) -C $(ROOT)/third zlib
26+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third zlib
1727
$(BZIP2_INC) $(BZIP2_LIB):
18-
$(MAKE) -C $(ROOT)/third bzip2
28+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third bzip2
1929
$(BCF_INC) $(BCF_LIB) $(SAMTOOLS_INC) $(SAMTOOLS_LIB):
20-
$(MAKE) -C $(ROOT)/third samtools
30+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third samtools
2131
$(RAPIDJSON_INC):
22-
$(MAKE) -C $(ROOT)/third rapidjson
32+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third rapidjson
2333
$(SQLITE_INC) $(SQLITE_LIB):
24-
$(MAKE) -C $(ROOT)/third sqlite
34+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third sqlite
2535
$(ZSTD_INC) $(ZSTD_LIB):
26-
$(MAKE) -C $(ROOT)/third zstd
36+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third zstd
2737
$(CNPY_INC) $(CNPY_LIB):
28-
$(MAKE) -C $(ROOT)/third cnpy
38+
$(MAKE) $(MAKEFILE) -C $(ROOT)/third cnpy
2939

3040
## our libs
3141
$(BASE_LIB):

Makefile.win

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
#make -f Makefile.win CROSS=i686-w64-mingw32.static
2+
CC=$(CROSS)-gcc
3+
CXX=$(CROSS)-g++
4+
LD=$(CROSS)-ld
5+
RANLIB=$(CROSS)-ranlib
6+
AR=$(CROSS)-ar
7+
PKG_CONFIG=$(CROSS)-pkg-config
8+
# CONFIGURE_HOST=--host=i686-w64-mingw32.static --enable-static --disable-shared
9+
CONFIGURE_HOST=--host=$(CROSS) --enable-static --disable-shared
10+
11+
all: release
12+
13+
ROOT=$(shell pwd)
14+
export ROOT
15+
16+
include Makefile.common
17+
include Makefile.lib
18+
19+
DIR_EXEC = ./executable
20+
DIR_EXEC_DBG = ./executable/dbg
21+
22+
$(DIR_EXEC):
23+
mkdir -p $@
24+
$(DIR_EXEC_DBG):
25+
mkdir -p $@
26+
27+
.PHONY: release debug profile lib lib-dbg clean tar doc
28+
release: lib
29+
$(MAKE) -C $(ROOT)/src release
30+
$(MAKE) -C $(ROOT)/vcfUtils release
31+
$(MAKE) -C $(ROOT)/bgenUtils release
32+
33+
debug: debug.rvt debug.vcfUtil debug.bgenUtil
34+
debug.rvt: lib-dbg
35+
$(MAKE) -C $(ROOT)/src debug
36+
debug.vcfUtil: lib-dbg
37+
$(MAKE) -C $(ROOT)/vcfUtils debug
38+
debug.bgenUtil: lib-dbg
39+
$(MAKE) -C $(ROOT)/bgenUtils debug
40+
41+
profile: lib-dbg
42+
$(MAKE) -C $(ROOT)/src profile
43+
$(MAKE) -C $(ROOT)/vcfUtils profile
44+
$(MAKE) -C $(ROOT)/bgenUtils profile
45+
46+
##################################################
47+
## clean
48+
##################################################
49+
clean:
50+
$(MAKE) -C $(ROOT)/src clean
51+
$(MAKE) -C $(ROOT)/vcfUtils clean
52+
$(MAKE) -C $(ROOT)/bgenUtils clean
53+
54+
libclean:
55+
$(MAKE) -C $(ROOT)/base clean
56+
$(MAKE) -C $(ROOT)/regression clean
57+
$(MAKE) -C $(ROOT)/libVcf clean
58+
$(MAKE) -C $(ROOT)/libBgen clean
59+
60+
deepclean: clean libclean
61+
rm -rf *~
62+
$(MAKE) -C $(ROOT)/third deepclean
63+
$(MAKE) -C $(ROOT)/libsrc clean
64+
$(MAKE) -C $(ROOT)/base clean
65+
$(MAKE) -C $(ROOT)/regression deepclean
66+
$(MAKE) -C $(ROOT)/libVcf clean
67+
$(MAKE) -C $(ROOT)/libBgen clean
68+
69+
# archive
70+
DATE=$(shell date '+%m%d')
71+
tar:
72+
tar zvchf rvtest.$(DATE).tgz \
73+
Makefile .git/HEAD .git/index \
74+
*.h *.cpp \
75+
src third base libVcf libBgen regression libsrc
76+
77+
wiki2md: README.wiki
78+
java -jar third/wiki2html.jar README.wiki > README.html
79+
pandoc -f html -t markdown README.html > README.md
80+
81+
md2wiki: README.md
82+
pandoc -f markdown_github+pipe_tables -t mediawiki README.md > README.wiki

base/Argument.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,22 @@
1010
#include <map>
1111
#include <queue>
1212

13+
// define gethostname if needed
14+
#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
15+
#include <windows.h>
16+
int gethostname(char* name, size_t len) {
17+
/* GetComputerName is not the right thing. gethostname from <winsock2.h>
18+
would be right, but requires linking with -lws2_32. So we use
19+
GetComputerNameEx. */
20+
DWORD size = (len <= (DWORD)~0 ? len : (DWORD)~0);
21+
22+
if (!GetComputerNameEx(ComputerNameDnsHostname, name, &size)) {
23+
return -1;
24+
}
25+
return 0;
26+
}
27+
#endif
28+
1329
#include "base/LineBreaker.h"
1430
#include "base/TypeConversion.h"
1531

base/IO.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#include "IO.h"
22

3+
#ifdef _WIN32
4+
// this is to avoid using _chsize
5+
#define FTRUNCATE_DEFINED
6+
#endif
37
// cannot forward declare an typdef anonymous struct
48
// http://stackoverflow.com/questions/804894/forward-declaration-of-a-typedef-in-c
59
// so include the header file

base/IO.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#ifndef _IO_H_
2-
#define _IO_H_
1+
#ifndef _FILE_IO_H_
2+
#define _FILE_IO_H_
33

44
#define UNUSED(x) ((void)(x))
55
#include <assert.h> //assert
@@ -291,4 +291,4 @@ class FileWriter {
291291

292292
bool fileExists(std::string fn);
293293

294-
#endif /* _IO_H_ */
294+
#endif /* _FILE_IO_H_ */

0 commit comments

Comments
 (0)