Skip to content

Commit

Permalink
CircleCI (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
lelandjansen committed Nov 4, 2017
1 parent 4c34de0 commit 9cb0478
Show file tree
Hide file tree
Showing 8 changed files with 116 additions and 42 deletions.
48 changes: 48 additions & 0 deletions .circleci/config.yml
@@ -0,0 +1,48 @@
version: 2
jobs:
build-release:
docker:
- image: lelandjansen/speed-of-sound-toolchain:0.0.2
steps:
- checkout
- run:
name: Git submodules
command: git submodule update --init --recursive
- run:
name: Build (release)
command: |
cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
.
cmake --build . -- -j2
build-debug-and-test:
docker:
- image: lelandjansen/speed-of-sound-toolchain:0.0.2
environment:
COVERALLS_REPO_TOKEN: Ny1fDedTzf5EuoygukebX5x28beAqhHD9
steps:
- checkout
- run:
name: Git submodules
command: git submodule update --init --recursive
- run:
name: Build (debug)
command: |
cmake \
-DCMAKE_BUILD_TYPE=DEBUG \
.
cmake --build . -- -j2
- run:
name: Run unit tests
command: ./unit_tests
- run:
name: Coveralls
when: on_success
command: coveralls --include src
workflows:
version: 2
build_and_test:
jobs:
- build-release
- build-debug-and-test

3 changes: 2 additions & 1 deletion .gitignore
@@ -1,2 +1,3 @@
build*/
.idea*/
*.swp

11 changes: 0 additions & 11 deletions .travis.yml

This file was deleted.

45 changes: 19 additions & 26 deletions CMakeLists.txt
Expand Up @@ -2,61 +2,54 @@ cmake_minimum_required(VERSION 3.2 FATAL_ERROR)

project(speed-of-sound)

enable_language(C CXX)

set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
if(CMAKE_BUILD_TYPE MATCHES DEBUG)
message("DEBUG mode")
set(build_type_flags "-g -Og --coverage")
else()
message("RELEASE mode")
set(build_type_flags "-O3 -Werror")
endif()

set(CMAKE_CXX_FLAGS
"${build_type_flags}")
include_directories(
${PROJECT_SOURCE_DIR}/src
)

${PROJECT_SOURCE_DIR}/src)
add_library(
speed_of_sound
src/speed_of_sound.cc
src/speed_of_sound_theory.cc
)
src/speed_of_sound_theory.cc)

# Unit tests
set(GOOGLETEST_ROOT external/googletest/googletest)

include_directories(
${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}
${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/include
)

${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/include)
set(GOOGLETEST_SOURCES
${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/src/gtest-all.cc
${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/src/gtest_main.cc
)

${PROJECT_SOURCE_DIR}/${GOOGLETEST_ROOT}/src/gtest_main.cc)
foreach(_source ${GOOGLETEST_SOURCES})
set_source_files_properties(${_source} PROPERTIES GENERATED 1)
endforeach()

add_library(googletest ${GOOGLETEST_SOURCES})

add_executable(
unit_tests
test/test.cc
test/speed_of_sound_test.cc
test/speed_of_sound_theory_test.cc
)

test/speed_of_sound_theory_test.cc)
add_dependencies(unit_tests googletest)

target_link_libraries(
unit_tests
googletest
speed_of_sound
pthread
)
pthread)

include(CTest)
enable_testing()

add_test(unit ${PROJECT_BINARY_DIR}/unit_tests)

2 changes: 1 addition & 1 deletion CONTRIBUTING
@@ -1,2 +1,2 @@
Leland Jansen
Leland Jansen (lelandjansen)

43 changes: 43 additions & 0 deletions Dockerfile
@@ -0,0 +1,43 @@
FROM ubuntu:xenial

RUN apt-get update

# CircleCI requirements
RUN apt-get install -y \
git \
ssh \
tar \
gzip \
ca-certificates

# Our general requirements
RUN apt-get install -y \
build-essential \
software-properties-common

# LLVM
RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
# Fingerprint: 6084 F3CF 814B 57C1 CF12 EFD5 15CF 4D18 AF4F 7421
RUN apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main"
RUN apt-get update && apt-get install -y \
clang-5.0 \
lldb-5.0 \
lld-5.0 \
clang-tidy-5.0 \
clang-format-5.0

# CMake
RUN wget https://cmake.org/files/v3.9/cmake-3.9.4.tar.gz
RUN tar --extract --gunzip --file cmake-3.9.4.tar.gz
RUN cd cmake-3.9.4 && \
./bootstrap && \
make -j2 && \
make install -j2
RUN rm cmake-3.9.4.tar.gz && \
rm -rf cmake-3.9.4

# Coveralls
RUN apt-get install -y python-pip
RUN pip install --upgrade pip
RUN pip install --prefix /usr/local cpp-coveralls

3 changes: 1 addition & 2 deletions README.md
@@ -1,7 +1,6 @@
# Speed of Sound
[![Build Status](https://travis-ci.org/lelandjansen/speed-of-sound.svg)](https://travis-ci.org/lelandjansen/speed-of-sound)
[![CircleCI](https://circleci.com/gh/lelandjansen/speed-of-sound.svg?style=svg)](https://circleci.com/gh/lelandjansen/speed-of-sound)
[![Coverage Status](https://coveralls.io/repos/github/lelandjansen/speed-of-sound/badge.svg)](https://coveralls.io/github/lelandjansen/speed-of-sound)
[![Analytics](https://ga-beacon.appspot.com/UA-46915227-3/speed-of-sound?flat)](https://github.com/igrigorik/ga-beacon)

**Speed of Sound** is a library to efficiently compute the speed of sound in air. It is intended for use in embedded systems that require a high-precision computation of the speed of sound in air based a variety of ambient conditions.

Expand Down
3 changes: 2 additions & 1 deletion test/test
Expand Up @@ -3,5 +3,6 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
BUILD_DIR="$DIR/../build"
mkdir -p "$BUILD_DIR/build"
cmake -B$BUILD_DIR -H$DIR/..
make -j -C $BUILD_DIR
make -j2 -C $BUILD_DIR
$BUILD_DIR/unit_tests

0 comments on commit 9cb0478

Please sign in to comment.