summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.gitmodules2
-rw-r--r--.travis.yml91
-rwxr-xr-xCIbuild.sh23
-rw-r--r--COMPILING.md2
-rw-r--r--Tools/ProtoProxy/Connection.cpp8
m---------lib/jsoncpp0
-rw-r--r--src/Bindings/CMakeLists.txt2
-rw-r--r--src/main.cpp10
-rw-r--r--tests/HTTP/UrlClientTest.cpp2
9 files changed, 85 insertions, 55 deletions
diff --git a/.gitmodules b/.gitmodules
index aa4d2b067..0a366799c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -21,7 +21,7 @@
ignore = dirty
[submodule "lib/jsoncpp"]
path = lib/jsoncpp
- url = https://github.com/open-source-parsers/jsoncpp.git
+ url = https://github.com/cuberite/jsoncpp.git
ignore = dirty
[submodule "lib/TCLAP"]
path = lib/TCLAP
diff --git a/.travis.yml b/.travis.yml
index 759de03f9..481dcf078 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,40 +1,73 @@
language: cpp
sudo: false
-os:
-- linux
-- osx
-
-compiler:
-- clang
-- gcc
+# Use Linux by default
+os: linux
matrix:
- exclude:
- - os: osx
- compiler: gcc
-
-addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - g++-4.8
- - gdb
-
-
-before_script:
-- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
- brew update;
- brew install gdb;
- fi
+ include:
+ # AppleClang
+ # OSX workers are slower to start up. Having these first in the build matrix makes travis faster overall.
+ - os: osx
+ compiler: clang
+ env: &Release
+ - TRAVIS_CUBERITE_BUILD_TYPE=RELEASE CUBERITE_PATH=./Cuberite
+ - os: osx
+ compiler: clang
+ env: &Debug
+ - TRAVIS_CUBERITE_BUILD_TYPE=DEBUG CUBERITE_PATH=./Cuberite_debug
+ # Default clang
+ - compiler: clang
+ addons: &gdb
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - gdb
+ env: *Release
+ - compiler: clang
+ addons: *gdb
+ env: *Debug
+ # clang 3.5
+ - compiler: clang
+ addons: &clang35
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ - llvm-toolchain-precise-3.5
+ packages:
+ - clang++-3.5
+ - clang-3.5
+ - gdb
+ before_install:
+ - CC=clang-3.5;CXX=clang++-3.5
+ env: *Release
+ - compiler: clang
+ addons: *clang35
+ before_install:
+ - CC=clang-3.5;CXX=clang++-3.5
+ env: *Debug
+ # gcc 4.8
+ - compiler: gcc
+ addons: &gcc48
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ packages:
+ - g++-4.8
+ - gcc-4.8
+ - gdb
+ before_install:
+ - CC=gcc-4.8;CXX=g++-4.8
+ env: *Release
+ - compiler: gcc
+ addons: *gcc48
+ before_install:
+ - CC=gcc-4.8;CXX=g++-4.8
+ env: *Debug
script: ./CIbuild.sh
-env:
- - TRAVIS_CUBERITE_BUILD_TYPE=RELEASE CUBERITE_PATH=./Cuberite
- - TRAVIS_CUBERITE_BUILD_TYPE=DEBUG CUBERITE_PATH=./Cuberite_debug
-
notifications:
email:
on_success: change
diff --git a/CIbuild.sh b/CIbuild.sh
index f152a15e1..b1d4d1b3c 100755
--- a/CIbuild.sh
+++ b/CIbuild.sh
@@ -6,11 +6,6 @@ export CUBERITE_BUILD_SERIES_NAME="Travis $CC $TRAVIS_CUBERITE_BUILD_TYPE"
export CUBERITE_BUILD_ID=$TRAVIS_JOB_NUMBER
export CUBERITE_BUILD_DATETIME=`date`
-if [ "$CXX" == "g++" ]; then
- # This is a temporary workaround to allow the identification of GCC-4.8 by CMake, required for C++11 features
- # Travis Docker containers don't allow sudo, which update-alternatives needs, and it seems no alternative to this command is provided, hence:
- export CXX="/usr/bin/g++-4.8"
-fi
cmake . -DBUILD_TOOLS=1 -DSELF_TEST=1;
echo "Building..."
@@ -22,22 +17,22 @@ echo -e "define hook-quit\n\tset confirm off\nend\n" > ~/.gdbinit
echo "Testing..."
-# OSX builds need sudo because gdb isn't signed
+# OSX builds don't have gdb
if [ "$TRAVIS_OS_NAME" = osx ]; then
- GDB_COMMAND="sudo gdb"
+ GDB_COMMAND=""
else
- GDB_COMMAND="gdb"
+ GDB_COMMAND="gdb -return-child-result -ex run -ex \"bt\" -ex \"info threads\" -ex \"thread apply all bt\" -ex \"quit\" --args"
fi
cd Server/;
touch apiCheckFailed.flag
if [ "$TRAVIS_CUBERITE_BUILD_TYPE" != "COVERAGE" ]; then
- ${GDB_COMMAND} -return-child-result -ex run -ex "bt" -ex "info threads" -ex "thread apply all bt" -ex "quit" --args $CUBERITE_PATH << EOF
-load APIDump
-apicheck
-restart
-stop
-EOF
+ ${GDB_COMMAND} ${CUBERITE_PATH} <<- EOF
+ load APIDump
+ apicheck
+ restart
+ stop
+ EOF
if [ -f ./NewlyUndocumented.lua ]; then
echo "ERROR: Newly undocumented API symbols found:"
cat ./NewlyUndocumented.lua
diff --git a/COMPILING.md b/COMPILING.md
index 7ed7c7efc..4c6826f7e 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -77,7 +77,7 @@ Install git, make, cmake and clang (or gcc), using your platform's package manag
```
sudo apt-get install git make cmake clang
```
-Ensure that you have modern C++ compiler and linker (Clang 3.4+, GCC 4.8+, or VS 2013+).
+Ensure that you have modern C++ compiler and linker (Clang 3.5+, GCC 4.8+, or VS 2013+).
### Getting the Source
diff --git a/Tools/ProtoProxy/Connection.cpp b/Tools/ProtoProxy/Connection.cpp
index 1f765340f..a9fbe163e 100644
--- a/Tools/ProtoProxy/Connection.cpp
+++ b/Tools/ProtoProxy/Connection.cpp
@@ -190,7 +190,7 @@ struct sChunkMeta
cConnection::cConnection(SOCKET a_ClientSocket, cServer & a_Server) :
m_ItemIdx(0),
- m_LogFile(NULL),
+ m_LogFile(nullptr),
m_Server(a_Server),
m_ClientSocket(a_ClientSocket),
m_ServerSocket(-1),
@@ -252,7 +252,7 @@ void cConnection::Run(void)
FD_SET(m_ServerSocket, &ReadFDs);
FD_SET(m_ClientSocket, &ReadFDs);
SOCKET MaxSocket = std::max(m_ServerSocket, m_ClientSocket);
- int res = select(MaxSocket + 1, &ReadFDs, NULL, NULL, NULL);
+ int res = select(MaxSocket + 1, &ReadFDs, nullptr, nullptr, nullptr);
if (res <= 0)
{
printf("select() failed: %d; aborting client", SocketError);
@@ -2571,7 +2571,7 @@ bool cConnection::HandleServerUpdateTileEntity(void)
AString fnam;
Printf(fnam, "%s_tile_%08x.nbt", m_LogNameBase.c_str(), m_ItemIdx++);
FILE * f = fopen(fnam.c_str(), "wb");
- if (f != NULL)
+ if (f != nullptr)
{
fwrite(Data.data(), 1, Data.size(), f);
fclose(f);
@@ -2730,7 +2730,7 @@ bool cConnection::ParseSlot(cByteBuffer & a_Buffer, AString & a_ItemDesc)
AString fnam;
Printf(fnam, "%s_item_%08x.nbt", m_LogNameBase.c_str(), m_ItemIdx++);
FILE * f = fopen(fnam.c_str(), "wb");
- if (f != NULL)
+ if (f != nullptr)
{
fwrite(Metadata.data(), 1, Metadata.size(), f);
fclose(f);
diff --git a/lib/jsoncpp b/lib/jsoncpp
-Subproject 81cf237917b6873decd27e15b7fe8473003a276
+Subproject d5ba7e7332ca05aa0a9740b497f914be2718177
diff --git a/src/Bindings/CMakeLists.txt b/src/Bindings/CMakeLists.txt
index 45bd573d5..004d8be30 100644
--- a/src/Bindings/CMakeLists.txt
+++ b/src/Bindings/CMakeLists.txt
@@ -168,7 +168,7 @@ set_source_files_properties(${BINDING_OUTPUTS} PROPERTIES GENERATED TRUE)
set_source_files_properties(${CMAKE_SOURCE_DIR}/src/Bindings/Bindings.cpp PROPERTIES COMPILE_FLAGS -Wno-error)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5) # Workaround for VERSION_GREATER_EQUAL, which is only supported on CMake 3.7+
+ if(NOT APPLE AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5) # Workaround for VERSION_GREATER_EQUAL, which is only supported on CMake 3.7+
set(ADDITIONAL_FLAGS "-Wno-zero-as-null-pointer-constant")
endif()
set_source_files_properties(Bindings.cpp PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast -Wno-missing-prototypes ${ADDITIONAL_FLAGS}")
diff --git a/src/main.cpp b/src/main.cpp
index 5e6872a9a..e1ed078e0 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -73,10 +73,12 @@ bool cRoot::m_RunAsService = false;
#ifndef _DEBUG
// Because SIG_DFL or SIG_IGN could be NULL instead of nullptr, we need to disable the Clang warning here
-#if __clang_major__ >= 5
+#ifdef __clang__
#pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wunknown-warning-option"
+ #pragma clang diagnostic ignored "-Wunknown-pragmas"
#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
-#endif
+#endif // __clang__
static void NonCtrlHandler(int a_Signal)
{
@@ -122,9 +124,9 @@ static void NonCtrlHandler(int a_Signal)
}
}
-#if __clang_major__ >= 5
+#ifdef __clang__
#pragma clang diagnostic pop
-#endif
+#endif // __clang__
#endif // _DEBUG
diff --git a/tests/HTTP/UrlClientTest.cpp b/tests/HTTP/UrlClientTest.cpp
index d8412fddf..f4a6f8f10 100644
--- a/tests/HTTP/UrlClientTest.cpp
+++ b/tests/HTTP/UrlClientTest.cpp
@@ -19,7 +19,7 @@ public:
}
- ~cCallbacks()
+ virtual ~cCallbacks() override
{
LOGD("Deleting the cCallbacks instance at %p", reinterpret_cast<void *>(this));
}