-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.travis.yml
127 lines (117 loc) · 3.66 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# © 2019 Joseph Cameron - All Rights Reserved
# jfc-smart_handles ci script
dist: bionic
sudo: required
language: cpp
matrix:
include:
# Build scripts
- os: linux
name: build linux gcc
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- cmake
- git
script:
- |
cd workspace
cmake .. -DJFC_BUILD_DOCS=OFF -DCMAKE_CXX_FLAGS="-pedantic -Wall -Wextra -Ofast -flto -funroll-loops -m64 -march=native"
make
ctest --extra-verbose
- os: linux
name: build wasm using emscripten
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- cmake
- git
- python2.7
- default-jre
script:
- |
git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
pushd ~/emsdk
git pull
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
git clone https://github.com/emscripten-core/emscripten.git ~/emscripten
popd
cd workspace
cmake .. -G "Unix Makefiles" -DJFC_BUILD_DOCS=OFF -DJFC_BUILD_DEMO=ON -DJFC_BUILD_TESTS=OFF -DCMAKE_CXX_FLAGS="-s USE_GLFW=3" -DCMAKE_TOOLCHAIN_FILE="~/emscripten/cmake/Modules/Platform/Emscripten.cmake"
make
- os: osx
name: build macos clang
osx_image: xcode11.2
compiler: clang
script:
- |
cd workspace
cmake .. -DJFC_BUILD_DOCS=OFF -DCMAKE_CXX_FLAGS="-pedantic -Weverything -Wno-c++98-compat -Wno-padded -Ofast -flto -funroll-loops -m64 -march=native -std=c++17 -stdlib=libc++"
make
ctest --extra-verbose
- os: windows
name: build windows msvc
compiler: MSVC
script:
- |
cd workspace
cmake .. -DJFC_BUILD_DOCS=OFF -DCMAKE_CXX_FLAGS=" /W4 /EHsc /WX /std:c++17 /permissive-"
cmake --build .
- os: windows
name: build windows mingw
compiler: mingw64
install: choco install mingw
script:
- |
cd workspace
cmake .. -G "MinGW Makefiles" -DJFC_BUILD_DOCS=OFF -DCMAKE_CXX_FLAGS="-pedantic -Wall -Wextra -Ofast -flto -funroll-loops -m64 -march=native" -DCMAKE_SH="CMAKE_SH-NOTFOUND"
cmake --build .
# Documentation
- os: linux
name: generate doxygen, upload to gh-pages
if: branch = master
compiler: gcc
addons:
apt:
packages:
- doxygen
script:
- |
cd workspace
cmake .. -DJFC_BUILD_DEMO=OFF -DJFC_BUILD_DOCS=ON -DJFC_BUILD_TESTS=OFF
mv docs ~
REMOTE_URL=$(git config --get remote.origin.url | sed -e "s/^https:\/\///")
cd ~
git clone --branch=gh-pages "https://${GITHUB_PUBLIC_REPO_TOKEN}@$REMOTE_URL" gh-pages
cd gh-pages
mv ~/docs/* .
git add --all
git commit -m "updating docs"
git push
# Coverage
- os: linux
name: generate coverage, upload to coveralls
if: branch = master
compiler: gcc
before_install: pip install --user cpp-coveralls
script:
- |
cd workspace
cmake .. -DJFC_BUILD_DOCS=OFF -DCMAKE_CXX_FLAGS="-g -O0 -Wall -fprofile-arcs -ftest-coverage"
make
make test
cd ..
after_success:
- |
coveralls --exclude test --exclude workspace/CMakeFiles --exclude cmake --exclude src --gcov-options '\-lp'
before_script:
- |
CURRENT_COMMIT_HASH="$(git rev-parse HEAD)"