summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-10-02 18:56:27 +0300
committerGitHub <noreply@github.com>2016-10-02 18:56:27 +0300
commit451b3fac158ca3586a149fa64fe10f86ec140a43 (patch)
tree01738484d7222e3b637e17142bea18152f504166
parentcb2769b8b3b18c90b017f600654ce494ff260f9f (diff)
parentb4f015cb31ec2cb60c45b22bd17e0e05fcd6be41 (diff)
downloadhercules-451b3fac158ca3586a149fa64fe10f86ec140a43.tar.gz
hercules-451b3fac158ca3586a149fa64fe10f86ec140a43.tar.bz2
hercules-451b3fac158ca3586a149fa64fe10f86ec140a43.tar.xz
hercules-451b3fac158ca3586a149fa64fe10f86ec140a43.zip
Merge pull request #1453 from HerculesWS/gitlab
Added GitLab CI configuration
-rw-r--r--.gitignore2
-rw-r--r--.gitlab-ci.yml727
-rw-r--r--.travis.yml10
-rw-r--r--Makefile.in12
-rw-r--r--README.md4
-rwxr-xr-xconfigure3
-rw-r--r--configure.ac1
-rw-r--r--src/common/cbasetypes.h12
-rw-r--r--src/common/sql.c6
-rwxr-xr-xtools/ci/retry.sh33
-rwxr-xr-xtools/ci/travis.sh (renamed from travis.sh)44
-rw-r--r--tools/doxygen/Hercules128.pngbin0 -> 19237 bytes
-rw-r--r--tools/doxygen/Hercules48.pngbin0 -> 4954 bytes
-rw-r--r--tools/doxygen/Makefile.in70
-rw-r--r--tools/doxygen/doxygen.conf505
-rw-r--r--tools/doxygen/footer.html21
-rw-r--r--tools/doxygen/header.html55
-rw-r--r--tools/doxygen/layoutFile.xml194
-rw-r--r--tools/doxygen/pages_index.html39
-rw-r--r--tools/doxygen/style.css1440
20 files changed, 3143 insertions, 35 deletions
diff --git a/.gitignore b/.gitignore
index 8957156d3..1587868fe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -104,6 +104,8 @@ Thumbs.db
/tools/*.pdb
/tools/HPMHookGen/Makefile
/tools/HPMHookGen/doxyoutput
+/tools/doxygen/Makefile
+/tools/doxygen/docs
# /vcproj-*
/vcproj-*/*.user
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 000000000..bbdc2caae
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,727 @@
+stages:
+ - primary
+ - secondary
+ - platforms
+ - extras
+
+variables: &base_vars
+ # Configure mysql service (https://hub.docker.com/_/mysql/)
+ MYSQL_DATABASE: 'ragnarok'
+ MYSQL_USER: 'ragnarok'
+ MYSQL_PASSWORD: 'ragnarok'
+ MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
+ GIT_DEPTH: '3'
+ DEBIAN_COMMON_PACKAGES: make zlib1g-dev libpcre3-dev git python
+
+.prerequisites: &prerequisites
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mysql
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mysql:latest
+
+.branch_exceptions: &branch_exceptions
+ only:
+ - branches
+ except:
+ - rathena
+ - coverity_scan
+
+# Compilers
+
+pre_re:clang-3.9:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: clang-3.9 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=clang-3.9 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:clang-3.9:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: clang-3.9 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=clang-3.9 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-4.6:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:oldstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.6 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-4.6:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:oldstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.6 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-4.7:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:oldstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.7 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.7 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-4.7:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:oldstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.7 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.7 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-4.8:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.8 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.8 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-4.8:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.8 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.8 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-4.9:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.9 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.9 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-4.9:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-4.9 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-4.9 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-5:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-5 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-5 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-5:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-5 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-5 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-6:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-6:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-6_i386:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: vicamo/debian:sid-i386
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-6_i386:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: primary
+ image: vicamo/debian:sid-i386
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-6_sanitize:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-renewal --disable-manager --enable-sanitize=full
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-6_sanitize:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-manager --enable-sanitize=full
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-6_i386_sanitize:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: vicamo/debian:sid-i386
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-renewal --disable-manager --enable-sanitize=full
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:gcc-6_i386_sanitize:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: vicamo/debian:sid-i386
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-manager --enable-sanitize=full
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:gcc-6_cov:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 gcovr mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot --disable-renewal CFLAGS="-coverage" LDFLAGS="-coverage"
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+ - gcovr -r . --gcov-executable=gcov-6 -o gcov_pre.txt
+ - gcovr -r . --gcov-executable=gcov-6 --html -o gcov_pre.html
+ - cat gcov_pre.txt
+ artifacts:
+ paths:
+ - gcov_pre.*
+ when: on_success
+
+re:gcc-6_cov:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: secondary
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc-6 gcovr mysql-client
+ script:
+ - ./tools/ci/travis.sh build CC=gcc-6 --enable-debug --enable-Werror --enable-buildbot CFLAGS="-coverage" LDFLAGS="-coverage"
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+ - gcovr -r . --gcov-executable=gcov-6 -o gcov_re.txt
+ - gcovr -r . --gcov-executable=gcov-6 --html -o gcov_re.html
+ - cat gcov_re.txt
+ artifacts:
+ paths:
+ - gcov_re.*
+ when: on_success
+
+# Distributions
+
+pre_re:debian-oldstable:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:wheezy
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:debian-oldstable:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:wheezy
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:debian-stable:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:jessie
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:debian-stable:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:jessie
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:debian-testing:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:stretch
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:debian-testing:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:stretch
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:centos-previous:
+ <<: *branch_exceptions
+ stage: platforms
+ image: centos:6
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - yum -y update
+ - yum install -y make mysql-devel pcre-devel git zlib-devel mysql
+ - yum install -y centos-release-scl
+ - yum install -y yum install devtoolset-3-toolchain
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mysql
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mysql:latest
+ variables:
+ <<: *base_vars
+ script:
+ - scl enable devtoolset-3 './tools/ci/travis.sh build CFLAGS="-Wno-cast-qual" --enable-debug --enable-Werror --enable-buildbot --disable-renewal'
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:centos-previous:
+ <<: *branch_exceptions
+ stage: platforms
+ image: centos:6
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - yum -y update
+ - yum install -y make mysql-devel pcre-devel git zlib-devel mysql
+ - yum install -y centos-release-scl
+ - yum install -y yum install devtoolset-3-toolchain
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mysql
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mysql:latest
+ variables:
+ <<: *base_vars
+ script:
+ - scl enable devtoolset-3 './tools/ci/travis.sh build CFLAGS="-Wno-cast-qual" --enable-debug --enable-Werror --enable-buildbot'
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:centos-current:
+ <<: *branch_exceptions
+ stage: platforms
+ image: centos:7
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - yum -y update
+ - yum install -y gcc make mysql-devel pcre-devel git zlib-devel mysql
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mysql
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mysql:latest
+ variables:
+ <<: *base_vars
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:centos-current:
+ <<: *branch_exceptions
+ stage: platforms
+ image: centos:7
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - yum -y update
+ - yum install -y gcc make mysql-devel pcre-devel git zlib-devel mysql
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mysql
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mysql:latest
+ variables:
+ <<: *base_vars
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:ubuntu-xenial:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: ubuntu:16.04
+ services:
+ - mysql:latest
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:ubuntu-xenial:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: ubuntu:16.04
+ services:
+ - mysql:latest
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+# SQL servers
+
+pre_re:mysql-5.5:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client-5.5
+ services:
+ - mysql:5.5
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:mysql-5.5:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client-5.5
+ services:
+ - mysql:5.5
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:mysql-5.6:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client-5.6
+ services:
+ - mysql:5.6
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:mysql-5.6:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client-5.6
+ services:
+ - mysql:5.6
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:mysql-5.7:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ # mysql-client-5.7 is not available
+ INSTALL_PACKAGES: gcc mysql-client
+ services:
+ - mysql:5.7
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+re:mysql-5.7:
+ <<: *branch_exceptions
+ <<: *prerequisites
+ stage: platforms
+ image: debian:unstable
+ variables:
+ <<: *base_vars
+ # mysql-client-5.7 is not available
+ INSTALL_PACKAGES: gcc mysql-client
+ services:
+ - mysql:5.7
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mysql
+
+pre_re:mariadb-10:
+ <<: *branch_exceptions
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mariadb-client-10.0
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mariadb
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mariadb:10.0
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mariadb
+
+re:mariadb-10:
+ <<: *branch_exceptions
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mariadb-client-10.0
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mariadb
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mariadb:10.0
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mariadb
+
+pre_re:mariadb-latest:
+ <<: *branch_exceptions
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mariadb-client-10.0
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mariadb
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mariadb:latest
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mariadb
+
+re:mariadb-latest:
+ <<: *branch_exceptions
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mariadb-client-10.0
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok mariadb
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - mariadb:latest
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok mariadb
+
+pre_re:percona:
+ <<: *branch_exceptions
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok percona
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - percona:latest
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot --disable-renewal
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok percona
+
+re:percona:
+ <<: *branch_exceptions
+ stage: platforms
+ image: debian:stable
+ variables:
+ <<: *base_vars
+ INSTALL_PACKAGES: gcc mysql-client
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq $INSTALL_PACKAGES $DEBIAN_COMMON_PACKAGES libmysqlclient-dev
+ - ./tools/ci/travis.sh importdb ragnarok ragnarok ragnarok percona
+ - ./tools/ci/travis.sh getplugins || true
+ services:
+ - percona:latest
+ script:
+ - ./tools/ci/travis.sh build --enable-debug --enable-Werror --enable-buildbot
+ - ./tools/ci/travis.sh test ragnarok ragnarok ragnarok percona
+
+# Documentation
+pages:
+ only:
+ - master
+ stage: extras
+ image: debian:unstable
+ before_script:
+ - echo "Building $CI_BUILD_NAME"
+ - uname -a
+ - ./tools/ci/retry.sh apt-get update
+ - ./tools/ci/retry.sh apt-get install -y -qq gcc $DEBIAN_COMMON_PACKAGES libmysqlclient-dev doxygen graphviz
+ script:
+ - ./configure
+ - make docs
+ - mkdir public
+ - mv tools/doxygen/docs/html public/docs
+ - mv gcov_*.* public/
+ - cp tools/doxygen/pages_index.html public/index.html
+ dependencies:
+ - re:gcc-6_cov
+ - pre_re:gcc-6_cov
+ artifacts:
+ paths:
+ - public
diff --git a/.travis.yml b/.travis.yml
index 62f2f7cbc..28f4387a6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,17 +9,17 @@ addons:
- gcc-6
install:
- - ./travis.sh getplugins || true
+ - ./tools/ci/travis.sh getplugins || true
before_script:
- uname -a
- - ./travis.sh createdb ragnarok root
- - ./travis.sh importdb ragnarok travis
+ - ./tools/ci/travis.sh createdb ragnarok root
+ - ./tools/ci/travis.sh importdb ragnarok travis
- mysql -u root -e "SET PASSWORD FOR 'travis'@'localhost' = PASSWORD('travis');"
script:
- - ./travis.sh build $CONFIGURE_FLAGS
- - ./travis.sh test ragnarok travis travis
+ - ./tools/ci/travis.sh build $CONFIGURE_FLAGS
+ - ./tools/ci/travis.sh test ragnarok travis travis
# We can't use this, unfortunately
# http://github.com/travis-ci/travis-ci/issues/979
diff --git a/Makefile.in b/Makefile.in
index 46dd17b26..be7ae674f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -53,7 +53,7 @@ HAVE_DOXYGEN=@HAVE_DOXYGEN@
MF_TARGETS = Makefile $(addsuffix /Makefile, src/common 3rdparty/mt19937ar \
3rdparty/libconfig src/char src/login src/map src/plugins \
- src/tool src/test tools/HPMHookGen)
+ src/tool src/test tools/HPMHookGen tools/doxygen)
CC = @CC@
export CC
@@ -140,6 +140,10 @@ hooks: tools/HPMHookGen/Makefile
@echo " MAKE $@"
@$(MAKE) -C tools/HPMHookGen
+docs: tools/doxygen/Makefile
+ @echo " MAKE $@"
+ @$(MAKE) -C tools/doxygen
+
import: Makefile
@# 1) create conf/import folder
@# 2) add missing files
@@ -158,6 +162,7 @@ clean buildclean: $(MF_TARGETS)
@$(MAKE) -C src/tool $@
@$(MAKE) -C src/test $@
@$(MAKE) -C tools/HPMHookGen $@
+ @$(MAKE) -C tools/doxygen $@
distclean: clean
@-rm -f $(MF_TARGETS) config.status config.log
@@ -196,9 +201,12 @@ help: Makefile
@echo " executables"
@echo "'distclean' - cleans files generated by ./configure"
@echo "'sysinfo' - re-generates the System Info include"
-ifeq ($(HAVE_PERL)$(HAVE_DOXYGEN),yesyes)
+ifeq ($(HAVE_DOXYGEN),yes)
+ @echo "'docs' - Generate the Doxygen source code documentation"
+ifeq ($(HAVE_PERL),yes)
@echo "'hooks' - re-generates the definitions for the HPM"
endif
+endif
@echo "'help' - outputs this message"
#####################################################################
diff --git a/README.md b/README.md
index 902d503c4..8ade896f0 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,9 @@ Hercules
Build Status:
[![Build Status](https://travis-ci.org/HerculesWS/Hercules.svg?branch=master)](https://travis-ci.org/HerculesWS/Hercules)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/cm9xbwurpbltqjop?svg=true)](https://ci.appveyor.com/project/Haru/hercules)
-[![Coverity Scan Build Status](https://scan.coverity.com/projects/3892/badge.svg)](https://scan.coverity.com/projects/herculesws-hercules)
+[![Coverity Scan Build Status](https://scan.coverity.com/projects/3892/badge.svg)](https://scan.coverity.com/projects/herculesws-hercules)
+[![GitLabl Build Status](https://gitlab.com/HerculesWS/Hercules/badges/master/build.svg)](https://gitlab.com/HerculesWS/Hercules/commits/master)
+[![Coverage Report](https://gitlab.com/HerculesWS/Hercules/badges/master/coverage.svg)](https://gitlab.com/HerculesWS/Hercules/commits/master)
Issues and pull requests:
[![Open Issues](https://img.shields.io/github/issues-raw/HerculesWS/Hercules.svg?label=Open%20Issues)](https://github.com/HerculesWS/Hercules/issues)
diff --git a/configure b/configure
index 90bcd409b..9fe0c9d5b 100755
--- a/configure
+++ b/configure
@@ -2196,6 +2196,8 @@ ac_config_files="$ac_config_files src/test/Makefile"
ac_config_files="$ac_config_files tools/HPMHookGen/Makefile"
+ac_config_files="$ac_config_files tools/doxygen/Makefile"
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -10220,6 +10222,7 @@ do
"src/tool/Makefile") CONFIG_FILES="$CONFIG_FILES src/tool/Makefile" ;;
"src/test/Makefile") CONFIG_FILES="$CONFIG_FILES src/test/Makefile" ;;
"tools/HPMHookGen/Makefile") CONFIG_FILES="$CONFIG_FILES tools/HPMHookGen/Makefile" ;;
+ "tools/doxygen/Makefile") CONFIG_FILES="$CONFIG_FILES tools/doxygen/Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
diff --git a/configure.ac b/configure.ac
index e88834722..6cad8146c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -30,6 +30,7 @@ AC_CONFIG_FILES([src/char/Makefile src/login/Makefile])
AC_CONFIG_FILES([src/map/Makefile src/plugins/Makefile src/tool/Makefile])
AC_CONFIG_FILES([src/test/Makefile])
AC_CONFIG_FILES([tools/HPMHookGen/Makefile])
+AC_CONFIG_FILES([tools/doxygen/Makefile])
dnl AC_USE_SYSTEM_EXTENSIONS requires autoconf 2.60 or newer. Fall back to AC_GNU_SOURCE otherwise.
m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h
index 33d617b13..98c3552c4 100644
--- a/src/common/cbasetypes.h
+++ b/src/common/cbasetypes.h
@@ -291,12 +291,12 @@ typedef uintptr_t uintptr;
#define GCC_VERSION 0
#endif
-// Pragma macro only enabled on gcc >= 4.5 or clang - borrowed from Mana Plus
-#if defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40500)
-#define PRAGMA_GCC45(str) _Pragma(#str)
-#else // ! defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40500)
-#define PRAGMA_GCC45(str)
-#endif // ! defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40500)
+// Pragma macro only enabled on gcc >= 4.6 or clang - borrowed from Mana Plus
+#if defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40600)
+#define PRAGMA_GCC46(str) _Pragma(#str)
+#else // ! defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40600)
+#define PRAGMA_GCC46(str)
+#endif // ! defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40600)
// fallthrough attribute only enabled on gcc >= 7.0
#if defined(__GNUC__) && (GCC_VERSION >= 70000)
diff --git a/src/common/sql.c b/src/common/sql.c
index 7e3e2e46f..8da105872 100644
--- a/src/common/sql.c
+++ b/src/common/sql.c
@@ -664,8 +664,8 @@ int SqlStmt_BindParam(struct SqlStmt *self, size_t idx, enum SqlDataType buffer_
if (idx >= self->max_params)
return SQL_SUCCESS; // out of range - ignore
-PRAGMA_GCC45(GCC diagnostic push)
-PRAGMA_GCC45(GCC diagnostic ignored "-Wcast-qual")
+PRAGMA_GCC46(GCC diagnostic push)
+PRAGMA_GCC46(GCC diagnostic ignored "-Wcast-qual")
/*
* MySQL uses the same struct with a non-const buffer for both
* parameters (input) and columns (output).
@@ -673,7 +673,7 @@ PRAGMA_GCC45(GCC diagnostic ignored "-Wcast-qual")
* dropping a const qualifier here.
*/
return Sql_P_BindSqlDataType(self->params+idx, buffer_type, (void *)buffer, buffer_len, NULL, NULL);
-PRAGMA_GCC45(GCC diagnostic pop)
+PRAGMA_GCC46(GCC diagnostic pop)
}
/// Executes the prepared statement.
diff --git a/tools/ci/retry.sh b/tools/ci/retry.sh
new file mode 100755
index 000000000..6e79af1d5
--- /dev/null
+++ b/tools/ci/retry.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# This file is part of Hercules.
+# http://herc.ws - http://github.com/HerculesWS/Hercules
+#
+# Copyright (C) 2016 Hercules Dev Team
+# Copyright (C) 2016 Haru <haru@herc.ws>
+#
+# Hercules is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+n=0
+
+while true; do
+ $@ && break
+ if [[ $n -ge 5 ]]; then
+ exit -1
+ fi
+ WAITTIME=$((2**n))
+ echo "Execution of $@ failed. Retrying in $WAITTIME seconds..."
+ sleep $WAITTIME
+ n=$((n+1))
+done
diff --git a/travis.sh b/tools/ci/travis.sh
index 10d263e49..db1ea5315 100755
--- a/travis.sh
+++ b/tools/ci/travis.sh
@@ -31,10 +31,10 @@ function foo {
function usage {
echo "usage:"
- echo " $0 createdb <dbname> [dbuser] [dbpassword]"
- echo " $0 importdb <dbname> [dbuser] [dbpassword]"
+ echo " $0 createdb <dbname> [dbuser] [dbpassword] [dbhost]"
+ echo " $0 importdb <dbname> [dbuser] [dbpassword] [dbhost]"
echo " $0 build [configure args]"
- echo " $0 test <dbname> [dbuser] [dbpassword]"
+ echo " $0 test <dbname> [dbuser] [dbpassword] [dbhost]"
echo " $0 getplugins"
exit 1
}
@@ -62,21 +62,29 @@ function run_server {
fi
}
+# Defaults
+DBNAME=ragnarok
+DBUSER=ragnarok
+DBPASS=ragnarok
+DBHOST=localhost
+
case "$MODE" in
createdb|importdb|test)
- DBNAME="$1"
- DBUSER="$2"
- DBPASS="$3"
- if [ -z "$DBNAME" ]; then
+ if [ -z "$1" ]; then
usage
fi
- if [ "$MODE" != "test" ]; then
- if [ -n "$DBUSER" ]; then
- DBUSER="-u $DBUSER"
- fi
- if [ -n "$DBPASS" ]; then
- DBPASS="-p$DBPASS"
- fi
+ DBNAME="$1"
+ if [ -n "$2" ]; then
+ DBUSER_ARG="-u $2"
+ DBUSER="$2"
+ fi
+ if [ -n "$3" ]; then
+ DBPASS_ARG="-p$3"
+ DBPASS="$3"
+ fi
+ if [ -n "$4" ]; then
+ DBHOST_ARG="-h $4"
+ DBHOST="$4"
fi
;;
esac
@@ -84,12 +92,12 @@ esac
case "$MODE" in
createdb)
echo "Creating database $DBNAME..."
- mysql $DBUSER $DBPASS -e "create database $DBNAME;" || aborterror "Unable to create database."
+ mysql $DBUSER_ARG $DBPASS_ARG $DBHOST_ARG -e "create database $DBNAME;" || aborterror "Unable to create database."
;;
importdb)
echo "Importing tables into $DBNAME..."
- mysql $DBUSER $DBPASS $DBNAME < sql-files/main.sql || aborterror "Unable to import main database."
- mysql $DBUSER $DBPASS $DBNAME < sql-files/logs.sql || aborterror "Unable to import logs database."
+ mysql $DBUSER_ARG $DBPASS_ARG $DBHOST_ARG $DBNAME < sql-files/main.sql || aborterror "Unable to import main database."
+ mysql $DBUSER_ARG $DBPASS_ARG $DBHOST_ARG $DBNAME < sql-files/logs.sql || aborterror "Unable to import logs database."
;;
build)
(cd tools && ./validateinterfaces.py silent) || aborterror "Interface validation error."
@@ -103,7 +111,7 @@ case "$MODE" in
sql_connection: {
//default_codepage: ""
//case_sensitive: false
- db_hostname: "localhost"
+ db_hostname: "$DBHOST"
db_username: "$DBUSER"
db_password: "$DBPASS"
db_database: "$DBNAME"
diff --git a/tools/doxygen/Hercules128.png b/tools/doxygen/Hercules128.png
new file mode 100644
index 000000000..79919da9b
--- /dev/null
+++ b/tools/doxygen/Hercules128.png
Binary files differ
diff --git a/tools/doxygen/Hercules48.png b/tools/doxygen/Hercules48.png
new file mode 100644
index 000000000..022893953
--- /dev/null
+++ b/tools/doxygen/Hercules48.png
Binary files differ
diff --git a/tools/doxygen/Makefile.in b/tools/doxygen/Makefile.in
new file mode 100644
index 000000000..233779f05
--- /dev/null
+++ b/tools/doxygen/Makefile.in
@@ -0,0 +1,70 @@
+# This file is part of Hercules.
+# http://herc.ws - http://github.com/HerculesWS/Hercules
+#
+# Copyright (C) 2016 Hercules Dev Team
+#
+# Hercules is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# @configure_input@
+
+@SET_MAKE@
+
+COMMON_D = ../../src/common
+MAP_D = ../../src/map
+CHAR_D = ../../src/char
+LOGIN_D = ../../src/login
+PLUGIN_D = ../../src/plugins
+COMMON_C = $(wildcard $(COMMON_D)/*.c)
+COMMON_H = $(wildcard $(COMMON_D)/*.h)
+MAP_C = $(wildcard $(MAP_D)/*.c)
+MAP_H = $(wildcard $(MAP_D)/*.h)
+CHAR_C = $(wildcard $(CHAR_D)/*.c)
+CHAR_H = $(wildcard $(CHAR_D)/*.h)
+LOGIN_C = $(wildcard $(LOGIN_D)/*.c)
+LOGIN_H = $(wildcard $(LOGIN_D)/*.h)
+ALL_C = $(COMMON_C) $(MAP_C) $(CHAR_C) $(LOGIN_C)
+ALL_H = $(COMMON_H) $(MAP_H) $(CHAR_H) $(LOGIN_H)
+
+HAVE_DOXYGEN=@HAVE_DOXYGEN@
+ifeq ($(HAVE_DOXYGEN),yes)
+ ALL_DEPENDS = docs
+else
+ ALL_DEPENDS = needs_doxygen
+endif
+
+#####################################################################
+.PHONY: clean buildclean
+
+all: $(ALL_DEPENDS)
+
+buildclean:
+
+clean: buildclean
+ @echo " CLEAN docs"
+ @rm -rf docs
+
+Makefile: Makefile.in
+ @$(MAKE) -C ../.. tools/doxygen/Makefile
+
+#####################################################################
+
+docs: $(ALL_C) $(ALL_H) doxygen.conf
+ @echo " Generating Doxygen documentation..."
+ @doxygen doxygen.conf
+
+#####################################################################
+
+needs_doxygen:
+ @echo "doxygen not found or disabled by the configure script"
+ @exit 1
diff --git a/tools/doxygen/doxygen.conf b/tools/doxygen/doxygen.conf
new file mode 100644
index 000000000..043b36dc8
--- /dev/null
+++ b/tools/doxygen/doxygen.conf
@@ -0,0 +1,505 @@
+# Doxyfile 1.8.8
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = "Hercules"
+PROJECT_NUMBER =
+PROJECT_BRIEF =
+PROJECT_LOGO = Hercules48.png
+OUTPUT_DIRECTORY = docs
+CREATE_SUBDIRS = NO
+ALLOW_UNICODE_NAMES = NO
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = ../../
+STRIP_FROM_INC_PATH = ../../
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+JAVADOC_AUTOBRIEF = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+QT_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+ALIASES =
+TCL_SUBST =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+EXTENSION_MAPPING = h=C
+MARKDOWN_SUPPORT = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+AUTOLINK_SUPPORT = YES
+BUILTIN_STL_SUPPORT = NO
+CPP_CLI_SUPPORT = NO
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NNO
+DISTRIBUTE_GROUP_DOC = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YENO
+SUBGROUPING = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NNO
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NNO
+INLINE_SIMPLE_STRUCTS = NO
+TYPEDEF_HIDES_STRUCT = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+LOOKUP_CACHE_SIZE = 0
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = YES
+
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+EXTRACT_PACKAGE = NO
+EXTRACT_STATIC = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = YES
+EXTRACT_ANON_NSPACES = NO
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+SHOW_GROUPED_MEMB_INC = NO
+FORCE_LOCAL_INCLUDES = NO
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_MEMBERS_CTORS_1ST = NO
+SORT_GROUP_NAMES = NO
+SORT_BY_SCOPE_NAME = NO
+STRICT_PROTO_MATCHING = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+FILE_VERSION_FILTER = "git log -n 1 --pretty=format:%h -- "
+LAYOUT_FILE = layoutFile.xml
+CITE_BIB_FILES =
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = YES
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = ../../src/map \
+ ../../src/common \
+ ../../src/char \
+ ../../src/login \
+ ../../src/config
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.c \
+ *.h
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+USE_MDFILE_AS_MAINPAGE =
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+REFERENCES_RELATION = NO
+REFERENCES_LINK_SOURCE = YES
+SOURCE_TOOLTIPS = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# compiled with the --with-libclang option.
+# The default value is: NO.
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+CLANG_OPTIONS =
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_EXTRA_STYLESHEET =
+HTML_EXTRA_FILES =
+HTML_COLORSTYLE_HUE = 30
+HTML_COLORSTYLE_SAT = 100
+HTML_COLORSTYLE_GAMMA = 80
+HTML_TIMESTAMP = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+HTML_INDEX_NUM_ENTRIES = 100
+GENERATE_DOCSET = NO
+DOCSET_FEEDNAME = "Doxygen generated docs"
+DOCSET_BUNDLE_ID = org.doxygen.Project
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+DOCSET_PUBLISHER_NAME = Publisher
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE = org.doxygen.Project
+QHP_VIRTUAL_FOLDER = doc
+QHP_CUST_FILTER_NAME =
+QHP_CUST_FILTER_ATTRS =
+QHP_SECT_FILTER_ATTRS =
+QHG_LOCATION =
+GENERATE_ECLIPSEHELP = NO
+ECLIPSE_DOC_ID = org.doxygen.Project
+DISABLE_INDEX = NO
+GENERATE_TREEVIEW = NO
+ENUM_VALUES_PER_LINE = 4
+TREEVIEW_WIDTH = 250
+EXT_LINKS_IN_WINDOW = NO
+FORMULA_FONTSIZE = 10
+FORMULA_TRANSPARENT = YES
+USE_MATHJAX = NO
+MATHJAX_FORMAT = HTML-CSS
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+MATHJAX_EXTENSIONS =
+MATHJAX_CODEFILE =
+SEARCHENGINE = YES
+SERVER_BASED_SEARCH = NO
+EXTERNAL_SEARCH = NO
+SEARCHENGINE_URL =
+SEARCHDATA_FILE = searchdata.xml
+EXTERNAL_SEARCH_ID =
+EXTRA_SEARCH_MAPPINGS =
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4
+EXTRA_PACKAGES =
+LATEX_HEADER =
+LATEX_FOOTER =
+LATEX_EXTRA_FILES =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+LATEX_SOURCE_CODE = NO
+LATEX_BIB_STYLE = plain
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_SUBDIR =
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+GENERATE_DOCBOOK = NO
+DOCBOOK_OUTPUT = docbook
+DOCBOOK_PROGRAMLISTING = NO
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH = ../../src \
+ ../../3rdparty
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = NO
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+# class index. If set to NO only the inherited external classes will be listed.
+# The default value is: NO.
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+# the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+EXTERNAL_GROUPS = YES
+EXTERNAL_PAGES = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+MSCGEN_PATH =
+DIA_PATH =
+HIDE_UNDOC_RELATIONS = NO
+HAVE_DOT = YES
+DOT_NUM_THREADS = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+DOT_FONTNAME = Helvetica
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+UML_LOOK = NO
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = YES
+CALLER_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+INTERACTIVE_SVG = NO
+DOT_PATH =
+DOTFILE_DIRS =
+MSCFILE_DIRS =
+DIAFILE_DIRS =
+PLANTUML_JAR_PATH =
+DOT_GRAPH_MAX_NODES = 100
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = YES
+DOT_MULTI_TARGETS = YES
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
diff --git a/tools/doxygen/footer.html b/tools/doxygen/footer.html
new file mode 100644
index 000000000..aecaafcc4
--- /dev/null
+++ b/tools/doxygen/footer.html
@@ -0,0 +1,21 @@
+<!-- HTML footer for doxygen 1.8.8-->
+<!-- start footer part -->
+<!--BEGIN GENERATE_TREEVIEW-->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ $navpath
+ <li class="footer">$generatedby
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="$relpath^doxygen.png" alt="doxygen"/></a> $doxygenversion </li>
+ </ul>
+</div>
+<!--END GENERATE_TREEVIEW-->
+<!--BEGIN !GENERATE_TREEVIEW-->
+<hr class="footer"/><address class="footer"><small>
+$generatedby &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="$relpath^doxygen.png" alt="doxygen"/>
+</a> $doxygenversion
+</small></address>
+<!--END !GENERATE_TREEVIEW-->
+</body>
+</html>
diff --git a/tools/doxygen/header.html b/tools/doxygen/header.html
new file mode 100644
index 000000000..31aae0ea2
--- /dev/null
+++ b/tools/doxygen/header.html
@@ -0,0 +1,55 @@
+<!-- HTML header for doxygen 1.8.8-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen $doxygenversion"/>
+<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="$relpath^jquery.js"></script>
+<script type="text/javascript" src="$relpath^dynsections.js"></script>
+$treeview
+$search
+$mathjax
+<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
+$extrastylesheet
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+
+<!--BEGIN TITLEAREA-->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <!--BEGIN PROJECT_LOGO-->
+ <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td>
+ <!--END PROJECT_LOGO-->
+ <!--BEGIN PROJECT_NAME-->
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">$projectname
+ <!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
+ </div>
+ <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
+ </td>
+ <!--END PROJECT_NAME-->
+ <!--BEGIN !PROJECT_NAME-->
+ <!--BEGIN PROJECT_BRIEF-->
+ <td style="padding-left: 0.5em;">
+ <div id="projectbrief">$projectbrief</div>
+ </td>
+ <!--END PROJECT_BRIEF-->
+ <!--END !PROJECT_NAME-->
+ <!--BEGIN DISABLE_INDEX-->
+ <!--BEGIN SEARCHENGINE-->
+ <td>$searchbox</td>
+ <!--END SEARCHENGINE-->
+ <!--END DISABLE_INDEX-->
+ </tr>
+ </tbody>
+</table>
+</div>
+<!--END TITLEAREA-->
+<!-- end header part -->
diff --git a/tools/doxygen/layoutFile.xml b/tools/doxygen/layoutFile.xml
new file mode 100644
index 000000000..740548619
--- /dev/null
+++ b/tools/doxygen/layoutFile.xml
@@ -0,0 +1,194 @@
+<doxygenlayout version="1.0">
+ <!-- Generated by doxygen 1.8.8 -->
+ <!-- Navigation index tabs for HTML output -->
+ <navindex>
+ <tab type="mainpage" visible="yes" title=""/>
+ <tab type="pages" visible="yes" title="" intro=""/>
+ <tab type="modules" visible="yes" title="" intro=""/>
+ <tab type="namespaces" visible="yes" title="">
+ <tab type="namespacelist" visible="yes" title="" intro=""/>
+ <tab type="namespacemembers" visible="yes" title="" intro=""/>
+ </tab>
+ <tab type="classes" visible="yes" title="">
+ <tab type="classlist" visible="yes" title="" intro=""/>
+ <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
+ <tab type="hierarchy" visible="yes" title="" intro=""/>
+ <tab type="classmembers" visible="yes" title="" intro=""/>
+ </tab>
+ <tab type="files" visible="yes" title="">
+ <tab type="filelist" visible="yes" title="" intro=""/>
+ <tab type="globals" visible="yes" title="" intro=""/>
+ </tab>
+ <tab type="examples" visible="yes" title="" intro=""/>
+ </navindex>
+
+ <!-- Layout definition for a class page -->
+ <class>
+ <briefdescription visible="yes"/>
+ <includes visible="$SHOW_INCLUDE_FILES"/>
+ <inheritancegraph visible="$CLASS_GRAPH"/>
+ <collaborationgraph visible="$COLLABORATION_GRAPH"/>
+ <memberdecl>
+ <nestedclasses visible="yes" title=""/>
+ <publictypes title=""/>
+ <services title=""/>
+ <interfaces title=""/>
+ <publicslots title=""/>
+ <signals title=""/>
+ <publicmethods title=""/>
+ <publicstaticmethods title=""/>
+ <publicattributes title=""/>
+ <publicstaticattributes title=""/>
+ <protectedtypes title=""/>
+ <protectedslots title=""/>
+ <protectedmethods title=""/>
+ <protectedstaticmethods title=""/>
+ <protectedattributes title=""/>
+ <protectedstaticattributes title=""/>
+ <packagetypes title=""/>
+ <packagemethods title=""/>
+ <packagestaticmethods title=""/>
+ <packageattributes title=""/>
+ <packagestaticattributes title=""/>
+ <properties title=""/>
+ <events title=""/>
+ <privatetypes title=""/>
+ <privateslots title=""/>
+ <privatemethods title=""/>
+ <privatestaticmethods title=""/>
+ <privateattributes title=""/>
+ <privatestaticattributes title=""/>
+ <friends title=""/>
+ <related title="" subtitle=""/>
+ <membergroups visible="yes"/>
+ </memberdecl>
+ <detaileddescription title=""/>
+ <memberdef>
+ <inlineclasses title=""/>
+ <typedefs title=""/>
+ <enums title=""/>
+ <services title=""/>
+ <interfaces title=""/>
+ <constructors title=""/>
+ <functions title=""/>
+ <related title=""/>
+ <variables title=""/>
+ <properties title=""/>
+ <events title=""/>
+ </memberdef>
+ <allmemberslink visible="yes"/>
+ <usedfiles visible="$SHOW_USED_FILES"/>
+ <authorsection visible="yes"/>
+ </class>
+
+ <!-- Layout definition for a namespace page -->
+ <namespace>
+ <briefdescription visible="yes"/>
+ <memberdecl>
+ <nestednamespaces visible="yes" title=""/>
+ <constantgroups visible="yes" title=""/>
+ <classes visible="yes" title=""/>
+ <typedefs title=""/>
+ <enums title=""/>
+ <functions title=""/>
+ <variables title=""/>
+ <membergroups visible="yes"/>
+ </memberdecl>
+ <detaileddescription title=""/>
+ <memberdef>
+ <inlineclasses title=""/>
+ <typedefs title=""/>
+ <enums title=""/>
+ <functions title=""/>
+ <variables title=""/>
+ </memberdef>
+ <authorsection visible="yes"/>
+ </namespace>
+
+ <!-- Layout definition for a file page -->
+ <file>
+ <briefdescription visible="yes"/>
+ <includes visible="$SHOW_INCLUDE_FILES"/>
+ <includegraph visible="$INCLUDE_GRAPH"/>
+ <includedbygraph visible="$INCLUDED_BY_GRAPH"/>
+ <sourcelink visible="yes"/>
+ <memberdecl>
+ <classes visible="yes" title=""/>
+ <namespaces visible="yes" title=""/>
+ <constantgroups visible="yes" title=""/>
+ <defines title=""/>
+ <typedefs title=""/>
+ <enums title=""/>
+ <functions title=""/>
+ <variables title=""/>
+ <membergroups visible="yes"/>
+ </memberdecl>
+ <detaileddescription title=""/>
+ <memberdef>
+ <inlineclasses title=""/>
+ <defines title=""/>
+ <typedefs title=""/>
+ <enums title=""/>
+ <functions title=""/>
+ <variables title=""/>
+ </memberdef>
+ <authorsection/>
+ </file>
+
+ <!-- Layout definition for a group page -->
+ <group>
+ <briefdescription visible="yes"/>
+ <groupgraph visible="$GROUP_GRAPHS"/>
+ <memberdecl>
+ <nestedgroups visible="yes" title=""/>
+ <dirs visible="yes" title=""/>
+ <files visible="yes" title=""/>
+ <namespaces visible="yes" title=""/>
+ <classes visible="yes" title=""/>
+ <defines title=""/>
+ <typedefs title=""/>
+ <enums title=""/>
+ <enumvalues title=""/>
+ <functions title=""/>
+ <variables title=""/>
+ <signals title=""/>
+ <publicslots title=""/>
+ <protectedslots title=""/>
+ <privateslots title=""/>
+ <events title=""/>
+ <properties title=""/>
+ <friends title=""/>
+ <membergroups visible="yes"/>
+ </memberdecl>
+ <detaileddescription title=""/>
+ <memberdef>
+ <pagedocs/>
+ <inlineclasses title=""/>
+ <defines title=""/>
+ <typedefs title=""/>
+ <enums title=""/>
+ <enumvalues title=""/>
+ <functions title=""/>
+ <variables title=""/>
+ <signals title=""/>
+ <publicslots title=""/>
+ <protectedslots title=""/>
+ <privateslots title=""/>
+ <events title=""/>
+ <properties title=""/>
+ <friends title=""/>
+ </memberdef>
+ <authorsection visible="yes"/>
+ </group>
+
+ <!-- Layout definition for a directory page -->
+ <directory>
+ <briefdescription visible="yes"/>
+ <directorygraph visible="yes"/>
+ <memberdecl>
+ <dirs visible="yes"/>
+ <files visible="yes"/>
+ </memberdecl>
+ <detaileddescription title=""/>
+ </directory>
+</doxygenlayout>
diff --git a/tools/doxygen/pages_index.html b/tools/doxygen/pages_index.html
new file mode 100644
index 000000000..c9ca5b58c
--- /dev/null
+++ b/tools/doxygen/pages_index.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
+ <title>Hercules documentation</title>
+ <link href="docs/doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+ <div id="top">
+ <div id="titlearea">
+ <table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="docs/Hercules48.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Hercules</div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="header">
+ <div class="headertitle">
+ <div class="title">Hercules Documentation</div>
+ </div>
+ </div><!--header-->
+ <div class="contents">
+ <ul>
+ <li><a href="docs/">Doxygen</a></li>
+ <li><a href="gcov_pre.html">Coverage Report: pre-renewal build</a> <a href="gcov_pre.txt">(raw data)</a></li>
+ <li><a href="gcov_re.html">Coverage Report: renewal build</a> <a href="gcov_re.txt">(raw data)</a></li>
+ <li><a href="https://github.com/HerculesWS/Hercules">GitHub</a></li>
+ <li><a href="https://gitlab.com/HerculesWS/Hercules">GitLab</a></li>
+ </ul>
+ </div><!-- contents -->
+ <hr class="footer">
+</body></html>
diff --git a/tools/doxygen/style.css b/tools/doxygen/style.css
new file mode 100644
index 000000000..02e8b0152
--- /dev/null
+++ b/tools/doxygen/style.css
@@ -0,0 +1,1440 @@
+/* The standard CSS for doxygen 1.8.8 */
+
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+p.starttd {
+ margin-top: 0px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #9CAFD4;
+ border-bottom: 1px solid #9CAFD4;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3D578C;
+}
+
+.arrow {
+ color: #9CAFD4;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #728DC1;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('ftv2folderopen.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('ftv2folderclosed.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('ftv2doc.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+table.directory {
+ font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+