Commit b9111cebc89acd52ebf8176a71eb4409bfeb1ac4
Committed by
Moritz Wirger
1 parent
844af4db
Fix doxygen generation, add main page.
Showing
4 changed files
with
227 additions
and
85 deletions
.gitignore
Doxyfile
| 1 | -# Doxyfile 1.8.13 | |
| 1 | +# Doxyfile 1.8.11 | |
| 2 | 2 | |
| 3 | 3 | # This file describes the settings to be used by the documentation system |
| 4 | 4 | # doxygen (www.doxygen.org) for a project. |
| ... | ... | @@ -38,20 +38,20 @@ PROJECT_NAME = hueplusplus |
| 38 | 38 | # could be handy for archiving the generated documentation or if some version |
| 39 | 39 | # control system is used. |
| 40 | 40 | |
| 41 | -PROJECT_NUMBER = | |
| 41 | +PROJECT_NUMBER = | |
| 42 | 42 | |
| 43 | 43 | # Using the PROJECT_BRIEF tag one can provide an optional one line description |
| 44 | 44 | # for a project that appears at the top of each page and should give viewer a |
| 45 | 45 | # quick idea about the purpose of the project. Keep the description short. |
| 46 | 46 | |
| 47 | -PROJECT_BRIEF = | |
| 47 | +PROJECT_BRIEF = | |
| 48 | 48 | |
| 49 | 49 | # With the PROJECT_LOGO tag one can specify a logo or an icon that is included |
| 50 | 50 | # in the documentation. The maximum height of the logo should not exceed 55 |
| 51 | 51 | # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy |
| 52 | 52 | # the logo to the output directory. |
| 53 | 53 | |
| 54 | -PROJECT_LOGO = | |
| 54 | +PROJECT_LOGO = | |
| 55 | 55 | |
| 56 | 56 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path |
| 57 | 57 | # into which the generated documentation will be written. If a relative path is |
| ... | ... | @@ -162,7 +162,7 @@ FULL_PATH_NAMES = YES |
| 162 | 162 | # will be relative from the directory where doxygen is started. |
| 163 | 163 | # This tag requires that the tag FULL_PATH_NAMES is set to YES. |
| 164 | 164 | |
| 165 | -STRIP_FROM_PATH = | |
| 165 | +STRIP_FROM_PATH = | |
| 166 | 166 | |
| 167 | 167 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the |
| 168 | 168 | # path mentioned in the documentation of a class, which tells the reader which |
| ... | ... | @@ -171,7 +171,7 @@ STRIP_FROM_PATH = |
| 171 | 171 | # specify the list of include paths that are normally passed to the compiler |
| 172 | 172 | # using the -I flag. |
| 173 | 173 | |
| 174 | -STRIP_FROM_INC_PATH = | |
| 174 | +STRIP_FROM_INC_PATH = | |
| 175 | 175 | |
| 176 | 176 | # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but |
| 177 | 177 | # less readable) file names. This can be useful is your file systems doesn't |
| ... | ... | @@ -238,13 +238,13 @@ TAB_SIZE = 4 |
| 238 | 238 | # "Side Effects:". You can put \n's in the value part of an alias to insert |
| 239 | 239 | # newlines. |
| 240 | 240 | |
| 241 | -ALIASES = | |
| 241 | +ALIASES = | |
| 242 | 242 | |
| 243 | 243 | # This tag can be used to specify a number of word-keyword mappings (TCL only). |
| 244 | 244 | # A mapping has the form "name=value". For example adding "class=itcl::class" |
| 245 | 245 | # will allow you to use the command class in the itcl::class meaning. |
| 246 | 246 | |
| 247 | -TCL_SUBST = | |
| 247 | +TCL_SUBST = | |
| 248 | 248 | |
| 249 | 249 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources |
| 250 | 250 | # only. Doxygen will then generate output that is more tailored for C. For |
| ... | ... | @@ -291,7 +291,7 @@ OPTIMIZE_OUTPUT_VHDL = NO |
| 291 | 291 | # Note that for custom extensions you also need to set FILE_PATTERNS otherwise |
| 292 | 292 | # the files are not read by doxygen. |
| 293 | 293 | |
| 294 | -EXTENSION_MAPPING = | |
| 294 | +EXTENSION_MAPPING = | |
| 295 | 295 | |
| 296 | 296 | # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments |
| 297 | 297 | # according to the Markdown format, which allows for more readable |
| ... | ... | @@ -303,15 +303,6 @@ EXTENSION_MAPPING = |
| 303 | 303 | |
| 304 | 304 | MARKDOWN_SUPPORT = YES |
| 305 | 305 | |
| 306 | -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up | |
| 307 | -# to that level are automatically included in the table of contents, even if | |
| 308 | -# they do not have an id attribute. | |
| 309 | -# Note: This feature currently applies only to Markdown headings. | |
| 310 | -# Minimum value: 0, maximum value: 99, default value: 0. | |
| 311 | -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. | |
| 312 | - | |
| 313 | -TOC_INCLUDE_HEADINGS = 0 | |
| 314 | - | |
| 315 | 306 | # When enabled doxygen tries to link words that correspond to documented |
| 316 | 307 | # classes, or namespaces to their corresponding documentation. Such a link can |
| 317 | 308 | # be prevented in individual cases by putting a % sign in front of the word or |
| ... | ... | @@ -648,7 +639,7 @@ GENERATE_DEPRECATEDLIST= YES |
| 648 | 639 | # sections, marked by \if <section_label> ... \endif and \cond <section_label> |
| 649 | 640 | # ... \endcond blocks. |
| 650 | 641 | |
| 651 | -ENABLED_SECTIONS = | |
| 642 | +ENABLED_SECTIONS = | |
| 652 | 643 | |
| 653 | 644 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the |
| 654 | 645 | # initial value of a variable or macro / define can have for it to appear in the |
| ... | ... | @@ -690,7 +681,7 @@ SHOW_NAMESPACES = YES |
| 690 | 681 | # by doxygen. Whatever the program writes to standard output is used as the file |
| 691 | 682 | # version. For an example see the documentation. |
| 692 | 683 | |
| 693 | -FILE_VERSION_FILTER = | |
| 684 | +FILE_VERSION_FILTER = | |
| 694 | 685 | |
| 695 | 686 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed |
| 696 | 687 | # by doxygen. The layout file controls the global structure of the generated |
| ... | ... | @@ -703,7 +694,7 @@ FILE_VERSION_FILTER = |
| 703 | 694 | # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE |
| 704 | 695 | # tag is left empty. |
| 705 | 696 | |
| 706 | -LAYOUT_FILE = | |
| 697 | +LAYOUT_FILE = | |
| 707 | 698 | |
| 708 | 699 | # The CITE_BIB_FILES tag can be used to specify one or more bib files containing |
| 709 | 700 | # the reference definitions. This must be a list of .bib files. The .bib |
| ... | ... | @@ -713,7 +704,7 @@ LAYOUT_FILE = |
| 713 | 704 | # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the |
| 714 | 705 | # search path. See also \cite for info how to create references. |
| 715 | 706 | |
| 716 | -CITE_BIB_FILES = | |
| 707 | +CITE_BIB_FILES = | |
| 717 | 708 | |
| 718 | 709 | #--------------------------------------------------------------------------- |
| 719 | 710 | # Configuration options related to warning and progress messages |
| ... | ... | @@ -778,7 +769,7 @@ WARN_FORMAT = "$file:$line: $text" |
| 778 | 769 | # messages should be written. If left blank the output is written to standard |
| 779 | 770 | # error (stderr). |
| 780 | 771 | |
| 781 | -WARN_LOGFILE = | |
| 772 | +WARN_LOGFILE = | |
| 782 | 773 | |
| 783 | 774 | #--------------------------------------------------------------------------- |
| 784 | 775 | # Configuration options related to the input files |
| ... | ... | @@ -790,7 +781,9 @@ WARN_LOGFILE = |
| 790 | 781 | # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING |
| 791 | 782 | # Note: If this tag is empty the current directory is searched. |
| 792 | 783 | |
| 793 | -INPUT = hueplusplus | |
| 784 | +INPUT = include/hueplusplus \ | |
| 785 | + src \ | |
| 786 | + doc/markdown | |
| 794 | 787 | |
| 795 | 788 | # This tag can be used to specify the character encoding of the source files |
| 796 | 789 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses |
| ... | ... | @@ -812,8 +805,8 @@ INPUT_ENCODING = UTF-8 |
| 812 | 805 | # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, |
| 813 | 806 | # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, |
| 814 | 807 | # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, |
| 815 | -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, | |
| 816 | -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. | |
| 808 | +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, | |
| 809 | +# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js. | |
| 817 | 810 | |
| 818 | 811 | FILE_PATTERNS = *.c \ |
| 819 | 812 | *.cc \ |
| ... | ... | @@ -873,8 +866,7 @@ RECURSIVE = YES |
| 873 | 866 | # Note that relative paths are relative to the directory from which doxygen is |
| 874 | 867 | # run. |
| 875 | 868 | |
| 876 | -EXCLUDE = hueplusplus/include/json \ | |
| 877 | - hueplusplus/test \ | |
| 869 | +EXCLUDE = | |
| 878 | 870 | |
| 879 | 871 | # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or |
| 880 | 872 | # directories that are symbolic links (a Unix file system feature) are excluded |
| ... | ... | @@ -890,7 +882,7 @@ EXCLUDE_SYMLINKS = NO |
| 890 | 882 | # Note that the wildcards are matched against the file with absolute path, so to |
| 891 | 883 | # exclude all test directories for example use the pattern */test/* |
| 892 | 884 | |
| 893 | -EXCLUDE_PATTERNS = | |
| 885 | +EXCLUDE_PATTERNS = | |
| 894 | 886 | |
| 895 | 887 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names |
| 896 | 888 | # (namespaces, classes, functions, etc.) that should be excluded from the |
| ... | ... | @@ -907,7 +899,7 @@ EXCLUDE_SYMBOLS = *::detail |
| 907 | 899 | # that contain example code fragments that are included (see the \include |
| 908 | 900 | # command). |
| 909 | 901 | |
| 910 | -EXAMPLE_PATH = | |
| 902 | +EXAMPLE_PATH = | |
| 911 | 903 | |
| 912 | 904 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the |
| 913 | 905 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and |
| ... | ... | @@ -927,7 +919,7 @@ EXAMPLE_RECURSIVE = NO |
| 927 | 919 | # that contain images that are to be included in the documentation (see the |
| 928 | 920 | # \image command). |
| 929 | 921 | |
| 930 | -IMAGE_PATH = | |
| 922 | +IMAGE_PATH = | |
| 931 | 923 | |
| 932 | 924 | # The INPUT_FILTER tag can be used to specify a program that doxygen should |
| 933 | 925 | # invoke to filter for each input file. Doxygen will invoke the filter program |
| ... | ... | @@ -948,7 +940,7 @@ IMAGE_PATH = |
| 948 | 940 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not |
| 949 | 941 | # properly processed by doxygen. |
| 950 | 942 | |
| 951 | -INPUT_FILTER = | |
| 943 | +INPUT_FILTER = | |
| 952 | 944 | |
| 953 | 945 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern |
| 954 | 946 | # basis. Doxygen will compare the file name with each pattern and apply the |
| ... | ... | @@ -961,7 +953,7 @@ INPUT_FILTER = |
| 961 | 953 | # need to set EXTENSION_MAPPING for the extension otherwise the files are not |
| 962 | 954 | # properly processed by doxygen. |
| 963 | 955 | |
| 964 | -FILTER_PATTERNS = | |
| 956 | +FILTER_PATTERNS = | |
| 965 | 957 | |
| 966 | 958 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using |
| 967 | 959 | # INPUT_FILTER) will also be used to filter the input files that are used for |
| ... | ... | @@ -976,14 +968,14 @@ FILTER_SOURCE_FILES = NO |
| 976 | 968 | # *.ext= (so without naming a filter). |
| 977 | 969 | # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. |
| 978 | 970 | |
| 979 | -FILTER_SOURCE_PATTERNS = | |
| 971 | +FILTER_SOURCE_PATTERNS = | |
| 980 | 972 | |
| 981 | 973 | # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that |
| 982 | 974 | # is part of the input, its contents will be placed on the main page |
| 983 | 975 | # (index.html). This can be useful if you have a project on for instance GitHub |
| 984 | 976 | # and want to reuse the introduction page also for the doxygen output. |
| 985 | 977 | |
| 986 | -USE_MDFILE_AS_MAINPAGE = | |
| 978 | +USE_MDFILE_AS_MAINPAGE = Mainpage.md | |
| 987 | 979 | |
| 988 | 980 | #--------------------------------------------------------------------------- |
| 989 | 981 | # Configuration options related to source browsing |
| ... | ... | @@ -1088,7 +1080,7 @@ CLANG_ASSISTED_PARSING = NO |
| 1088 | 1080 | # specified with INPUT and INCLUDE_PATH. |
| 1089 | 1081 | # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. |
| 1090 | 1082 | |
| 1091 | -CLANG_OPTIONS = | |
| 1083 | +CLANG_OPTIONS = | |
| 1092 | 1084 | |
| 1093 | 1085 | #--------------------------------------------------------------------------- |
| 1094 | 1086 | # Configuration options related to the alphabetical class index |
| ... | ... | @@ -1114,7 +1106,7 @@ COLS_IN_ALPHA_INDEX = 5 |
| 1114 | 1106 | # while generating the index headers. |
| 1115 | 1107 | # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. |
| 1116 | 1108 | |
| 1117 | -IGNORE_PREFIX = | |
| 1109 | +IGNORE_PREFIX = | |
| 1118 | 1110 | |
| 1119 | 1111 | #--------------------------------------------------------------------------- |
| 1120 | 1112 | # Configuration options related to the HTML output |
| ... | ... | @@ -1158,7 +1150,7 @@ HTML_FILE_EXTENSION = .html |
| 1158 | 1150 | # of the possible markers and block names see the documentation. |
| 1159 | 1151 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1160 | 1152 | |
| 1161 | -HTML_HEADER = | |
| 1153 | +HTML_HEADER = | |
| 1162 | 1154 | |
| 1163 | 1155 | # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each |
| 1164 | 1156 | # generated HTML page. If the tag is left blank doxygen will generate a standard |
| ... | ... | @@ -1168,7 +1160,7 @@ HTML_HEADER = |
| 1168 | 1160 | # that doxygen normally uses. |
| 1169 | 1161 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1170 | 1162 | |
| 1171 | -HTML_FOOTER = | |
| 1163 | +HTML_FOOTER = | |
| 1172 | 1164 | |
| 1173 | 1165 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style |
| 1174 | 1166 | # sheet that is used by each HTML page. It can be used to fine-tune the look of |
| ... | ... | @@ -1180,7 +1172,7 @@ HTML_FOOTER = |
| 1180 | 1172 | # obsolete. |
| 1181 | 1173 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1182 | 1174 | |
| 1183 | -HTML_STYLESHEET = | |
| 1175 | +HTML_STYLESHEET = | |
| 1184 | 1176 | |
| 1185 | 1177 | # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined |
| 1186 | 1178 | # cascading style sheets that are included after the standard style sheets |
| ... | ... | @@ -1193,7 +1185,7 @@ HTML_STYLESHEET = |
| 1193 | 1185 | # list). For an example see the documentation. |
| 1194 | 1186 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1195 | 1187 | |
| 1196 | -HTML_EXTRA_STYLESHEET = | |
| 1188 | +HTML_EXTRA_STYLESHEET = | |
| 1197 | 1189 | |
| 1198 | 1190 | # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or |
| 1199 | 1191 | # other source files which should be copied to the HTML output directory. Note |
| ... | ... | @@ -1203,7 +1195,7 @@ HTML_EXTRA_STYLESHEET = |
| 1203 | 1195 | # files will be copied as-is; there are no commands or markers available. |
| 1204 | 1196 | # This tag requires that the tag GENERATE_HTML is set to YES. |
| 1205 | 1197 | |
| 1206 | -HTML_EXTRA_FILES = | |
| 1198 | +HTML_EXTRA_FILES = | |
| 1207 | 1199 | |
| 1208 | 1200 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen |
| 1209 | 1201 | # will adjust the colors in the style sheet and background images according to |
| ... | ... | @@ -1332,7 +1324,7 @@ GENERATE_HTMLHELP = NO |
| 1332 | 1324 | # written to the html output directory. |
| 1333 | 1325 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1334 | 1326 | |
| 1335 | -CHM_FILE = | |
| 1327 | +CHM_FILE = | |
| 1336 | 1328 | |
| 1337 | 1329 | # The HHC_LOCATION tag can be used to specify the location (absolute path |
| 1338 | 1330 | # including file name) of the HTML help compiler (hhc.exe). If non-empty, |
| ... | ... | @@ -1340,7 +1332,7 @@ CHM_FILE = |
| 1340 | 1332 | # The file has to be specified with full path. |
| 1341 | 1333 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1342 | 1334 | |
| 1343 | -HHC_LOCATION = | |
| 1335 | +HHC_LOCATION = | |
| 1344 | 1336 | |
| 1345 | 1337 | # The GENERATE_CHI flag controls if a separate .chi index file is generated |
| 1346 | 1338 | # (YES) or that it should be included in the master .chm file (NO). |
| ... | ... | @@ -1353,7 +1345,7 @@ GENERATE_CHI = NO |
| 1353 | 1345 | # and project file content. |
| 1354 | 1346 | # This tag requires that the tag GENERATE_HTMLHELP is set to YES. |
| 1355 | 1347 | |
| 1356 | -CHM_INDEX_ENCODING = | |
| 1348 | +CHM_INDEX_ENCODING = | |
| 1357 | 1349 | |
| 1358 | 1350 | # The BINARY_TOC flag controls whether a binary table of contents is generated |
| 1359 | 1351 | # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it |
| ... | ... | @@ -1384,7 +1376,7 @@ GENERATE_QHP = NO |
| 1384 | 1376 | # the HTML output folder. |
| 1385 | 1377 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1386 | 1378 | |
| 1387 | -QCH_FILE = | |
| 1379 | +QCH_FILE = | |
| 1388 | 1380 | |
| 1389 | 1381 | # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help |
| 1390 | 1382 | # Project output. For more information please see Qt Help Project / Namespace |
| ... | ... | @@ -1409,7 +1401,7 @@ QHP_VIRTUAL_FOLDER = doc |
| 1409 | 1401 | # filters). |
| 1410 | 1402 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1411 | 1403 | |
| 1412 | -QHP_CUST_FILTER_NAME = | |
| 1404 | +QHP_CUST_FILTER_NAME = | |
| 1413 | 1405 | |
| 1414 | 1406 | # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the |
| 1415 | 1407 | # custom filter to add. For more information please see Qt Help Project / Custom |
| ... | ... | @@ -1417,21 +1409,21 @@ QHP_CUST_FILTER_NAME = |
| 1417 | 1409 | # filters). |
| 1418 | 1410 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1419 | 1411 | |
| 1420 | -QHP_CUST_FILTER_ATTRS = | |
| 1412 | +QHP_CUST_FILTER_ATTRS = | |
| 1421 | 1413 | |
| 1422 | 1414 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this |
| 1423 | 1415 | # project's filter section matches. Qt Help Project / Filter Attributes (see: |
| 1424 | 1416 | # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). |
| 1425 | 1417 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1426 | 1418 | |
| 1427 | -QHP_SECT_FILTER_ATTRS = | |
| 1419 | +QHP_SECT_FILTER_ATTRS = | |
| 1428 | 1420 | |
| 1429 | 1421 | # The QHG_LOCATION tag can be used to specify the location of Qt's |
| 1430 | 1422 | # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the |
| 1431 | 1423 | # generated .qhp file. |
| 1432 | 1424 | # This tag requires that the tag GENERATE_QHP is set to YES. |
| 1433 | 1425 | |
| 1434 | -QHG_LOCATION = | |
| 1426 | +QHG_LOCATION = | |
| 1435 | 1427 | |
| 1436 | 1428 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be |
| 1437 | 1429 | # generated, together with the HTML files, they form an Eclipse help plugin. To |
| ... | ... | @@ -1564,7 +1556,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest |
| 1564 | 1556 | # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols |
| 1565 | 1557 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1566 | 1558 | |
| 1567 | -MATHJAX_EXTENSIONS = | |
| 1559 | +MATHJAX_EXTENSIONS = | |
| 1568 | 1560 | |
| 1569 | 1561 | # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces |
| 1570 | 1562 | # of code that will be used on startup of the MathJax code. See the MathJax site |
| ... | ... | @@ -1572,7 +1564,7 @@ MATHJAX_EXTENSIONS = |
| 1572 | 1564 | # example see the documentation. |
| 1573 | 1565 | # This tag requires that the tag USE_MATHJAX is set to YES. |
| 1574 | 1566 | |
| 1575 | -MATHJAX_CODEFILE = | |
| 1567 | +MATHJAX_CODEFILE = | |
| 1576 | 1568 | |
| 1577 | 1569 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box for |
| 1578 | 1570 | # the HTML output. The underlying search engine uses javascript and DHTML and |
| ... | ... | @@ -1632,7 +1624,7 @@ EXTERNAL_SEARCH = NO |
| 1632 | 1624 | # Searching" for details. |
| 1633 | 1625 | # This tag requires that the tag SEARCHENGINE is set to YES. |
| 1634 | 1626 | |
| 1635 | -SEARCHENGINE_URL = | |
| 1627 | +SEARCHENGINE_URL = | |
| 1636 | 1628 | |
| 1637 | 1629 | # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed |
| 1638 | 1630 | # search data is written to a file for indexing by an external tool. With the |
| ... | ... | @@ -1648,7 +1640,7 @@ SEARCHDATA_FILE = searchdata.xml |
| 1648 | 1640 | # projects and redirect the results back to the right project. |
| 1649 | 1641 | # This tag requires that the tag SEARCHENGINE is set to YES. |
| 1650 | 1642 | |
| 1651 | -EXTERNAL_SEARCH_ID = | |
| 1643 | +EXTERNAL_SEARCH_ID = | |
| 1652 | 1644 | |
| 1653 | 1645 | # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen |
| 1654 | 1646 | # projects other than the one defined by this configuration file, but that are |
| ... | ... | @@ -1658,7 +1650,7 @@ EXTERNAL_SEARCH_ID = |
| 1658 | 1650 | # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... |
| 1659 | 1651 | # This tag requires that the tag SEARCHENGINE is set to YES. |
| 1660 | 1652 | |
| 1661 | -EXTRA_SEARCH_MAPPINGS = | |
| 1653 | +EXTRA_SEARCH_MAPPINGS = | |
| 1662 | 1654 | |
| 1663 | 1655 | #--------------------------------------------------------------------------- |
| 1664 | 1656 | # Configuration options related to the LaTeX output |
| ... | ... | @@ -1667,7 +1659,7 @@ EXTRA_SEARCH_MAPPINGS = |
| 1667 | 1659 | # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. |
| 1668 | 1660 | # The default value is: YES. |
| 1669 | 1661 | |
| 1670 | -GENERATE_LATEX = YES | |
| 1662 | +GENERATE_LATEX = NO | |
| 1671 | 1663 | |
| 1672 | 1664 | # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a |
| 1673 | 1665 | # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of |
| ... | ... | @@ -1722,7 +1714,7 @@ PAPER_TYPE = a4 |
| 1722 | 1714 | # If left blank no extra packages will be included. |
| 1723 | 1715 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1724 | 1716 | |
| 1725 | -EXTRA_PACKAGES = | |
| 1717 | +EXTRA_PACKAGES = | |
| 1726 | 1718 | |
| 1727 | 1719 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the |
| 1728 | 1720 | # generated LaTeX document. The header should contain everything until the first |
| ... | ... | @@ -1738,7 +1730,7 @@ EXTRA_PACKAGES = |
| 1738 | 1730 | # to HTML_HEADER. |
| 1739 | 1731 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1740 | 1732 | |
| 1741 | -LATEX_HEADER = | |
| 1733 | +LATEX_HEADER = | |
| 1742 | 1734 | |
| 1743 | 1735 | # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the |
| 1744 | 1736 | # generated LaTeX document. The footer should contain everything after the last |
| ... | ... | @@ -1749,7 +1741,7 @@ LATEX_HEADER = |
| 1749 | 1741 | # Note: Only use a user-defined footer if you know what you are doing! |
| 1750 | 1742 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1751 | 1743 | |
| 1752 | -LATEX_FOOTER = | |
| 1744 | +LATEX_FOOTER = | |
| 1753 | 1745 | |
| 1754 | 1746 | # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined |
| 1755 | 1747 | # LaTeX style sheets that are included after the standard style sheets created |
| ... | ... | @@ -1760,7 +1752,7 @@ LATEX_FOOTER = |
| 1760 | 1752 | # list). |
| 1761 | 1753 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1762 | 1754 | |
| 1763 | -LATEX_EXTRA_STYLESHEET = | |
| 1755 | +LATEX_EXTRA_STYLESHEET = | |
| 1764 | 1756 | |
| 1765 | 1757 | # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or |
| 1766 | 1758 | # other source files which should be copied to the LATEX_OUTPUT output |
| ... | ... | @@ -1768,7 +1760,7 @@ LATEX_EXTRA_STYLESHEET = |
| 1768 | 1760 | # markers available. |
| 1769 | 1761 | # This tag requires that the tag GENERATE_LATEX is set to YES. |
| 1770 | 1762 | |
| 1771 | -LATEX_EXTRA_FILES = | |
| 1763 | +LATEX_EXTRA_FILES = | |
| 1772 | 1764 | |
| 1773 | 1765 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is |
| 1774 | 1766 | # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will |
| ... | ... | @@ -1876,14 +1868,14 @@ RTF_HYPERLINKS = NO |
| 1876 | 1868 | # default style sheet that doxygen normally uses. |
| 1877 | 1869 | # This tag requires that the tag GENERATE_RTF is set to YES. |
| 1878 | 1870 | |
| 1879 | -RTF_STYLESHEET_FILE = | |
| 1871 | +RTF_STYLESHEET_FILE = | |
| 1880 | 1872 | |
| 1881 | 1873 | # Set optional variables used in the generation of an RTF document. Syntax is |
| 1882 | 1874 | # similar to doxygen's config file. A template extensions file can be generated |
| 1883 | 1875 | # using doxygen -e rtf extensionFile. |
| 1884 | 1876 | # This tag requires that the tag GENERATE_RTF is set to YES. |
| 1885 | 1877 | |
| 1886 | -RTF_EXTENSIONS_FILE = | |
| 1878 | +RTF_EXTENSIONS_FILE = | |
| 1887 | 1879 | |
| 1888 | 1880 | # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code |
| 1889 | 1881 | # with syntax highlighting in the RTF output. |
| ... | ... | @@ -1928,7 +1920,7 @@ MAN_EXTENSION = .3 |
| 1928 | 1920 | # MAN_EXTENSION with the initial . removed. |
| 1929 | 1921 | # This tag requires that the tag GENERATE_MAN is set to YES. |
| 1930 | 1922 | |
| 1931 | -MAN_SUBDIR = | |
| 1923 | +MAN_SUBDIR = | |
| 1932 | 1924 | |
| 1933 | 1925 | # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it |
| 1934 | 1926 | # will generate one additional man file for each entity documented in the real |
| ... | ... | @@ -2041,7 +2033,7 @@ PERLMOD_PRETTY = YES |
| 2041 | 2033 | # overwrite each other's variables. |
| 2042 | 2034 | # This tag requires that the tag GENERATE_PERLMOD is set to YES. |
| 2043 | 2035 | |
| 2044 | -PERLMOD_MAKEVAR_PREFIX = | |
| 2036 | +PERLMOD_MAKEVAR_PREFIX = | |
| 2045 | 2037 | |
| 2046 | 2038 | #--------------------------------------------------------------------------- |
| 2047 | 2039 | # Configuration options related to the preprocessor |
| ... | ... | @@ -2082,7 +2074,7 @@ SEARCH_INCLUDES = YES |
| 2082 | 2074 | # preprocessor. |
| 2083 | 2075 | # This tag requires that the tag SEARCH_INCLUDES is set to YES. |
| 2084 | 2076 | |
| 2085 | -INCLUDE_PATH = | |
| 2077 | +INCLUDE_PATH = | |
| 2086 | 2078 | |
| 2087 | 2079 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard |
| 2088 | 2080 | # patterns (like *.h and *.hpp) to filter out the header-files in the |
| ... | ... | @@ -2090,7 +2082,7 @@ INCLUDE_PATH = |
| 2090 | 2082 | # used. |
| 2091 | 2083 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. |
| 2092 | 2084 | |
| 2093 | -INCLUDE_FILE_PATTERNS = | |
| 2085 | +INCLUDE_FILE_PATTERNS = | |
| 2094 | 2086 | |
| 2095 | 2087 | # The PREDEFINED tag can be used to specify one or more macro names that are |
| 2096 | 2088 | # defined before the preprocessor is started (similar to the -D option of e.g. |
| ... | ... | @@ -2100,7 +2092,7 @@ INCLUDE_FILE_PATTERNS = |
| 2100 | 2092 | # recursively expanded use the := operator instead of the = operator. |
| 2101 | 2093 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. |
| 2102 | 2094 | |
| 2103 | -PREDEFINED = | |
| 2095 | +PREDEFINED = | |
| 2104 | 2096 | |
| 2105 | 2097 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this |
| 2106 | 2098 | # tag can be used to specify a list of macro names that should be expanded. The |
| ... | ... | @@ -2109,7 +2101,7 @@ PREDEFINED = |
| 2109 | 2101 | # definition found in the source code. |
| 2110 | 2102 | # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. |
| 2111 | 2103 | |
| 2112 | -EXPAND_AS_DEFINED = | |
| 2104 | +EXPAND_AS_DEFINED = | |
| 2113 | 2105 | |
| 2114 | 2106 | # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will |
| 2115 | 2107 | # remove all references to function-like macros that are alone on a line, have |
| ... | ... | @@ -2138,13 +2130,13 @@ SKIP_FUNCTION_MACROS = YES |
| 2138 | 2130 | # the path). If a tag file is not located in the directory in which doxygen is |
| 2139 | 2131 | # run, you must also specify the path to the tagfile here. |
| 2140 | 2132 | |
| 2141 | -TAGFILES = | |
| 2133 | +TAGFILES = | |
| 2142 | 2134 | |
| 2143 | 2135 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create a |
| 2144 | 2136 | # tag file that is based on the input files it reads. See section "Linking to |
| 2145 | 2137 | # external documentation" for more information about the usage of tag files. |
| 2146 | 2138 | |
| 2147 | -GENERATE_TAGFILE = | |
| 2139 | +GENERATE_TAGFILE = | |
| 2148 | 2140 | |
| 2149 | 2141 | # If the ALLEXTERNALS tag is set to YES, all external class will be listed in |
| 2150 | 2142 | # the class index. If set to NO, only the inherited external classes will be |
| ... | ... | @@ -2193,14 +2185,14 @@ CLASS_DIAGRAMS = NO |
| 2193 | 2185 | # the mscgen tool resides. If left empty the tool is assumed to be found in the |
| 2194 | 2186 | # default search path. |
| 2195 | 2187 | |
| 2196 | -MSCGEN_PATH = | |
| 2188 | +MSCGEN_PATH = | |
| 2197 | 2189 | |
| 2198 | 2190 | # You can include diagrams made with dia in doxygen documentation. Doxygen will |
| 2199 | 2191 | # then run dia to produce the diagram and insert it in the documentation. The |
| 2200 | 2192 | # DIA_PATH tag allows you to specify the directory where the dia binary resides. |
| 2201 | 2193 | # If left empty dia is assumed to be found in the default search path. |
| 2202 | 2194 | |
| 2203 | -DIA_PATH = | |
| 2195 | +DIA_PATH = | |
| 2204 | 2196 | |
| 2205 | 2197 | # If set to YES the inheritance and collaboration graphs will hide inheritance |
| 2206 | 2198 | # and usage relations if the target is undocumented or is not a class. |
| ... | ... | @@ -2249,7 +2241,7 @@ DOT_FONTSIZE = 10 |
| 2249 | 2241 | # the path where dot can find it using this tag. |
| 2250 | 2242 | # This tag requires that the tag HAVE_DOT is set to YES. |
| 2251 | 2243 | |
| 2252 | -DOT_FONTPATH = | |
| 2244 | +DOT_FONTPATH = | |
| 2253 | 2245 | |
| 2254 | 2246 | # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for |
| 2255 | 2247 | # each documented class showing the direct and indirect inheritance relations. |
| ... | ... | @@ -2400,19 +2392,19 @@ DOT_PATH = /usr/local/bin |
| 2400 | 2392 | # command). |
| 2401 | 2393 | # This tag requires that the tag HAVE_DOT is set to YES. |
| 2402 | 2394 | |
| 2403 | -DOTFILE_DIRS = | |
| 2395 | +DOTFILE_DIRS = | |
| 2404 | 2396 | |
| 2405 | 2397 | # The MSCFILE_DIRS tag can be used to specify one or more directories that |
| 2406 | 2398 | # contain msc files that are included in the documentation (see the \mscfile |
| 2407 | 2399 | # command). |
| 2408 | 2400 | |
| 2409 | -MSCFILE_DIRS = | |
| 2401 | +MSCFILE_DIRS = | |
| 2410 | 2402 | |
| 2411 | 2403 | # The DIAFILE_DIRS tag can be used to specify one or more directories that |
| 2412 | 2404 | # contain dia files that are included in the documentation (see the \diafile |
| 2413 | 2405 | # command). |
| 2414 | 2406 | |
| 2415 | -DIAFILE_DIRS = | |
| 2407 | +DIAFILE_DIRS = | |
| 2416 | 2408 | |
| 2417 | 2409 | # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the |
| 2418 | 2410 | # path where java can find the plantuml.jar file. If left blank, it is assumed |
| ... | ... | @@ -2420,17 +2412,12 @@ DIAFILE_DIRS = |
| 2420 | 2412 | # generate a warning when it encounters a \startuml command in this case and |
| 2421 | 2413 | # will not generate output for the diagram. |
| 2422 | 2414 | |
| 2423 | -PLANTUML_JAR_PATH = | |
| 2424 | - | |
| 2425 | -# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a | |
| 2426 | -# configuration file for plantuml. | |
| 2427 | - | |
| 2428 | -PLANTUML_CFG_FILE = | |
| 2415 | +PLANTUML_JAR_PATH = | |
| 2429 | 2416 | |
| 2430 | 2417 | # When using plantuml, the specified paths are searched for files specified by |
| 2431 | 2418 | # the !include statement in a plantuml block. |
| 2432 | 2419 | |
| 2433 | -PLANTUML_INCLUDE_PATH = | |
| 2420 | +PLANTUML_INCLUDE_PATH = | |
| 2434 | 2421 | |
| 2435 | 2422 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes |
| 2436 | 2423 | # that will be shown in the graph. If the number of nodes in a graph becomes | ... | ... |
README.md
| ... | ... | @@ -101,7 +101,7 @@ If you want to know more about all functions just look inside the doxygen docume |
| 101 | 101 | |
| 102 | 102 | ## Build and install |
| 103 | 103 | ### Basic installation |
| 104 | -If you want to build the library you can use cmake (at least version 2.8.3). First create a build folder and then execute cmake. | |
| 104 | +If you want to build the library you can use cmake (at least version 3.8). First create a build folder and then execute cmake. | |
| 105 | 105 | ```bash |
| 106 | 106 | mkdir build |
| 107 | 107 | cd build | ... | ... |
doc/markdown/Mainpage.md
0 โ 100644
| 1 | +# Documentation for the hueplusplus library | |
| 2 | +A simple and easy to use library for Philips Hue Lights. | |
| 3 | + | |
| 4 | +## Features | |
| 5 | +* find bridges with SSDP or set an ip manually | |
| 6 | +* function to assign a username or set one manually | |
| 7 | +* all common light functions (brightness, color, temperature) | |
| 8 | +* extended alert() functions, which alert in a specific color (good for notifications) | |
| 9 | +* documented with doxygen | |
| 10 | +* tested with google test, google mock and gcov/lcov | |
| 11 | + | |
| 12 | +## Compatibility | |
| 13 | +* Linux | |
| 14 | +* Windows | |
| 15 | +* MacOS | |
| 16 | +* Espressif ESP32 SDK & Arduino | |
| 17 | + | |
| 18 | +## How to use | |
| 19 | +### <a name="searchingBridges"></a>Searching for Bridges | |
| 20 | +To start searching for a Hue Bridge you will need to choose an IHttpHandler and create one. The options are a [WinHttpHandler](@ref hueplusplus::WinHttpHandler) (for windows) or a [LinHttpHandler](@ref hueplusplus::LinHttpHandler) (for linux or linux-like). | |
| 21 | + | |
| 22 | +Then create a [HueFinder](@ref hueplusplus::HueFinder) object with the handler. | |
| 23 | +The handler is needed, because it tells the finder which functions to use to communicate with a bridge or your local network. | |
| 24 | +After that you can call [FindBridges()](@ref hueplusplus::HueFinder::FindBridges), which will return a vector containing the ip and mac address of all found Bridges. | |
| 25 | +```{.cpp} | |
| 26 | +// For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | |
| 27 | +handler = std::make_shared<hueplusplus::LinHttpHandler>(); | |
| 28 | +hueplusplus::HueFinder finder(handler); | |
| 29 | +std::vector<hueplusplus::HueFinder::HueIdentification> bridges = finder.FindBridges(); | |
| 30 | +if (bridges.empty()) | |
| 31 | +{ | |
| 32 | + std::cerr << "No bridges found\n"; | |
| 33 | + return; | |
| 34 | +} | |
| 35 | + | |
| 36 | +``` | |
| 37 | + | |
| 38 | +### Authenticate Bridges | |
| 39 | +If you have found the Bridge you were looking for, you can then move on with the authentication process. | |
| 40 | +To get a new username from the Bridge (for now) you simply call [GetBridge(bridges[\<index\>])](@ref hueplusplus::HueFinder::GetBridge), | |
| 41 | +where index is your preferred Bridge from the part [Searching for Bridges](#searchingBridges). This requires the user to press the link button. | |
| 42 | +```{.cpp} | |
| 43 | +hueplusplus::Hue bridge = finder.GetBridge(bridges[0]); | |
| 44 | +``` | |
| 45 | +If you on the other hand already have a username you can add your bridge like so | |
| 46 | +```{.cpp} | |
| 47 | +finder.AddUsername(bridges[0].mac, "<username>"); | |
| 48 | +hueplusplus::Hue bridge = finder.GetBridge(bridges[0]); | |
| 49 | +``` | |
| 50 | +If you do not want to use the HueFinder or you already know the ip and username of your bridge you have the option to create your own Hue object. | |
| 51 | +Here you will need to provide the ip address, the port number, a username and an HttpHandler | |
| 52 | +```{.cpp} | |
| 53 | +// For windows use std::make_shared<hueplusplus::WinHttpHandler>(); | |
| 54 | +handler = std::make_shared<hueplusplus::LinHttpHandler>(); | |
| 55 | +hueplusplus::Hue bridge("192.168.2.102", 80, "<username>", handler); | |
| 56 | +``` | |
| 57 | + | |
| 58 | +### Controlling lights | |
| 59 | +If you have your Bridge all set up, you can now control its lights. | |
| 60 | +For that create a new HueLight object and call [getLight(\<id\>)](@ref hueplusplus::Hue::getLight) on your bridge object to get a reference to a specific light, where id | |
| 61 | +is the id of the light set internally by the Hue Bridge. | |
| 62 | +```{.cpp} | |
| 63 | +hueplusplus::HueLight light1 = bridge.getLight(1); | |
| 64 | +``` | |
| 65 | +If you don't know the id of a specific light or want to get an overview over all lights that are controlled by your bridge, | |
| 66 | +you can get a vector containing them by calling [getAllLights()](@ref hueplusplus::Hue::getAllLights) on your bridge object. If no lights are found the vector will be empty. | |
| 67 | +```{.cpp} | |
| 68 | +std::vector<std::reference_wrapper<hueplusplus::HueLight>> lights = bridge.getAllLights(); | |
| 69 | +``` | |
| 70 | +If you now want to control a light, call a specific function of it. | |
| 71 | +```{.cpp} | |
| 72 | +light1.On(); | |
| 73 | +light1.setBrightness(120); | |
| 74 | +light1.alertHueSaturation(25500, 255); | |
| 75 | +light1.setColorLoop(true); | |
| 76 | +light1.setColorRGB(255, 128, 0); | |
| 77 | +lights[1].Off(); | |
| 78 | +lights.at(1).setColorHue(4562); | |
| 79 | +``` | |
| 80 | +But keep in mind that some light types do not have all functions available. So you might call a | |
| 81 | +specific function, but nothing will happen. For that you might want to check what type | |
| 82 | +of a light you are controlling. For that you can call the function [getColorType()](@ref hueplusplus::HueLight::getColorType()), which will return | |
| 83 | +a ColorType. | |
| 84 | +```{.cpp} | |
| 85 | +hueplusplus::ColorType type1 = light1.getColorType(); | |
| 86 | +``` | |
| 87 | +There's also a new way to check whether specific functions of a light are available: | |
| 88 | +```{.cpp} | |
| 89 | +light1.hasBrightnessControl(); | |
| 90 | +light1.hasTemperatureControl(); | |
| 91 | +light1.hasColorControl(); | |
| 92 | +``` | |
| 93 | +These will either return true(light has specified function) or false(light lacks specified function). | |
| 94 | + | |
| 95 | +## Build and install | |
| 96 | +### Basic installation | |
| 97 | +If you want to build the library you can use cmake (at least version 3.8). First create a build folder and then execute cmake. | |
| 98 | +```bash | |
| 99 | +mkdir build | |
| 100 | +cd build | |
| 101 | +cmake .. | |
| 102 | +``` | |
| 103 | +Then compile the code with make. If you are inpatient use the option -j\<number\>, where number specifies how many files are compiled at the same time. Note this number should not exceed the number of cores*2 of your machine. | |
| 104 | +```bash | |
| 105 | +make | |
| 106 | +``` | |
| 107 | +```bash | |
| 108 | +make -j4 | |
| 109 | +``` | |
| 110 | +If you want to install the library use | |
| 111 | +```bash | |
| 112 | +make install | |
| 113 | +``` | |
| 114 | +To remove it | |
| 115 | +```bash | |
| 116 | +make uninstall | |
| 117 | +``` | |
| 118 | + | |
| 119 | +### Advanced usage | |
| 120 | +If you have a project that already uses CMake you probably want to add the hueplusplus library directly in your cmake file. | |
| 121 | +For that the best way is to use find_package(). | |
| 122 | +When cmake finds the hueplusplus library you can then link against either the shared or static version of the library. | |
| 123 | +```cmake | |
| 124 | +find_package(hueplusplus REQUIRED) | |
| 125 | + | |
| 126 | +target_link_libraries(<executable> PUBLIC hueplusplusstatic) | |
| 127 | +``` | |
| 128 | +But this will only work if the hueplusplus library is already installed. | |
| 129 | +To get around this problem there is a pretty awesome way. | |
| 130 | +If you have the hueplusplus repository included in your project repository (as a submodule) or know where the folder lives you can do the following: | |
| 131 | +```cmake | |
| 132 | +find_package(hueplusplus QUIET) | |
| 133 | +if(NOT hueplusplus_FOUND) | |
| 134 | + message(STATUS "-- hueplusplus not found, building it") | |
| 135 | + add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/<path to directory>/hueplusplus" "${CMAKE_CURRENT_BINARY_DIR}/hueplusplus") | |
| 136 | +endif() | |
| 137 | + | |
| 138 | +target_link_libraries(<executable> PUBLIC hueplusplusstatic) | |
| 139 | +``` | |
| 140 | +This will check if the hueplusplus library was found by find_package() and if not it will use the specified path to the library source and compile it during the build process. | |
| 141 | + | |
| 142 | +### Running tests | |
| 143 | +If you additionally want to run the tests use cmake with the option -Dhueplusplus_TESTS=ON. Testing is done with Google gtest and gmock. Note that you wont need to install gtest/gmock yourself, because cmake will automatically download them and include them during the build. Since I added a custom target you will only need to call "make unittest" and the tests are compiled and executed. | |
| 144 | +```bash | |
| 145 | +mkdir build | |
| 146 | +cd build | |
| 147 | +cmake .. -Dhueplusplus_TESTS=ON | |
| 148 | +make unittest | |
| 149 | +``` | |
| 150 | +If you also want to execute coverage tests you will need to install gcov and lcov yourself. To run the coverage test use | |
| 151 | +```bash | |
| 152 | +make coveragetest | |
| 153 | +``` | ... | ... |