-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Matt Klein
authored
Aug 10, 2016
1 parent
a714b9c
commit 3285c1a
Showing
597 changed files
with
58,363 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
Language: Cpp | ||
AccessModifierOffset: -2 | ||
ColumnLimit: 100 | ||
DerivePointerAlignment: false | ||
PointerAlignment: Left | ||
... | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
sudo: required | ||
|
||
services: | ||
- docker | ||
|
||
install: true | ||
|
||
env: | ||
- TEST_TYPE=normal | ||
- TEST_TYPE=coverage | ||
|
||
script: docker run -t -i -v $TRAVIS_BUILD_DIR:/source lyft/envoy-build:latest /bin/bash -c "cd /source && ci/do_ci.sh $TEST_TYPE" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
cmake_minimum_required(VERSION 2.8) | ||
|
||
project(envoy CXX) | ||
|
||
include(common.cmake) | ||
include(thirdparty.cmake) | ||
|
||
# Setup build ID via the linker. Also, statically link GCC libraries to lock GCC version. | ||
execute_process(COMMAND git rev-parse --sq HEAD OUTPUT_VARIABLE GIT_COMMIT WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}) | ||
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--build-id=0x${GIT_COMMIT} -static-libstdc++ -static-libgcc ${ENVOY_EXE_EXTRA_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}") | ||
|
||
include_directories(${PROJECT_SOURCE_DIR}/include) | ||
include_directories(${PROJECT_BINARY_DIR}/source) | ||
include_directories(${PROJECT_SOURCE_DIR}/source) | ||
include_directories(${ENVOY_SPDLOG_INCLUDE_DIR}) | ||
include_directories(SYSTEM ${ENVOY_PROTOBUF_INCLUDE_DIR}) | ||
|
||
add_subdirectory(source) | ||
add_subdirectory(test) | ||
|
||
set(CLANG-FORMAT clang-format-3.6 CACHE FILEPATH "path to clang-format binary") | ||
set(CHECK_FORMAT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/tools/check_format.py) | ||
add_custom_target(check_format | ||
${CHECK_FORMAT_PATH} ${CMAKE_SOURCE_DIR} ${CLANG-FORMAT} check) | ||
add_custom_target(fix_format | ||
${CHECK_FORMAT_PATH} ${CMAKE_SOURCE_DIR} ${CLANG-FORMAT} fix) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
FROM ubuntu:trusty | ||
COPY ./build_container.sh / | ||
RUN ./build_container.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
#!/bin/bash | ||
|
||
set -e | ||
|
||
# Setup basic requirements and install them. | ||
apt-get update | ||
apt-get install -y wget software-properties-common make cmake git python clang-format-3.6 bc | ||
add-apt-repository -y ppa:ubuntu-toolchain-r/test | ||
apt-get update | ||
apt-get install -y g++-4.9 | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# Build artifacts | ||
THIRDPARTY_BUILD=/thirdparty_build | ||
mkdir $THIRDPARTY_BUILD | ||
|
||
# Source artifacts | ||
mkdir thirdparty | ||
cd thirdparty | ||
|
||
# GCC 4.9 for everything. | ||
export CC=gcc-4.9 | ||
export CXX=g++-4.9 | ||
|
||
# openssl | ||
wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz | ||
tar xf openssl-1.0.2h.tar.gz | ||
cd openssl-1.0.2h | ||
./config --prefix=$THIRDPARTY_BUILD -DPURIFY no-shared | ||
make install | ||
cd .. | ||
rm -fr openssl* | ||
|
||
# libevent | ||
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz | ||
tar xf libevent-2.0.22-stable.tar.gz | ||
cd libevent-2.0.22-stable | ||
./configure --prefix=$THIRDPARTY_BUILD --enable-shared=no --disable-libevent-regress \ | ||
CPPFLAGS=-I$THIRDPARTY_BUILD/include LDFLAGS=-L$THIRDPARTY_BUILD/lib \ | ||
OPENSSL_LIBADD=-ldl | ||
make install | ||
cd .. | ||
rm -fr libevent* | ||
|
||
# gperftools | ||
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz | ||
tar xf gperftools-2.5.tar.gz | ||
cd gperftools-2.5 | ||
./configure --prefix=$THIRDPARTY_BUILD --enable-shared=no --enable-frame-pointers | ||
make install | ||
cd .. | ||
rm -fr gperftools* | ||
|
||
# jansson | ||
wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz | ||
tar xf jansson-2.7.tar.gz | ||
cd jansson-2.7 | ||
./configure --prefix=$THIRDPARTY_BUILD --enable-shared=no | ||
make install | ||
cd .. | ||
rm -fr jansson* | ||
|
||
# nghttp2 | ||
wget https://github.com/nghttp2/nghttp2/releases/download/v1.9.2/nghttp2-1.9.2.tar.gz | ||
tar xf nghttp2-1.9.2.tar.gz | ||
cd nghttp2-1.9.2 | ||
./configure --prefix=$THIRDPARTY_BUILD --enable-shared=no --enable-lib-only | ||
make install | ||
cd .. | ||
rm -fr nghttp2* | ||
|
||
# protobuf | ||
wget https://github.com/google/protobuf/releases/download/v3.0.0/protobuf-cpp-3.0.0.tar.gz | ||
tar xf protobuf-cpp-3.0.0.tar.gz | ||
cd protobuf-3.0.0 | ||
./configure --prefix=$THIRDPARTY_BUILD --enable-shared=no | ||
make install | ||
cd .. | ||
rm -fr protobuf* | ||
|
||
# cotire | ||
wget https://github.com/sakra/cotire/archive/cotire-1.7.8.tar.gz | ||
tar xf cotire-1.7.8.tar.gz | ||
rm cotire-1.7.8.tar.gz | ||
|
||
# spdlog (not tag based) | ||
git clone https://github.com/gabime/spdlog.git | ||
cd spdlog | ||
git reset --hard 319a62 | ||
cd .. | ||
|
||
# http-parser | ||
wget -O http-parser-v2.7.0.tar.gz https://github.com/nodejs/http-parser/archive/v2.7.0.tar.gz | ||
tar xf http-parser-v2.7.0.tar.gz | ||
cd http-parser-2.7.0 | ||
$CC -O2 -c http_parser.c -o http_parser.o | ||
ar rcs libhttp_parser.a http_parser.o | ||
cp libhttp_parser.a $THIRDPARTY_BUILD/lib | ||
cp http_parser.h $THIRDPARTY_BUILD/include | ||
cd .. | ||
rm -fr http-parser* | ||
|
||
# tclap | ||
wget -O tclap-1.2.1.tar.gz https://sourceforge.net/projects/tclap/files/tclap-1.2.1.tar.gz/download | ||
tar xf tclap-1.2.1.tar.gz | ||
rm tclap-1.2.1.tar.gz | ||
|
||
# googletest (new repo layout is not tagged. Use master for now since test code). | ||
git clone https://github.com/google/googletest | ||
cd googletest | ||
cmake -DCMAKE_INSTALL_PREFIX:PATH=$THIRDPARTY_BUILD . | ||
make install | ||
cd .. | ||
rm -fr googletest | ||
|
||
# gcovr | ||
wget -O gcovr-3.3.tar.gz https://github.com/gcovr/gcovr/archive/3.3.tar.gz | ||
tar xf gcovr-3.3.tar.gz | ||
rm gcovr-3.3.tar.gz | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#!/bin/bash | ||
|
||
set -e | ||
|
||
export CC=gcc-4.9 | ||
export CXX=g++-4.9 | ||
NUM_CPUS=`grep -c ^processor /proc/cpuinfo` | ||
|
||
echo "building using $NUM_CPUS CPUs" | ||
|
||
if [[ "$1" == "coverage" ]]; then | ||
echo "coverage build..." | ||
EXTRA_CMAKE_FLAGS="-DENVOY_CODE_COVERAGE:BOOL=ON" | ||
TEST_TARGET="envoy.check-coverage" | ||
else | ||
echo "normal build..." | ||
TEST_TARGET="envoy.check" | ||
fi | ||
|
||
mkdir build | ||
cd build | ||
|
||
cmake \ | ||
$EXTRA_CMAKE_FLAGS -DENVOY_DEBUG:BOOL=OFF \ | ||
-DENVOY_COTIRE_MODULE_DIR:FILEPATH=/thirdparty/cotire-cotire-1.7.8/CMake \ | ||
-DENVOY_GMOCK_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_GPERFTOOLS_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_GTEST_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_HTTP_PARSER_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_LIBEVENT_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_NGHTTP2_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_SPDLOG_INCLUDE_DIR:FILEPATH=/thirdparty/spdlog/include \ | ||
-DENVOY_TCLAP_INCLUDE_DIR:FILEPATH=/thirdparty/tclap-1.2.1/include \ | ||
-DENVOY_JANSSON_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_OPENSSL_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_PROTOBUF_INCLUDE_DIR:FILEPATH=/thirdparty_build/include \ | ||
-DENVOY_PROTOBUF_PROTOC:FILEPATH=/thirdparty_build/bin/protoc \ | ||
-DENVOY_GCOVR:FILEPATH=/thirdparty/gcovr-3.3/scripts/gcovr \ | ||
-DENVOY_GCOVR_EXTRA_ARGS:STRING="-e test/* -e build/*" \ | ||
-DENVOY_EXE_EXTRA_LINKER_FLAGS:STRING=-L/thirdparty_build/lib \ | ||
-DENVOY_TEST_EXTRA_LINKER_FLAGS:STRING=-L/thirdparty_build/lib \ | ||
.. | ||
|
||
make check_format | ||
make -j$NUM_CPUS $TEST_TARGET | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb3 -fno-omit-frame-pointer -Wall -Wextra -Werror -Wnon-virtual-dtor -Woverloaded-virtual -Wold-style-cast -std=c++0x") | ||
|
||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | ||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9") | ||
message(FATAL_ERROR "gcc >= 4.9 required for regex support") | ||
endif() | ||
endif() | ||
|
||
option(ENVOY_CODE_COVERAGE "build with code coverage intrumentation" OFF) | ||
if (ENVOY_CODE_COVERAGE) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") | ||
add_definitions(-DCOVERAGE) | ||
endif() | ||
|
||
option(ENVOY_DEBUG "build debug binaries" ON) | ||
if (ENVOY_DEBUG) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0") | ||
add_definitions(-DDEBUG) | ||
else() | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") | ||
add_definitions(-DNDEBUG) | ||
endif() | ||
|
||
option(ENVOY_SANITIZE "build with address sanitizer" OFF) | ||
if (ENVOY_SANITIZE) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") | ||
set(ENVOY_TCMALLOC OFF CACHE BOOL "" FORCE) | ||
endif() | ||
|
||
option(ENVOY_TCMALLOC "build with tcmalloc" ON) | ||
if (ENVOY_TCMALLOC) | ||
add_definitions(-DTCMALLOC) | ||
endif() | ||
|
||
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${ENVOY_COTIRE_MODULE_DIR}") | ||
include(cotire) |
Oops, something went wrong.