Skip to content

Commit eaca5c6

Browse files
authored
Merge pull request #218 from robinlinden/clang-ci
Add Clang CI jobs
2 parents 2b15e29 + 13a4455 commit eaca5c6

File tree

3 files changed

+34
-6
lines changed

3 files changed

+34
-6
lines changed

.github/workflows/ci-linux.yaml

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@ jobs:
2727
conan: true
2828
cmake-args: -DCMAKE_PREFIX_PATH=`pwd`/build -DCMAKE_MODULE_PATH=`pwd`/build
2929

30+
- name: ubuntu-20.04-clang-10
31+
os: ubuntu-20.04
32+
compiler: clang
33+
version: "10"
34+
cmake-args: -DAUTOBAHN_USE_LIBCXX=NO
35+
36+
- name: ubuntu-20.04-clang-10-conan
37+
os: ubuntu-20.04
38+
compiler: clang
39+
version: "10"
40+
conan: true
41+
cmake-args: -DCMAKE_PREFIX_PATH=`pwd`/build -DCMAKE_MODULE_PATH=`pwd`/build -DAUTOBAHN_USE_LIBCXX=NO
42+
3043
steps:
3144
- uses: actions/checkout@v2
3245

@@ -37,10 +50,20 @@ jobs:
3750
- name: Install
3851
run: |
3952
python -m pip install cmake==3.17.3 conan==1.28.1 --upgrade
53+
54+
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
55+
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main' -y
4056
sudo apt update
41-
sudo apt-get install -y g++-${{ matrix.version }} g++-${{ matrix.version }}-multilib
42-
echo "::set-env name=CC::gcc-${{ matrix.version }}"
43-
echo "::set-env name=CXX::g++-${{ matrix.version }}"
57+
58+
if [ "${{ matrix.compiler }}" = "gcc" ]; then
59+
sudo apt-get install -y g++-${{ matrix.version }} g++-${{ matrix.version }}-multilib
60+
echo "::set-env name=CC::gcc-${{ matrix.version }}"
61+
echo "::set-env name=CXX::g++-${{ matrix.version }}"
62+
else
63+
sudo apt-get install -y clang-${{ matrix.version }} clang-tidy-${{ matrix.version }} g++-multilib
64+
echo "::set-env name=CC::clang-${{ matrix.version }}"
65+
echo "::set-env name=CXX::clang++-${{ matrix.version }}"
66+
fi
4467
4568
- name: Install dependencies (system)
4669
run: sudo apt-get install -y libboost-all-dev libmsgpack-dev libwebsocketpp-dev

CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ cmake_minimum_required(VERSION 2.8)
22

33
project(autobahn-cpp)
44

5-
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Includes/CMakeLists.txt)
6-
75
option(AUTOBAHN_BUILD_EXAMPLES "Build examples" ON)
6+
option(AUTOBAHN_USE_LIBCXX "Use libc++ instead of libstdc++ when building with Clang" ON)
7+
8+
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Includes/CMakeLists.txt)
89

910
if(AUTOBAHN_BUILD_EXAMPLES)
1011
add_subdirectory(examples)

cmake/Includes/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ if(POLICY CMP0054)
1515
endif()
1616

1717
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
18-
set(CMAKE_CXX_FLAGS "-stdlib=libc++ -Wno-unused-local-typedefs -Wno-unknown-warning-option ${CMAKE_CXX_FLAGS}")
18+
set(CMAKE_CXX_FLAGS "-Wno-unused-local-typedefs -Wno-unknown-warning-option ${CMAKE_CXX_FLAGS}")
19+
if(AUTOBAHN_USE_LIBCXX)
20+
set(CMAKE_CXX_FLAGS "-stdlib=libc++ ${CMAKE_CXX_FLAGS}")
21+
endif()
1922
if ("${CMAKE_GENERATOR}" STREQUAL "Ninja")
2023
set(CMAKE_CXX_FLAGS "-fcolor-diagnostics ${CMAKE_CXX_FLAGS}")
2124
endif()
@@ -57,6 +60,7 @@ find_package(msgpack REQUIRED)
5760
find_package(websocketpp REQUIRED)
5861

5962
MESSAGE( STATUS "AUTOBAHN_BUILD_EXAMPLES: " ${AUTOBAHN_BUILD_EXAMPLES} )
63+
MESSAGE( STATUS "AUTOBAHN_USE_LIBCXX: " ${AUTOBAHN_USE_LIBCXX} )
6064
MESSAGE( STATUS "CMAKE_ROOT: " ${CMAKE_ROOT} )
6165
MESSAGE( STATUS "CMAKE_INSTALL_PREFIX: " ${CMAKE_INSTALL_PREFIX} )
6266
MESSAGE( STATUS "Boost_INCLUDE_DIRS: " ${Boost_INCLUDE_DIRS} )

0 commit comments

Comments
 (0)