Skip to content
This repository has been archived by the owner on Oct 16, 2023. It is now read-only.

Commit

Permalink
Version 0.1.0 from develop.
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMaximum authored Dec 25, 2016
2 parents 2bc69fa + 0665032 commit d428661
Show file tree
Hide file tree
Showing 36 changed files with 5,038 additions and 0 deletions.
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*.so
*.dylib
*.dll
lib/yaml/build/

# Fortran module files
*.mod
Expand All @@ -27,3 +28,14 @@
*.exe
*.out
*.app
Mania++

# Build directory
build/

# Documentation directories
doc/html/
doc/latex/

# Configuration file
config.yaml
29 changes: 29 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
dist: trusty
sudo: required
language: cpp

branches:
except:
- gh-pages

env:
global:
- GH_REPO_NAME: mania-pp
- DOXYFILE: $TRAVIS_BUILD_DIR/doc/Doxyfile
- GH_REPO_REF: github.com/TheMaximum/mania-pp.git

addons:
apt:
packages:
- doxygen
- doxygen-doc
- doxygen-latex
- doxygen-gui
- graphviz

script:
- ./install.sh

after_success:
- cd $TRAVIS_BUILD_DIR/doc
- ./generate.sh
32 changes: 32 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
cmake_minimum_required (VERSION 2.6)
project (Mania++)

add_definitions(-std=c++11)
add_definitions(-Wno-deprecated)

set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR})
link_directories(${PROJECT_SOURCE_DIR}/lib/yaml/build)
link_directories(${PROJECT_SOURCE_DIR}/lib/tinyxml)
include_directories("${PROJECT_SOURCE_DIR}/lib/yaml/include")
include_directories("${PROJECT_SOURCE_DIR}/lib/tinyxml")

set (PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/src)

set (VERSION_MAJOR 0)
set (VERSION_MINOR 1)
set (VERSION_PATCH 0)

# configure a header file to pass some of the CMake settings
# to the source code
configure_file (
"${PROJECT_SOURCE_DIR}/Config/Version.h.in"
"${PROJECT_BINARY_DIR}/Config/Version.h"
)

include_directories("${PROJECT_BINARY_DIR}")

file(GLOB_RECURSE SOURCES src/*.cpp)

add_executable(Mania++ ${SOURCES}
lib/pugixml/libpugixml.a)
target_link_libraries(Mania++ yaml-cpp ${EXECUTABLE_OUTPUT_PATH}/lib/pugixml/libpugixml.a)
619 changes: 619 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

69 changes: 69 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,70 @@
# Mania++
Mania++ is an in-development Server Controller for TrackMania 2 (ManiaPlanet) servers. It is written in C++ and is at this moment basically a hobby-project. You're free to try it and contribute to the system, all ideas and assitance is welcome. No guarantee this makes it to a release-ready state, so be aware of that before using it on your servers.

## Current build status ##
* Master: [![Build Status](https://travis-ci.org/TheMaximum/mania-pp.svg?branch=master)](https://travis-ci.org/TheMaximum/mania-pp)
* Develop: [![Build Status](https://travis-ci.org/TheMaximum/mania-pp.svg?branch=develop)](https://travis-ci.org/TheMaximum/mania-pp)

Also checkout the [Mania++ versioning system](https://themaximum.github.io/mania-pp/versioning.html) for more about the software versions and branches.

## License ##
Mania++ and its sources are available under the [GNU General Public License v3](https://www.gnu.org/licenses/#GPL). This allows users/contributors to make changes to the source code, as long as those changes are made available under the same license as the original. The copyright/license notices should not be removed from the sources/workspace.

## Tested environments ##
* Ubuntu 16.10 (Linux 4.8.0-30), 64-bit with gcc 6.2.0 (development)
* Ubuntu 16.04.1 LTS (Linux 4.4.0-31), 32-bit with gcc 5.4.0 (testing)
* Ubuntu 14.04.5 LTS (Linux 4.4.0-51), 64-bit with gcc 4.8.4 (Travis)
* Debian 8.6 (Linux 3.16.0-4), 64-bit with gcc 4.9.2 (production)

Mania++ is (currently) not compatible with Windows systems and the ```./install.sh```-script requires a Debian-like system to function (with ```apt-get```).

## Requirements ##
* C++11
* Git _(if you want the latest develop)_
* [CMake](https://cmake.org)

## Aims and working points ##
* Create more usable objects (f.e. `Map`)
* Working plugin system
* Plugin interface
* Callback handling
* Access to server, database and ManiaLink
* Database support
* ManiaLink support

## Achieved goals ##
* Working GbxRemote module
* Send methods and receive responses
* Receive callbacks
* De-XMLify responses and callbacks
* Create usable objects (f.e. `Player`)
* Working configuration system (YAML)

## Installing for the first time ##
* ```./install.sh```
* Installs Boost (requirement for yaml-cpp)
* Installs [yaml-cpp](https://github.com/jbeder/yaml-cpp/) 0.5.3
* Installs [pugixml](https://github.com/zeux/pugixml) 1.8.1
* Builds the code (via ```build.sh```)

## Building (updates) ##
* ```./build.sh```
* Move ```config.dist.yaml``` to ```config.yaml```
* Edit the configuration file with the server information

## Running ##
* ```./Mania++```

## Check documentation of latest develop commit ##
* Latest master: not yet available
* Latest develop: [Doxygen HTML](https://themaximum.github.io/mania-pp/docs/develop/html/)

## Generate code documentation for current code ##
_Requires Doxygen to be installed on your system: ```sudo apt-get install doxygen```_

To make it easier to contribute, you can check out the (automatic) documentation.
To do this, do:

* ```cd ./doc/```
* ```doxygen```
* Open the documentation either in HTML or LaTeX format (in subdirectories)
4 changes: 4 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
cmake -DCMAKE_BUILD_TYPE=Debug -H. -Bbuild

cd ./build
make
7 changes: 7 additions & 0 deletions config.dist.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
config:
server:
address: '***'
port: 5000
authentication:
username: 'SuperAdmin'
password: '***'
Loading

0 comments on commit d428661

Please sign in to comment.