Skip to content

Commit

Permalink
Doxygen's and Sphinx's configuration (#567)
Browse files Browse the repository at this point in the history
  • Loading branch information
kenorb authored Sep 11, 2021
1 parent 078019b commit 08a889b
Show file tree
Hide file tree
Showing 8 changed files with 128 additions and 11 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
build.properties
logs/

# Doxygen's and Sphinx's output.
docs/api/build

# Ignores compiled binary files.
*.ex?

Expand Down
4 changes: 3 additions & 1 deletion Indicator.mqh
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,9 @@ class Indicator : public Chart {
/**
* Returns currently selected data source without any validation.
*/
Indicator* GetDataSourceRaw() { return iparams.GetDataSource(); }
Indicator* GetDataSourceRaw() {
return iparams.GetDataSource();
}

/**
* Returns currently selected data source doing validation.
Expand Down
11 changes: 4 additions & 7 deletions Indicators/Indi_AppliedPrice.mqh
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ class Indi_AppliedPrice : public Indicator {
/**
* Class constructor.
*/
Indi_AppliedPrice(AppliedPriceParams &_params) : params(_params), Indicator((IndicatorParams)_params){};
Indi_AppliedPrice() : Indicator(INDI_APPLIED_PRICE){};
Indi_AppliedPrice(AppliedPriceParams &_params) : params(_params), Indicator((IndicatorParams)_params) {};
Indi_AppliedPrice() : Indicator(INDI_APPLIED_PRICE) {};

static double iAppliedPriceOnIndicator(Indicator *_indi, ENUM_APPLIED_PRICE _applied_price, int _shift = 0) {
double _ohlc[4];
Expand All @@ -68,14 +68,11 @@ class Indi_AppliedPrice : public Indicator {
switch (params.idstype) {
case IDATA_INDICATOR:
if (HasDataSource()) {
// Future validation of GetDataSource() will check if we set mode for source indicator (e.g. for applied price
// of Indi_Price).
// Future validation of GetDataSource() will check if we set mode for source indicator (e.g. for applied price of Indi_Price).
iparams.SetDataSourceMode(GetAppliedPrice());
}
if (GetDataSource().GetParams().GetMaxModes() != 4) {
Print(
"Indi_AppliedPrice indicator may be used only with indicator that has at least 4 modes/buffers (O, H, L, "
"C)!");
Print("Indi_AppliedPrice indicator may be used only with indicator that has at least 4 modes/buffers (O, H, L, C)!");
DebugBreak();
}
_value = Indi_AppliedPrice::iAppliedPriceOnIndicator(GetDataSource(), GetAppliedPrice(), _shift);
Expand Down
5 changes: 3 additions & 2 deletions .Doxyfile → docs/api/Doxyfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Doxyfile 1.9.1
ALPHABETICAL_INDEX = YES
EXCLUDE = tests/
EXCLUDE = ../../tests/
FILE_PATTERNS = *.h *.mq?
GENERATE_HTML = YES
GENERATE_XML = YES
OUTPUT_DIRECTORY = docs
INPUT = "../../"
OUTPUT_DIRECTORY = "build"
PROJECT_NAME = EA31337 Framework
RECURSIVE = YES
10 changes: 10 additions & 0 deletions docs/api/Doxyfile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Doxyfile 1.9.1
ALPHABETICAL_INDEX = YES
EXCLUDE = ../../tests/
FILE_PATTERNS = *.h *.mq?
GENERATE_HTML = YES
GENERATE_XML = YES
INPUT = "@DOXYGEN_INPUT_DIR@"
OUTPUT_DIRECTORY = "@DOXYGEN_OUTPUT_DIR@"
PROJECT_NAME = EA31337 Framework
RECURSIVE = YES
87 changes: 87 additions & 0 deletions docs/api/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import sphinx_rtd_theme

# -- Project information -----------------------------------------------------

project = 'EA31337 Framework'
copyright = '2021, EA31337 Ltd'
author = 'EA31337 Ltd'

# The full version, including alpha/beta/rc tags
release = '1.0'


# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"breathe",
"sphinx.ext.autodoc"
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []


# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = "sphinx_rtd_theme"

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']

import subprocess, os, sys
sys.path.insert(0, os.path.abspath('../'))

def configureDoxyfile(input_dir, output_dir):
with open('Doxyfile.in', 'r') as file :
filedata = file.read()

filedata = filedata.replace('@DOXYGEN_INPUT_DIR@', input_dir)
filedata = filedata.replace('@DOXYGEN_OUTPUT_DIR@', output_dir)

with open('Doxyfile', 'w') as file:
file.write(filedata)

# Check if we're running on Read the Docs' servers
read_the_docs_build = os.environ.get('READTHEDOCS', 'True') == 'True'

breathe_projects = {}

if read_the_docs_build:
input_dir = '../'
output_dir = 'build'
configureDoxyfile(input_dir, output_dir)
subprocess.call('doxygen', shell=True)
breathe_projects['EA31337 Framework'] = output_dir + '/xml'

print(breathe_projects)
# ...

breathe_default_project = "EA31337 Framework"
17 changes: 17 additions & 0 deletions docs/api/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Docs
====

.. toctree::
:maxdepth: 2

Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

Classes
=======
.. autoclass:: AccountEntry
:members:
:undoc-members:
2 changes: 1 addition & 1 deletion tests/IndicatorsTest.mq5
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ struct DataParamEntry;
#include "../Indicators/Indi_ADXW.mqh"
#include "../Indicators/Indi_AMA.mqh"
#include "../Indicators/Indi_AO.mqh"
#include "../Indicators/Indi_AppliedPrice.mqh"
#include "../Indicators/Indi_ATR.mqh"
#include "../Indicators/Indi_Alligator.mqh"
#include "../Indicators/Indi_AppliedPrice.mqh"
#include "../Indicators/Indi_BWMFI.mqh"
#include "../Indicators/Indi_BWZT.mqh"
#include "../Indicators/Indi_Bands.mqh"
Expand Down

0 comments on commit 08a889b

Please sign in to comment.