Add .travis.yml
This commit is contained in:
parent
ce7d200a7c
commit
1420abc81b
14 changed files with 82 additions and 13 deletions
62
.travis.yml
Normal file
62
.travis.yml
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
language: cpp
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages: ['g++-5']
|
||||
env: TOOLSET=g++-5 LLVM_DOWNLOAD_OS_NAME=x86_64-linux-gnu-ubuntu-14.04 LLVM_VERSION=3.9.1
|
||||
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test']
|
||||
packages: ['g++-5']
|
||||
env: TOOLSET=g++-5 LLVM_DOWNLOAD_OS_NAME=x86_64-linux-gnu-ubuntu-14.04 LLVM_VERSION=4.0.0
|
||||
|
||||
- os: linux
|
||||
compiler: clang
|
||||
addons:
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.9']
|
||||
packages: ['g++-4.9', 'g++-5', 'clang-3.9']
|
||||
env: TOOLSET=clang++-3.9 LLVM_DOWNLOAD_OS_NAME=x86_64-linux-gnu-ubuntu-14.04 LLVM_VERSION=3.9.1
|
||||
|
||||
- os: linux
|
||||
compiler: clang
|
||||
addons:
|
||||
apt:
|
||||
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-precise-3.9']
|
||||
packages: ['g++-4.9', 'g++-5', 'clang-3.9']
|
||||
env: TOOLSET=clang++-3.9 LLVM_DOWNLOAD_OS_NAME=x86_64-linux-gnu-ubuntu-14.04 LLVM_VERSION=4.0.0
|
||||
|
||||
- os: osx
|
||||
compiler: clang
|
||||
env: TOOLSET=clang++ LLVM_DOWNLOAD_OS_NAME=x86_64-apple-darwin LLVM_VERSION=4.0.0
|
||||
|
||||
install:
|
||||
- cd ../
|
||||
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then wget --no-check-certificate https://www.cmake.org/files/v3.3/cmake-3.3.1-Linux-x86_64.tar.gz; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then tar -xzf cmake-3.3.1-Linux-x86_64.tar.gz; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CMAKE=$TRAVIS_BUILD_DIR/../cmake-3.3.1-Linux-x86_64/bin/cmake; fi
|
||||
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then wget --no-check-certificate https://cmake.org/files/v3.3/cmake-3.3.0-Darwin-x86_64.tar.gz; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then tar -xzf cmake-3.3.0-Darwin-x86_64.tar.gz && ls && ls cmake-3.3.0-Darwin-x86_64; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CMAKE=$TRAVIS_BUILD_DIR/../cmake-3.3.0-Darwin-x86_64/CMake.app/Contents/bin/cmake; fi
|
||||
|
||||
- export CXX=$TOOLSET
|
||||
- $CXX --version
|
||||
- $CMAKE --version
|
||||
|
||||
- cd cppast/
|
||||
|
||||
script:
|
||||
- mkdir build/ && cd build/
|
||||
- $CMAKE -DCMAKE_CXX_FLAGS="-pedantic -Wall -Wextra -Wconversion -Wsign-conversion -Wno-parentheses" -DLLVM_DOWNLOAD_OS_NAME=$LLVM_DOWNLOAD_OS_NAME -DLLVM_PREFERRED_VERSION=$LLVM_VERSION ../
|
||||
- $CMAKE --build .
|
||||
- ./test/cppast_test
|
||||
|
|
@ -54,7 +54,7 @@ Else you need to set the CMake variable `LLVM_CONFIG_BINARY` to the proper path.
|
|||
|
||||
If you don't have a proper clang version installed, it can also be downloaded.
|
||||
For that you need to set `LLVM_DOWNLOAD_OS_NAME`.
|
||||
This is the name of the operating system used on the [LLVM pre-built binary archive](http://releases.llvm.org/download.html#4.0.0), e.g. `linux-gnu-ubuntu-16.10` for Ubuntu 16.10.
|
||||
This is the name of the operating system used on the [LLVM pre-built binary archive](http://releases.llvm.org/download.html#4.0.0), e.g. `x86_64-linux-gnu-ubuntu-16.10` for Ubuntu 16.10.
|
||||
|
||||
The other dependencies like [type_safe](http://type_safe.foonathan.net) are installed automatically with git submodules, if they're not installed already.
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
#ifndef CPPAST_CPP_ENTITY_HPP_INCLUDED
|
||||
#define CPPAST_CPP_ENTITY_HPP_INCLUDED
|
||||
|
||||
#include <string>
|
||||
|
||||
#include <type_safe/optional_ref.hpp>
|
||||
|
||||
#include <cppast/detail/intrusive_list.hpp>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace cppast
|
|||
// FNV-1a 64 bit hash
|
||||
constexpr std::size_t id_hash(const char* str, std::size_t hash = fnv_basis)
|
||||
{
|
||||
return *str ? id_hash(str + 1, (hash ^ *str) * fnv_prime) : hash;
|
||||
return *str ? id_hash(str + 1, (hash ^ std::size_t(*str)) * fnv_prime) : hash;
|
||||
}
|
||||
} // namespace detail
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ namespace cppast
|
|||
inline namespace literals
|
||||
{
|
||||
/// \returns A new [cppast::cpp_entity_id]() created from the given string.
|
||||
inline cpp_entity_id operator""_id(const char* str, std::size_t)
|
||||
inline cpp_entity_id operator"" _id(const char* str, std::size_t)
|
||||
{
|
||||
return cpp_entity_id(str);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_class(const detail::parse_context&
|
|||
#if CPPAST_CINDEX_HAS_FRIEND
|
||||
auto is_friend = clang_getCursorKind(parent_cur) == CXCursor_FriendDecl;
|
||||
#else
|
||||
(void)parent_cur;
|
||||
auto is_friend = false;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@
|
|||
#ifndef CPPAST_DEBUG_HELPER_HPP_INCLUDED
|
||||
#define CPPAST_DEBUG_HELPER_HPP_INCLUDED
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "raii_wrapper.hpp"
|
||||
|
||||
namespace cppast
|
||||
|
|
|
|||
|
|
@ -58,7 +58,8 @@ namespace
|
|||
for (auto i = 0; i != no; ++i)
|
||||
try
|
||||
{
|
||||
auto parameter = parse_parameter(context, clang_Cursor_getArgument(cur, i));
|
||||
auto parameter =
|
||||
parse_parameter(context, clang_Cursor_getArgument(cur, unsigned(i)));
|
||||
builder.add_parameter(std::move(parameter));
|
||||
}
|
||||
catch (detail::parse_error& ex)
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_namespace_alias(const detail::pars
|
|||
auto result = cpp_namespace_alias::build(*context.idx, get_entity_id(cur), std::move(name),
|
||||
std::move(target));
|
||||
context.comments.match(*result, cur);
|
||||
return result;
|
||||
return std::move(result);
|
||||
}
|
||||
|
||||
std::unique_ptr<cpp_entity> detail::parse_cpp_using_directive(const detail::parse_context& context,
|
||||
|
|
@ -121,7 +121,7 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_using_directive(const detail::pars
|
|||
auto target = cpp_namespace_ref(parse_ns_target_cursor(cur), std::move(target_name));
|
||||
auto result = cpp_using_directive::build(target);
|
||||
context.comments.match(*result, cur);
|
||||
return result;
|
||||
return std::move(result);
|
||||
}
|
||||
|
||||
namespace
|
||||
|
|
@ -189,5 +189,5 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_using_declaration(
|
|||
auto target = cpp_entity_ref(parse_entity_target_cursor(cur), std::move(target_name));
|
||||
auto result = cpp_using_declaration::build(std::move(target));
|
||||
context.comments.match(*result, cur);
|
||||
return result;
|
||||
return std::move(result);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -227,5 +227,5 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_static_assert(const detail::parse_
|
|||
|
||||
auto result = cpp_static_assert::build(std::move(expr), std::move(msg));
|
||||
context.comments.match(*result, cur);
|
||||
return result;
|
||||
return std::move(result);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ namespace
|
|||
str.push_back(*ptr++);
|
||||
++ptr;
|
||||
|
||||
line = std::stoi(str);
|
||||
line = unsigned(std::stoi(str));
|
||||
}
|
||||
|
||||
DEBUG_ASSERT(*ptr == ':', detail::assert_handler{});
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#ifndef CPPAST_TOKENIZER_HPP_INCLUDED
|
||||
#define CPPAST_TOKENIZER_HPP_INCLUDED
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "raii_wrapper.hpp"
|
||||
|
|
|
|||
|
|
@ -674,6 +674,6 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_type_alias(const detail::parse_con
|
|||
auto result =
|
||||
cpp_type_alias::build(*context.idx, get_entity_id(cur), name.c_str(), std::move(type));
|
||||
context.comments.match(*result, cur);
|
||||
return result;
|
||||
return std::move(result);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_variable(const detail::parse_conte
|
|||
result = cpp_variable::build_declaration(get_entity_id(cur), name.c_str(), std::move(type),
|
||||
storage_class, is_constexpr);
|
||||
context.comments.match(*result, cur);
|
||||
return result;
|
||||
return std::move(result);
|
||||
}
|
||||
|
||||
std::unique_ptr<cpp_entity> detail::parse_cpp_member_variable(const detail::parse_context& context,
|
||||
|
|
@ -108,5 +108,5 @@ std::unique_ptr<cpp_entity> detail::parse_cpp_member_variable(const detail::pars
|
|||
std::move(type), std::move(default_value), is_mutable);
|
||||
}
|
||||
context.comments.match(*result, cur);
|
||||
return result;
|
||||
return std::move(result);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ unsigned test_visit(const cppast::cpp_file& file, Func f, bool check_code = true
|
|||
template <class Entity>
|
||||
unsigned count_children(const Entity& cont)
|
||||
{
|
||||
return std::distance(cont.begin(), cont.end());
|
||||
return unsigned(std::distance(cont.begin(), cont.end()));
|
||||
}
|
||||
|
||||
// ignores templated scopes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue