Skip to content

Commit

Permalink
Simple working version
Browse files Browse the repository at this point in the history
  • Loading branch information
abbyssoul committed Feb 6, 2020
1 parent c7d579c commit c90c730
Show file tree
Hide file tree
Showing 40 changed files with 4,039 additions and 23 deletions.
101 changes: 78 additions & 23 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,32 +1,87 @@
# Prerequisites
*.d
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
bin/
build/
docs/html/*
lib/
libs/*/
tools/*/
src/generated/
coverage.info
Makefile

# Compiled Object files
*.slo
*.lo
<
*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
*.debug
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash

# Precompiled Headers
*.gch
*.pch
# qtcreator generated files
*.pro.user*
*.config
*.creator
*.creator.user
*.files
*.includes

# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# xemacs temporary files
*.flc

# Fortran module files
*.mod
*.smod
# Vim temporary files
.*.swp

# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*

# Executables
# MinGW generated files
*.Debug
*.Release

# Python byte code
*.pyc

# Binaries
# --------
*.dll
*.exe
*.out
*.app


74 changes: 74 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
dist: xenial
language: cpp
compiler:
- clang
- gcc
os:
- linux
env:
global:
# The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
# via the "travis encrypt" command using the project repo's public key
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- "pkg-config"
- "python3"
- "python3-dev"
- "python3-yaml"
- "python3-wheel"
- "python3-setuptools"
- "python3-cryptography"
- "python3-pip"
- gcc-7
- g++-7
- ninja-build
- cmake
- doxygen
- libc6-dbg # needed by Valgrind
- valgrind
- lcov
- curl
coverity_scan:
project:
name: "abbyssoul/libapsio"
description: "Async 9p server"
notification_email: abbyssoul@gmail.com
build_command_prepend: "./configure --enable-coverage --disable-sanitizer"
build_command: make coverage_report
branch_pattern: coverity_scan

before_install:
- echo -n | openssl s_client -connect https://scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
- sudo -H pip3 install --upgrade pip
- sudo -H pip3 install cpplint cpp-coveralls
- sudo -H pip3 install conan --upgrade
- gem install coveralls-lcov

install:
- gcov --version
- lcov --version
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 90 --slave /usr/bin/g++ g++ /usr/bin/g++-7
- sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-7 90
- echo $CXX
- $CXX --version
- ld --version
- conan --version
- conan profile new default --detect
- if [ "${TRAVIS_COMPILER}" != "clang" ]; then conan profile update settings.compiler.libcxx=libstdc++11 default; fi
- conan remote add abbyssoul https://api.bintray.com/conan/abbyssoul/public-conan

script:
- ./configure --enable-coverage --enable-sanitizer && make clean;
- if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make codecheck; fi
- if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then make test; fi
# Disabled valgrind build as std::random_device causes failure on Valgrind-3.11.0 avaliable in travisCI
#- if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then ./configure --disable-sanitizer --enable-debug && make clean && make verify ; fi

after_success:
- make coverage_report
- bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
- coveralls-lcov --repo-token ${COVERALLS_TOKEN} coverage.info # uploads to coveralls
44 changes: 44 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
cmake_minimum_required(VERSION 3.12)
project(apsio)
set(PROJECT_DESCRIPTION "Async 9p server")


option(COVERAGE "Generate coverage data" OFF)
option(SANITIZE "Enable 'sanitize' compiler flag" OFF)
option(PROFILE "Enable profile information" OFF)
option(PKG_CONFIG "Enable installation of pkgconfig file" OFF)

# Include common compile flag
include(cmake/compile_flags.cmake)
include(GNUInstallDirs)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

# Configure the project:
configure_file(lib${PROJECT_NAME}.pc.in lib${PROJECT_NAME}.pc @ONLY)

# ---------------------------------
# Build project dependencies
# ---------------------------------
include_directories(include)

add_subdirectory(src)
add_subdirectory(test EXCLUDE_FROM_ALL)
add_subdirectory(examples EXCLUDE_FROM_ALL)

# Install include headers
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})

# Install pkgconfig descriptor
if(PKG_CONFIG)
install(FILES ${CMAKE_BINARY_DIR}/lib${PROJECT_NAME}.pc
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig)
endif()

# ---------------------------------
# Show build configuration status:
# ---------------------------------
message(STATUS, "BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
message(STATUS, "CXXFLAGS: ${CMAKE_CXX_FLAGS}")
message(STATUS, "SANITIZE: ${SANITIZE}")
message(STATUS, "COVERAGE: ${COVERAGE}")
9 changes: 9 additions & 0 deletions CPPLINT.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
set noparent
linelength=120
filter=-whitespace/tab,-whitespace/indent,-whitespace/blank_line,-whitespace/braces
filter=-build/c++11
filter=-build/namespaces,-build/include_order,-build/include_what_you_use

filter=-runtime/references,-runtime/explicit
#filter=-runtime/threadsafe_fn

Loading

0 comments on commit c90c730

Please sign in to comment.