-
Notifications
You must be signed in to change notification settings - Fork 5
139 lines (137 loc) · 5.07 KB
/
ubuntu.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
127
128
129
130
131
132
133
134
135
136
137
138
139
name: ubuntu CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-18.04
steps:
# checkout
- uses: actions/checkout@v2
# cached CUDA
- name: setup CUDA directories
run: |
sudo mkdir /usr/local/cuda-11.0
sudo chown -R runner:runner /usr/local/cuda-11.0
- name: cache CUDA toolkit
id: cache-cuda
uses: actions/cache@v2
with:
path: /usr/local/cuda-11.0
key: cuda-toolkit-11-0
# download CUDA toolchain
- name: download cuda-toolkit-11-0
if: steps.cache-cuda.outputs.cache-hit != 'true'
run: |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt-get update
sudo apt-get -y install cuda-toolkit-11-0
- name: apt dependencies
run: |
# OpenCV deps
sudo apt install -y libgtk-3-dev ffmpeg libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev
# pangolin deps
sudo apt install -y libglew-dev libglfw3-dev
# g2o deps
sudo apt install -y libatlas-base-dev libsuitesparse-dev
# librealsense
sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u
sudo apt-get install -y librealsense2-dkms librealsense2-utils librealsense2-dev
# other
sudo apt install -y libyaml-cpp-dev libgoogle-glog-dev libgflags-dev clang-format-10
- name: add system path
run: |
echo "/usr/local/cuda-11.0/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: local dependencies cache
id: cache-local
uses: actions/cache@v2
with:
path: ~/.local
key: local-deps-build-v1.0
- name: local dependencies build
if: steps.cache-local.outputs.cache-hit != 'true'
run: |
# Eigen3
git clone https://gitlab.com/libeigen/eigen.git ~/eigen && cd ~/eigen
git checkout 3.3.7
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local ..
make install
# OpenCV
git clone https://github.com/opencv/opencv.git ~/opencv && cd ~/opencv
git checkout 4.5.1
mkdir build && cd build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$HOME/.local \
-DENABLE_CXX11=ON \
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_OPENEXR=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_TESTS=OFF \
-DWITH_EIGEN=ON \
-DWITH_FFMPEG=ON \
-DWITH_OPENMP=ON \
..
make -j3 && make install
# Pangolin viewer
git clone https://github.com/stevenlovegrove/Pangolin.git ~/Pangolin && cd ~/Pangolin
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local ..
make -j3 && make install
# DBoW2
git clone https://github.com/shinsumicco/DBoW2.git ~/DBoW2 && cd ~/DBoW2
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local ..
make -j3 && make install
# g2o
git clone https://github.com/RainerKuemmerle/g2o.git ~/g2o && cd ~/g2o
mkdir build && cd build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$HOME/.local \
-DCMAKE_CXX_FLAGS=-std=c++14 \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_UNITTESTS=OFF \
-DBUILD_WITH_MARCH_NATIVE=ON \
-DG2O_USE_CHOLMOD=OFF \
-DG2O_USE_CSPARSE=ON \
-DG2O_USE_OPENGL=OFF \
-DG2O_USE_OPENMP=ON \
..
make -j3 && make install
# OpenVSLAM
git clone https://github.com/alvinsunyixiao/openvslam.git ~/openvslam && cd ~/openvslam
git checkout system_inherit
mkdir build && cd build
EIGEN3_DIR=$HOME/.local/share/eigen3/cmake cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$HOME/.local \
-DINSTALL_PANGOLIN_VIEWER=ON \
-DBUILD_WITH_MARCH_NATIVE=ON \
-DUSE_PANGOLIN_VIEWER=ON \
-DUSE_SOCKET_PUBLISHER=OFF \
-DUSE_STACK_TRACE_LOGGER=ON \
-DBOW_FRAMEWORK=DBoW2 \
-DBUILD_TESTS=ON \
..
make -j3 && make install
- name: cmake
run: |
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
- name: format check
run: make check-format
working-directory: build
- name: build
run: make -j3
working-directory: build