Skip to content

Commit 613d53d

Browse files
committed
Install Github Actions for CI.
1 parent f243c5c commit 613d53d

File tree

8 files changed

+680
-52
lines changed

8 files changed

+680
-52
lines changed

.github/workflows/cmake.yml

Lines changed: 0 additions & 50 deletions
This file was deleted.

.github/workflows/macos.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: MacOS CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- dev
8+
9+
env:
10+
BUILD_TYPE: Release
11+
GNU_CC: /usr/local/bin/gcc-9
12+
GNU_CXX: /usr/local/bin/g++-9
13+
LLVM_CC: /usr/local/opt/llvm/bin/clang
14+
LLVM_CXX: /usr/local/opt/llvm/bin/clang++
15+
16+
jobs:
17+
macos:
18+
runs-on: macos-latest
19+
20+
strategy:
21+
matrix:
22+
compiler: [gcc, clang]
23+
24+
steps:
25+
- uses: actions/checkout@v2
26+
with:
27+
submodules: true
28+
29+
- name: Install GNU C/C++ Compiler
30+
if: ${{ matrix.compiler == 'gcc' }}
31+
run: |
32+
brew install gcc@9
33+
34+
- name: Install LLVM Clang
35+
if: ${{ matrix.compiler == 'clang' }}
36+
run: |
37+
brew install llvm
38+
39+
- name: Install Eigen3
40+
run: |
41+
brew install eigen
42+
43+
- name: Install Google Test
44+
env:
45+
C_COMPILER: ${{ matrix.compiler }}
46+
run: |
47+
git clone https://github.com/google/googletest.git --depth 1
48+
cd googletest
49+
mkdir build
50+
cd build
51+
52+
if [ "$C_COMPILER" = "gcc" ]; then
53+
cmake .. \
54+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
55+
-DCMAKE_C_COMPILER=$GNU_CC \
56+
-DCMAKE_CXX_COMPILER=$GNU_CXX
57+
fi
58+
59+
if [ "$C_COMPILER" = "clang" ]; then
60+
cmake .. \
61+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
62+
-DCMAKE_C_COMPILER=$LLVM_CC \
63+
-DCMAKE_CXX_COMPILER=$LLVM_CXX
64+
fi
65+
66+
cmake --build . --config $BUILD_TARGET --parallel 2
67+
cmake --build . --target install
68+
69+
- name: CMake Build
70+
env:
71+
C_COMPILER: ${{ matrix.compiler }}
72+
run: |
73+
cmake -E make_directory ${{runner.workspace}}/build
74+
cd ${{runner.workspace}}/build
75+
76+
if [ "$C_COMPILER" = "gcc" ]; then
77+
cmake $GITHUB_WORKSPACE \
78+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
79+
-DCMAKE_C_COMPILER=$GNU_CC \
80+
-DCMAKE_CXX_COMPILER=$GNU_CXX \
81+
82+
fi
83+
84+
if [ "$C_COMPILER" = "clang" ]; then
85+
cmake $GITHUB_WORKSPACE \
86+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
87+
-DCMAKE_C_COMPILER=$LLVM_CC \
88+
-DCMAKE_CXX_COMPILER=$LLVM_CXX
89+
fi
90+
91+
cmake --build . --config $BUILD_TYPE --parallel 2
92+
93+
- name: Unit Test
94+
working-directory: ${{runner.workspace}}/build
95+
shell: bash
96+
run: ctest -C $BUILD_TYPE

.github/workflows/ubuntu.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Ubuntu CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- dev
8+
9+
env:
10+
BUILD_TYPE: Release
11+
GNU_CC: gcc-9
12+
GNU_CXX: g++-9
13+
LLVM_CC: clang-10
14+
LLVM_CXX: clang++-10
15+
16+
jobs:
17+
ubuntu:
18+
runs-on: ubuntu-latest
19+
20+
strategy:
21+
matrix:
22+
compiler: [gcc, clang]
23+
24+
steps:
25+
- uses: actions/checkout@v2
26+
with:
27+
submodules: true
28+
29+
- name: Install GNU C/C++ Compiler
30+
if: ${{ matrix.compiler == 'gcc' }}
31+
run: |
32+
sudo apt-get install -y gcc-9 g++-9
33+
34+
- name: Install LLVM Clang
35+
if: ${{ matrix.compiler == 'clang' }}
36+
run: |
37+
sudo add-apt-repository -y "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main"
38+
sudo apt-get update -y
39+
sudo apt-get install -y clang-10 clang++-10
40+
41+
- name: Install Eigen3
42+
run: |
43+
sudo apt-get install libeigen3-dev
44+
45+
- name: Install Google Test
46+
env:
47+
C_COMPILER: ${{ matrix.compiler }}
48+
run: |
49+
git clone https://github.com/google/googletest.git
50+
cd googletest
51+
mkdir build
52+
cd build
53+
54+
if [ "$C_COMPILER" = "gcc" ]; then
55+
cmake .. \
56+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
57+
-DCMAKE_C_COMPILER=$GNU_CC \
58+
-DCMAKE_CXX_COMPILER=$GNU_CXX
59+
fi
60+
61+
if [ "$C_COMPILER" = "clang" ]; then
62+
cmake .. \
63+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
64+
-DCMAKE_C_COMPILER=$LLVM_CC \
65+
-DCMAKE_CXX_COMPILER=$LLVM_CXX
66+
fi
67+
68+
cmake --build . --config $BUILD_TYPE --parallel 2
69+
sudo cmake --build . --target install
70+
71+
- name: CMake Build
72+
env:
73+
C_COMPILER: ${{ matrix.compiler }}
74+
run: |
75+
cmake -E make_directory ${{runner.workspace}}/build
76+
cd ${{runner.workspace}}/build
77+
78+
if [ "$C_COMPILER" = "gcc" ]; then
79+
cmake $GITHUB_WORKSPACE \
80+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
81+
-DCMAKE_C_COMPILER=$GNU_CC \
82+
-DCMAKE_CXX_COMPILER=$GNU_CXX
83+
fi
84+
85+
if [ "$C_COMPILER" = "clang" ]; then
86+
cmake $GITHUB_WORKSPACE \
87+
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
88+
-DCMAKE_C_COMPILER=$LLVM_CC \
89+
-DCMAKE_CXX_COMPILER=$LLVM_CXX
90+
fi
91+
92+
cmake --build . --config $BUILD_TYPE --parallel 2
93+
94+
- name: Unit Test
95+
working-directory: ${{ runner.workspace }}/build
96+
shell: bash
97+
run: ctest -C $BUILD_TYPE

.github/workflows/windows.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Windows CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- dev
8+
9+
env:
10+
BUILD_TYPE: Release
11+
12+
jobs:
13+
windows:
14+
runs-on: windows-latest
15+
steps:
16+
- uses: actions/checkout@v2
17+
with:
18+
submodules: true
19+
20+
- name: Checkout submodules
21+
run: git submodule update --init --recursive
22+
23+
- name: Install Eigen3
24+
run: |
25+
git clone https://github.com/eigenteam/eigen-git-mirror --depth 1
26+
cd eigen-git-mirror
27+
mkdir build
28+
cd build
29+
cmake .. `
30+
-G "Visual Studio 16 2019" -A x64 `
31+
-DCMAKE_INSTALL_PREFIX="C:/Program Files/Eigen"
32+
cmake --build . --config "$env:BUILD_TYPE"
33+
cmake --build . --config "$env:BUILD_TYPE" --target INSTALL
34+
35+
- name: Install Google Test
36+
run: |
37+
git clone https://github.com/google/googletest.git --depth 1
38+
cd googletest
39+
mkdir build
40+
cd build
41+
cmake .. `
42+
-G "Visual Studio 16 2019" -A x64 `
43+
-DCMAKE_INSTALL_PREFIX="C:/Program Files/GoogleTest/"
44+
cmake --build . --config "$env:BUILD_TYPE"
45+
cmake --build . --config "$env:BUILD_TYPE" --target INSTALL
46+
47+
- name: CMake Build
48+
run: |
49+
cmake -E make_directory ${{ runner.workspace }}/build
50+
cd ${{ runner.workspace }}/build
51+
cmake "$env:GITHUB_WORKSPACE" `
52+
-G "Visual Studio 16 2019" -A x64 `
53+
-DEIGEN3_INCLUDE_DIR="C:/Program Files/Eigen/include/eigen3" `
54+
-DGoogleTest_DIR="C:/Program Files/GoogleTest" `
55+
-DBUILD_TESTS=ON `
56+
-DBUILD_EXAMPLES=ON
57+
cmake --build . --config "$env:BUILD_TYPE"
58+
59+
- name: Unit Test
60+
working-directory: ${{ runner.workspace }}/build
61+
shell: bash
62+
run: ctest -C $BUILD_TYPE

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ if (UNIX)
1919
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -O2")
2020
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")
2121
if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
22-
set(CXX_FS_LIBRARY "c++fs")
22+
#set(CXX_FS_LIBRARY "stdc++fs")
2323
else()
2424
set(CXX_FS_LIBRARY "stdc++fs")
2525
endif()

0 commit comments

Comments
 (0)