Changes in / [9fa0ed1:482641d]
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/web.cfg
r9fa0ed1 r482641d 1 # Doxyfile 1.8. 131 # Doxyfile 1.8.8 2 2 3 3 # This file describes the settings to be used by the documentation system … … 47 47 PROJECT_BRIEF = 48 48 49 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included50 # in the documentation. The maximum height of the logo should not exceed 5551 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy52 # t he logo to the output directory.49 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in 50 # the documentation. The maximum height of the logo should not exceed 55 pixels 51 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo 52 # to the output directory. 53 53 54 54 PROJECT_LOGO = … … 61 61 OUTPUT_DIRECTORY = web 62 62 63 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-63 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- 64 64 # directories (in 2 levels) under the output directory of each output format and 65 65 # will distribute the generated files over these directories. Enabling this … … 94 94 OUTPUT_LANGUAGE = English 95 95 96 # If the BRIEF_MEMBER_DESC tag is set to YES ,doxygen will include brief member96 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member 97 97 # descriptions after the members that are listed in the file and class 98 98 # documentation (similar to Javadoc). Set to NO to disable this. … … 101 101 BRIEF_MEMBER_DESC = YES 102 102 103 # If the REPEAT_BRIEF tag is set to YES ,doxygen will prepend the brief103 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief 104 104 # description of a member or function before the detailed description 105 105 # … … 136 136 INLINE_INHERITED_MEMB = NO 137 137 138 # If the FULL_PATH_NAMES tag is set to YES ,doxygen will prepend the full path138 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path 139 139 # before files name in the file list and in the header files. If set to NO the 140 140 # shortest path that makes the file name unique will be used … … 206 206 INHERIT_DOCS = YES 207 207 208 # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new209 # page for each member. If set to NO, the documentation of a member will be part210 # of the file/class/namespace that contains it.208 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a 209 # new page for each member. If set to NO, the documentation of a member will be 210 # part of the file/class/namespace that contains it. 211 211 # The default value is: NO. 212 212 … … 277 277 # and .f files as C (default is Fortran), use: inc=Fortran f=C. 278 278 # 279 # Note :For files without extension you can use no_extension as a placeholder.279 # Note For files without extension you can use no_extension as a placeholder. 280 280 # 281 281 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise … … 294 294 MARKDOWN_SUPPORT = YES 295 295 296 # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up297 # to that level are automatically included in the table of contents, even if298 # they do not have an id attribute.299 # Note: This feature currently applies only to Markdown headings.300 # Minimum value: 0, maximum value: 99, default value: 0.301 # This tag requires that the tag MARKDOWN_SUPPORT is set to YES.302 303 TOC_INCLUDE_HEADINGS = 0304 305 296 # When enabled doxygen tries to link words that correspond to documented 306 297 # classes, or namespaces to their corresponding documentation. Such a link can 307 # be prevented in individual cases by putting a % sign in front of the word or308 # globally by setting AUTOLINK_SUPPORT to NO.298 # be prevented in individual cases by by putting a % sign in front of the word 299 # or globally by setting AUTOLINK_SUPPORT to NO. 309 300 # The default value is: YES. 310 301 … … 346 337 347 338 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 348 # tag is set to YES then doxygen will reuse the documentation of the first339 # tag is set to YES, then doxygen will reuse the documentation of the first 349 340 # member in the group (if any) for the other members of the group. By default 350 341 # all members of a group must be documented explicitly. … … 352 343 353 344 DISTRIBUTE_GROUP_DOC = NO 354 355 # If one adds a struct or class to a group and this option is enabled, then also356 # any nested class or struct is added to the same group. By default this option357 # is disabled and one has to add nested compounds explicitly via \ingroup.358 # The default value is: NO.359 360 GROUP_NESTED_COMPOUNDS = NO361 345 362 346 # Set the SUBGROUPING tag to YES to allow class member groups of the same type … … 418 402 #--------------------------------------------------------------------------- 419 403 420 # If the EXTRACT_ALL tag is set to YES ,doxygen will assume all entities in404 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 421 405 # documentation are documented, even if no documentation was available. Private 422 406 # class members and static file members will be hidden unless the … … 428 412 EXTRACT_ALL = NO 429 413 430 # If the EXTRACT_PRIVATE tag is set to YES ,all private members of a class will414 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will 431 415 # be included in the documentation. 432 416 # The default value is: NO. … … 434 418 EXTRACT_PRIVATE = NO 435 419 436 # If the EXTRACT_PACKAGE tag is set to YES ,all members with package or internal420 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal 437 421 # scope will be included in the documentation. 438 422 # The default value is: NO. … … 440 424 EXTRACT_PACKAGE = NO 441 425 442 # If the EXTRACT_STATIC tag is set to YES ,all static members of a file will be426 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be 443 427 # included in the documentation. 444 428 # The default value is: NO. … … 446 430 EXTRACT_STATIC = NO 447 431 448 # If the EXTRACT_LOCAL_CLASSES tag is set to YES ,classes (and structs) defined449 # locally in source files will be included in the documentation. If set to NO ,432 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined 433 # locally in source files will be included in the documentation. If set to NO 450 434 # only classes defined in header files are included. Does not have any effect 451 435 # for Java sources. … … 454 438 EXTRACT_LOCAL_CLASSES = YES 455 439 456 # This flag is only useful for Objective-C code. If set to YES,local methods,440 # This flag is only useful for Objective-C code. When set to YES local methods, 457 441 # which are defined in the implementation section but not in the interface are 458 # included in the documentation. If set to NO ,only methods in the interface are442 # included in the documentation. If set to NO only methods in the interface are 459 443 # included. 460 444 # The default value is: NO. … … 481 465 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all 482 466 # undocumented classes that are normally visible in the class hierarchy. If set 483 # to NO , these classes will be included in the various overviews. This option484 # hasno effect if EXTRACT_ALL is enabled.467 # to NO these classes will be included in the various overviews. This option has 468 # no effect if EXTRACT_ALL is enabled. 485 469 # The default value is: NO. 486 470 … … 488 472 489 473 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend 490 # (class|struct|union) declarations. If set to NO ,these declarations will be474 # (class|struct|union) declarations. If set to NO these declarations will be 491 475 # included in the documentation. 492 476 # The default value is: NO. … … 495 479 496 480 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any 497 # documentation blocks found inside the body of a function. If set to NO ,these481 # documentation blocks found inside the body of a function. If set to NO these 498 482 # blocks will be appended to the function's detailed documentation block. 499 483 # The default value is: NO. … … 509 493 510 494 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file 511 # names in lower-case letters. If set to YES ,upper-case letters are also495 # names in lower-case letters. If set to YES upper-case letters are also 512 496 # allowed. This is useful if you have classes or files whose names only differ 513 497 # in case and if your file system supports case sensitive file names. Windows … … 518 502 519 503 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with 520 # their full class and namespace scopes in the documentation. If set to YES ,the504 # their full class and namespace scopes in the documentation. If set to YES the 521 505 # scope will be hidden. 522 506 # The default value is: NO. 523 507 524 508 HIDE_SCOPE_NAMES = NO 525 526 # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will527 # append additional text to a page's title, such as Class Reference. If set to528 # YES the compound reference will be hidden.529 # The default value is: NO.530 531 HIDE_COMPOUND_REFERENCE= NO532 509 533 510 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of … … 558 535 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the 559 536 # (detailed) documentation of file and class members alphabetically by member 560 # name. If set to NO ,the members will appear in declaration order.537 # name. If set to NO the members will appear in declaration order. 561 538 # The default value is: YES. 562 539 … … 565 542 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief 566 543 # descriptions of file, namespace and class members alphabetically by member 567 # name. If set to NO ,the members will appear in declaration order. Note that544 # name. If set to NO the members will appear in declaration order. Note that 568 545 # this will also influence the order of the classes in the class list. 569 546 # The default value is: NO. … … 610 587 STRICT_PROTO_MATCHING = NO 611 588 612 # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo 613 # list. This list is created by putting \todo commands in the documentation. 589 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the 590 # todo list. This list is created by putting \todo commands in the 591 # documentation. 614 592 # The default value is: YES. 615 593 616 594 GENERATE_TODOLIST = YES 617 595 618 # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test 619 # list. This list is created by putting \test commands in the documentation. 596 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the 597 # test list. This list is created by putting \test commands in the 598 # documentation. 620 599 # The default value is: YES. 621 600 622 601 GENERATE_TESTLIST = YES 623 602 624 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable (NO) the bug603 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug 625 604 # list. This list is created by putting \bug commands in the documentation. 626 605 # The default value is: YES. … … 628 607 GENERATE_BUGLIST = YES 629 608 630 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable (NO)609 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) 631 610 # the deprecated list. This list is created by putting \deprecated commands in 632 611 # the documentation. … … 653 632 654 633 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at 655 # the bottom of the documentation of classes and structs. If set to YES , the656 # listwill mention the files that were used to generate the documentation.634 # the bottom of the documentation of classes and structs. If set to YES the list 635 # will mention the files that were used to generate the documentation. 657 636 # The default value is: YES. 658 637 … … 718 697 719 698 # The WARNINGS tag can be used to turn on/off the warning messages that are 720 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES699 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES 721 700 # this implies that the warnings are on. 722 701 # … … 726 705 WARNINGS = YES 727 706 728 # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate707 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate 729 708 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag 730 709 # will automatically be disabled. … … 743 722 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that 744 723 # are documented, but have no documentation for their parameters or return 745 # value. If set to NO , doxygen will only warn about wrong or incomplete746 # parameterdocumentation, but not about the absence of documentation.724 # value. If set to NO doxygen will only warn about wrong or incomplete parameter 725 # documentation, but not about the absence of documentation. 747 726 # The default value is: NO. 748 727 749 728 WARN_NO_PARAMDOC = NO 750 751 # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when752 # a warning is encountered.753 # The default value is: NO.754 755 WARN_AS_ERROR = NO756 729 757 730 # The WARN_FORMAT tag determines the format of the warning messages that doxygen … … 778 751 # documented source files. You may enter file names like myfile.cpp or 779 752 # directories like /usr/src/myproject. Separate the files or directories with 780 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING753 # spaces. 781 754 # Note: If this tag is empty the current directory is searched. 782 755 … … 794 767 # If the value of the INPUT tag contains directories, you can use the 795 768 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and 796 # *.h) to filter out the source-files in the directories. 797 # 798 # Note that for custom extensions or not directly supported extensions you also 799 # need to set EXTENSION_MAPPING for the extension otherwise the files are not 800 # read by doxygen. 801 # 802 # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, 803 # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, 804 # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, 805 # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, 806 # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. 769 # *.h) to filter out the source-files in the directories. If left blank the 770 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, 771 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, 772 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, 773 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, 774 # *.qsf, *.as and *.js. 807 775 808 776 FILE_PATTERNS = *.h … … 913 881 # code is scanned, but not when the output code is generated. If lines are added 914 882 # or removed, the anchors will not be placed correctly. 915 #916 # Note that for custom extensions or not directly supported extensions you also917 # need to set EXTENSION_MAPPING for the extension otherwise the files are not918 # properly processed by doxygen.919 883 920 884 INPUT_FILTER = … … 926 890 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the 927 891 # patterns match the file name, INPUT_FILTER is applied. 928 #929 # Note that for custom extensions or not directly supported extensions you also930 # need to set EXTENSION_MAPPING for the extension otherwise the files are not931 # properly processed by doxygen.932 892 933 893 FILTER_PATTERNS = 934 894 935 895 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 936 # INPUT_FILTER ) will also be used to filter the input files that are used for896 # INPUT_FILTER ) will also be used to filter the input files that are used for 937 897 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). 938 898 # The default value is: NO. … … 994 954 995 955 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set 996 # to YES then the hyperlinks from functions in REFERENCES_RELATION and956 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and 997 957 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will 998 958 # link to the documentation. … … 1041 1001 VERBATIM_HEADERS = YES 1042 1002 1043 # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the1003 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the 1044 1004 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the 1045 1005 # cost of reduced performance. This can be particularly helpful with template … … 1047 1007 # information. 1048 1008 # Note: The availability of this option depends on whether or not doxygen was 1049 # generated with the -Duse-libclang=ON option for CMake.1009 # compiled with the --with-libclang option. 1050 1010 # The default value is: NO. 1051 1011 … … 1090 1050 #--------------------------------------------------------------------------- 1091 1051 1092 # If the GENERATE_HTML tag is set to YES ,doxygen will generate HTML output1052 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output 1093 1053 # The default value is: YES. 1094 1054 … … 1156 1116 # created by doxygen. Using this option one can overrule certain style aspects. 1157 1117 # This is preferred over using HTML_STYLESHEET since it does not replace the 1158 # standard style sheet and is therefor emore robust against future updates.1118 # standard style sheet and is therefor more robust against future updates. 1159 1119 # Doxygen will copy the style sheet files to the output directory. 1160 # Note: The order of the extra style 1161 # style 1120 # Note: The order of the extra stylesheet files is of importance (e.g. the last 1121 # stylesheet in the list overrules the setting of the previous ones in the 1162 1122 # list). For an example see the documentation. 1163 1123 # This tag requires that the tag GENERATE_HTML is set to YES. … … 1176 1136 1177 1137 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen 1178 # will adjust the colors in the style 1138 # will adjust the colors in the stylesheet and background images according to 1179 1139 # this color. Hue is specified as an angle on a colorwheel, see 1180 1140 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value … … 1207 1167 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 1208 1168 # page will contain the date and time when the page was generated. Setting this 1209 # to YES can help to show when doxygen was last run and thus if the 1210 # documentation is up to date. 1211 # The default value is: NO. 1169 # to NO can help when comparing the output of multiple runs. 1170 # The default value is: YES. 1212 1171 # This tag requires that the tag GENERATE_HTML is set to YES. 1213 1172 … … 1305 1264 1306 1265 # The HHC_LOCATION tag can be used to specify the location (absolute path 1307 # including file name) of the HTML help compiler ( hhc.exe). If non-empty,1266 # including file name) of the HTML help compiler ( hhc.exe). If non-empty 1308 1267 # doxygen will try to run the HTML help compiler on the generated index.hhp. 1309 1268 # The file has to be specified with full path. … … 1312 1271 HHC_LOCATION = 1313 1272 1314 # The GENERATE_CHI flag controls if a separate .chi index file is generated 1315 # (YES) or that it should be included in the master .chm file (NO).1273 # The GENERATE_CHI flag controls if a separate .chi index file is generated ( 1274 # YES) or that it should be included in the master .chm file ( NO). 1316 1275 # The default value is: NO. 1317 1276 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. … … 1319 1278 GENERATE_CHI = NO 1320 1279 1321 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content (hhc)1280 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) 1322 1281 # and project file content. 1323 1282 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. … … 1325 1284 CHM_INDEX_ENCODING = 1326 1285 1327 # The BINARY_TOC flag controls whether a binary table of contents is generated 1328 # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it1286 # The BINARY_TOC flag controls whether a binary table of contents is generated ( 1287 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it 1329 1288 # enables the Previous and Next buttons. 1330 1289 # The default value is: NO. … … 1440 1399 # to work a browser that supports JavaScript, DHTML, CSS and frames is required 1441 1400 # (i.e. any modern browser). Windows users are probably better off using the 1442 # HTML help feature. Via custom style 1401 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can 1443 1402 # further fine-tune the look of the index. As an example, the default style 1444 1403 # sheet generated by doxygen has an example that shows how to put an image at … … 1468 1427 TREEVIEW_WIDTH = 250 1469 1428 1470 # If the EXT_LINKS_IN_WINDOW option is set to YES,doxygen will open links to1429 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to 1471 1430 # external symbols imported via tag files in a separate window. 1472 1431 # The default value is: NO. … … 1497 1456 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see 1498 1457 # http://www.mathjax.org) which uses client side Javascript for the rendering 1499 # instead of using pre -rendered bitmaps. Use this if you do not have LaTeX1458 # instead of using prerendered bitmaps. Use this if you do not have LaTeX 1500 1459 # installed or if you want to formulas look prettier in the HTML output. When 1501 1460 # enabled you may also need to install MathJax separately and configure the path … … 1583 1542 # search results. 1584 1543 # 1585 # Doxygen ships with an example indexer ( doxyindexer) and search engine1544 # Doxygen ships with an example indexer ( doxyindexer) and search engine 1586 1545 # (doxysearch.cgi) which are based on the open source search engine library 1587 1546 # Xapian (see: http://xapian.org/). … … 1596 1555 # which will return the search results when EXTERNAL_SEARCH is enabled. 1597 1556 # 1598 # Doxygen ships with an example indexer ( doxyindexer) and search engine1557 # Doxygen ships with an example indexer ( doxyindexer) and search engine 1599 1558 # (doxysearch.cgi) which are based on the open source search engine library 1600 1559 # Xapian (see: http://xapian.org/). See the section "External Indexing and … … 1634 1593 #--------------------------------------------------------------------------- 1635 1594 1636 # If the GENERATE_LATEX tag is set to YES ,doxygen will generate LaTeX output.1595 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. 1637 1596 # The default value is: YES. 1638 1597 … … 1665 1624 MAKEINDEX_CMD_NAME = makeindex 1666 1625 1667 # If the COMPACT_LATEX tag is set to YES ,doxygen generates more compact LaTeX1626 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX 1668 1627 # documents. This may be useful for small projects and may help to save some 1669 1628 # trees in general. … … 1683 1642 1684 1643 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names 1685 # that should be included in the LaTeX output. The package can be specified just 1686 # by its name or with the correct syntax as to be used with the LaTeX 1687 # \usepackage command. To get the times font for instance you can specify : 1688 # EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} 1689 # To use the option intlimits with the amsmath package you can specify: 1690 # EXTRA_PACKAGES=[intlimits]{amsmath} 1644 # that should be included in the LaTeX output. To get the times font for 1645 # instance you can specify 1646 # EXTRA_PACKAGES=times 1691 1647 # If left blank no extra packages will be included. 1692 1648 # This tag requires that the tag GENERATE_LATEX is set to YES. … … 1703 1659 # following commands have a special meaning inside the header: $title, 1704 1660 # $datetime, $date, $doxygenversion, $projectname, $projectnumber, 1705 # $projectbrief, $projectlogo. Doxygen will replace $title with the emp ty1706 # string, for the replacement values of the other commands the user is referred1707 # toHTML_HEADER.1661 # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, 1662 # for the replacement values of the other commands the user is refered to 1663 # HTML_HEADER. 1708 1664 # This tag requires that the tag GENERATE_LATEX is set to YES. 1709 1665 … … 1721 1677 LATEX_FOOTER = 1722 1678 1723 # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined1724 # LaTeX style sheets that are included after the standard style sheets created1725 # by doxygen. Using this option one can overrule certain style aspects. Doxygen1726 # will copy the style sheet files to the output directory.1727 # Note: The order of the extra style sheet files is of importance (e.g. the last1728 # style sheet in the list overrules the setting of the previous ones in the1729 # list).1730 # This tag requires that the tag GENERATE_LATEX is set to YES.1731 1732 LATEX_EXTRA_STYLESHEET =1733 1734 1679 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or 1735 1680 # other source files which should be copied to the LATEX_OUTPUT output … … 1750 1695 1751 1696 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate 1752 # the PDF file directly from the LaTeX files. Set this option to YES ,to get a1697 # the PDF file directly from the LaTeX files. Set this option to YES to get a 1753 1698 # higher quality PDF documentation. 1754 1699 # The default value is: YES. … … 1791 1736 LATEX_BIB_STYLE = plain 1792 1737 1793 # If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated1794 # page will contain the date and time when the page was generated. Setting this1795 # to NO can help when comparing the output of multiple runs.1796 # The default value is: NO.1797 # This tag requires that the tag GENERATE_LATEX is set to YES.1798 1799 LATEX_TIMESTAMP = NO1800 1801 1738 #--------------------------------------------------------------------------- 1802 1739 # Configuration options related to the RTF output 1803 1740 #--------------------------------------------------------------------------- 1804 1741 1805 # If the GENERATE_RTF tag is set to YES ,doxygen will generate RTF output. The1742 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The 1806 1743 # RTF output is optimized for Word 97 and may not look too pretty with other RTF 1807 1744 # readers/editors. … … 1818 1755 RTF_OUTPUT = rtf 1819 1756 1820 # If the COMPACT_RTF tag is set to YES ,doxygen generates more compact RTF1757 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF 1821 1758 # documents. This may be useful for small projects and may help to save some 1822 1759 # trees in general. … … 1855 1792 RTF_EXTENSIONS_FILE = 1856 1793 1857 # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code1858 # with syntax highlighting in the RTF output.1859 #1860 # Note that which sources are shown also depends on other settings such as1861 # SOURCE_BROWSER.1862 # The default value is: NO.1863 # This tag requires that the tag GENERATE_RTF is set to YES.1864 1865 RTF_SOURCE_CODE = NO1866 1867 1794 #--------------------------------------------------------------------------- 1868 1795 # Configuration options related to the man page output 1869 1796 #--------------------------------------------------------------------------- 1870 1797 1871 # If the GENERATE_MAN tag is set to YES ,doxygen will generate man pages for1798 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for 1872 1799 # classes and files. 1873 1800 # The default value is: NO. … … 1913 1840 #--------------------------------------------------------------------------- 1914 1841 1915 # If the GENERATE_XML tag is set to YES ,doxygen will generate an XML file that1842 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that 1916 1843 # captures the structure of the code including all documentation. 1917 1844 # The default value is: NO. … … 1927 1854 XML_OUTPUT = xml 1928 1855 1929 # If the XML_PROGRAMLISTING tag is set to YES ,doxygen will dump the program1856 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program 1930 1857 # listings (including syntax highlighting and cross-referencing information) to 1931 1858 # the XML output. Note that enabling this will significantly increase the size … … 1940 1867 #--------------------------------------------------------------------------- 1941 1868 1942 # If the GENERATE_DOCBOOK tag is set to YES ,doxygen will generate Docbook files1869 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files 1943 1870 # that can be used to generate PDF. 1944 1871 # The default value is: NO. … … 1954 1881 DOCBOOK_OUTPUT = docbook 1955 1882 1956 # If the DOCBOOK_PROGRAMLISTING tag is set to YES ,doxygen will include the1883 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the 1957 1884 # program listings (including syntax highlighting and cross-referencing 1958 1885 # information) to the DOCBOOK output. Note that enabling this will significantly … … 1967 1894 #--------------------------------------------------------------------------- 1968 1895 1969 # If the GENERATE_AUTOGEN_DEF tag is set to YES , doxygen will generate an1970 # AutoGen Definitions (see http://autogen.sf.net) file that captures the1971 # structure of the code including all documentation. Note that this feature is1972 # stillexperimental and incomplete at the moment.1896 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen 1897 # Definitions (see http://autogen.sf.net) file that captures the structure of 1898 # the code including all documentation. Note that this feature is still 1899 # experimental and incomplete at the moment. 1973 1900 # The default value is: NO. 1974 1901 … … 1979 1906 #--------------------------------------------------------------------------- 1980 1907 1981 # If the GENERATE_PERLMOD tag is set to YES ,doxygen will generate a Perl module1908 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module 1982 1909 # file that captures the structure of the code including all documentation. 1983 1910 # … … 1987 1914 GENERATE_PERLMOD = NO 1988 1915 1989 # If the PERLMOD_LATEX tag is set to YES ,doxygen will generate the necessary1916 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary 1990 1917 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI 1991 1918 # output from the Perl module output. … … 1995 1922 PERLMOD_LATEX = NO 1996 1923 1997 # If the PERLMOD_PRETTY tag is set to YES ,the Perl module output will be nicely1924 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely 1998 1925 # formatted so it can be parsed by a human reader. This is useful if you want to 1999 # understand what is going on. On the other hand, if this tag is set to NO ,the1926 # understand what is going on. On the other hand, if this tag is set to NO the 2000 1927 # size of the Perl module output will be much smaller and Perl will parse it 2001 1928 # just the same. … … 2017 1944 #--------------------------------------------------------------------------- 2018 1945 2019 # If the ENABLE_PREPROCESSING tag is set to YES ,doxygen will evaluate all1946 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all 2020 1947 # C-preprocessor directives found in the sources and include files. 2021 1948 # The default value is: YES. … … 2023 1950 ENABLE_PREPROCESSING = YES 2024 1951 2025 # If the MACRO_EXPANSION tag is set to YES ,doxygen will expand all macro names2026 # in the source code. If set to NO ,only conditional compilation will be1952 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names 1953 # in the source code. If set to NO only conditional compilation will be 2027 1954 # performed. Macro expansion can be done in a controlled way by setting 2028 1955 # EXPAND_ONLY_PREDEF to YES. … … 2040 1967 EXPAND_ONLY_PREDEF = NO 2041 1968 2042 # If the SEARCH_INCLUDES tag is set to YES , the includefiles in the1969 # If the SEARCH_INCLUDES tag is set to YES the includes files in the 2043 1970 # INCLUDE_PATH will be searched if a #include is found. 2044 1971 # The default value is: YES. … … 2116 2043 GENERATE_TAGFILE = 2117 2044 2118 # If the ALLEXTERNALS tag is set to YES, all external class will be listed in 2119 # the class index. If set to NO, only the inherited external classes will be 2045 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the 2046 # class index. If set to NO only the inherited external classes will be listed. 2047 # The default value is: NO. 2048 2049 ALLEXTERNALS = NO 2050 2051 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in 2052 # the modules index. If set to NO, only the current project's groups will be 2120 2053 # listed. 2121 # The default value is: NO.2122 2123 ALLEXTERNALS = NO2124 2125 # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed2126 # in the modules index. If set to NO, only the current project's groups will be2127 # listed.2128 2054 # The default value is: YES. 2129 2055 2130 2056 EXTERNAL_GROUPS = YES 2131 2057 2132 # If the EXTERNAL_PAGES tag is set to YES ,all external pages will be listed in2058 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in 2133 2059 # the related pages index. If set to NO, only the current project's pages will 2134 2060 # be listed. … … 2147 2073 #--------------------------------------------------------------------------- 2148 2074 2149 # If the CLASS_DIAGRAMS tag is set to YES ,doxygen will generate a class diagram2075 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram 2150 2076 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to 2151 2077 # NO turns the diagrams off. Note that this option also works with HAVE_DOT … … 2172 2098 DIA_PATH = 2173 2099 2174 # If set to YES the inheritance and collaboration graphs will hide inheritance2100 # If set to YES, the inheritance and collaboration graphs will hide inheritance 2175 2101 # and usage relations if the target is undocumented or is not a class. 2176 2102 # The default value is: YES. … … 2245 2171 GROUP_GRAPHS = YES 2246 2172 2247 # If the UML_LOOK tag is set to YES ,doxygen will generate inheritance and2173 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and 2248 2174 # collaboration diagrams in a style similar to the OMG's Unified Modeling 2249 2175 # Language. … … 2297 2223 # Note that enabling this option will significantly increase the time of a run. 2298 2224 # So in most cases it will be better to enable call graphs for selected 2299 # functions only using the \callgraph command. Disabling a call graph can be 2300 # accomplished by means of the command \hidecallgraph. 2225 # functions only using the \callgraph command. 2301 2226 # The default value is: NO. 2302 2227 # This tag requires that the tag HAVE_DOT is set to YES. … … 2309 2234 # Note that enabling this option will significantly increase the time of a run. 2310 2235 # So in most cases it will be better to enable caller graphs for selected 2311 # functions only using the \callergraph command. Disabling a caller graph can be 2312 # accomplished by means of the command \hidecallergraph. 2236 # functions only using the \callergraph command. 2313 2237 # The default value is: NO. 2314 2238 # This tag requires that the tag HAVE_DOT is set to YES. … … 2333 2257 2334 2258 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 2335 # generated by dot. For an explanation of the image formats see the section 2336 # output formats in the documentation of the dot tool (Graphviz (see: 2337 # http://www.graphviz.org/)). 2259 # generated by dot. 2338 2260 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order 2339 2261 # to make the SVG files visible in IE 9+ (other browsers do not have this … … 2341 2263 # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, 2342 2264 # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, 2343 # gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, 2344 # png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and 2345 # png:gdiplus:gdiplus. 2265 # gif:cairo:gd, gif:gd, gif:gd:gd and svg. 2346 2266 # The default value is: png. 2347 2267 # This tag requires that the tag HAVE_DOT is set to YES. … … 2391 2311 # generate a warning when it encounters a \startuml command in this case and 2392 2312 # will not generate output for the diagram. 2313 # This tag requires that the tag HAVE_DOT is set to YES. 2393 2314 2394 2315 PLANTUML_JAR_PATH = 2395 2396 # When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a2397 # configuration file for plantuml.2398 2399 PLANTUML_CFG_FILE =2400 2401 # When using plantuml, the specified paths are searched for files specified by2402 # the !include statement in a plantuml block.2403 2404 PLANTUML_INCLUDE_PATH =2405 2316 2406 2317 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes … … 2440 2351 DOT_TRANSPARENT = NO 2441 2352 2442 # Set the DOT_MULTI_TARGETS tag to YES toallow dot to generate multiple output2353 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 2443 2354 # files in one run (i.e. multiple -o and -T options on the command line). This 2444 2355 # makes dot run faster, but since only newer versions of dot (>1.8.10) support … … 2457 2368 GENERATE_LEGEND = YES 2458 2369 2459 # If the DOT_CLEANUP tag is set to YES ,doxygen will remove the intermediate dot2370 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot 2460 2371 # files that are used to generate the various graphs. 2461 2372 # The default value is: YES. -
python/lib/aubio/cmd.py
r9fa0ed1 r482641d 188 188 return samples2samples 189 189 else: 190 raise ValueError( "invalid time format '%s'"% mode)190 raise ValueError('invalid time format %s' % mode) 191 191 192 192 # definition of processing classes -
python/lib/gen_external.py
r9fa0ed1 r482641d 1 1 import distutils.ccompiler 2 import sys 3 import os 4 import subprocess 5 import glob 2 import sys, os, subprocess, glob 6 3 7 4 header = os.path.join('src', 'aubio.h') … … 12 9 """ 13 10 14 default_skip_objects = [ 15 # already in ext/ 16 'fft', 17 'pvoc', 18 'filter', 19 'filterbank', 20 # AUBIO_UNSTABLE 21 'hist', 22 'parameter', 23 'scale', 24 'beattracking', 25 'resampler', 26 'peakpicker', 27 'pitchfcomb', 28 'pitchmcomb', 29 'pitchschmitt', 30 'pitchspecacf', 31 'pitchyin', 32 'pitchyinfft', 33 'pitchyinfast', 34 'sink', 35 'sink_apple_audio', 36 'sink_sndfile', 37 'sink_wavwrite', 38 #'mfcc', 39 'source', 40 'source_apple_audio', 41 'source_sndfile', 42 'source_avcodec', 43 'source_wavread', 44 #'sampler', 45 'audio_unit', 46 'spectral_whitening', 47 ] 48 11 skip_objects = [ 12 # already in ext/ 13 'fft', 14 'pvoc', 15 'filter', 16 'filterbank', 17 # AUBIO_UNSTABLE 18 'hist', 19 'parameter', 20 'scale', 21 'beattracking', 22 'resampler', 23 'peakpicker', 24 'pitchfcomb', 25 'pitchmcomb', 26 'pitchschmitt', 27 'pitchspecacf', 28 'pitchyin', 29 'pitchyinfft', 30 'pitchyinfast', 31 'sink', 32 'sink_apple_audio', 33 'sink_sndfile', 34 'sink_wavwrite', 35 #'mfcc', 36 'source', 37 'source_apple_audio', 38 'source_sndfile', 39 'source_avcodec', 40 'source_wavread', 41 #'sampler', 42 'audio_unit', 43 'spectral_whitening', 44 ] 49 45 50 46 def get_preprocessor(): … … 65 61 66 62 cpp_cmd = None 67 if hasattr(compiler, 'preprocessor'): 63 if hasattr(compiler, 'preprocessor'): # for unixccompiler 68 64 cpp_cmd = compiler.preprocessor 69 elif hasattr(compiler, 'compiler'): 65 elif hasattr(compiler, 'compiler'): # for ccompiler 70 66 cpp_cmd = compiler.compiler.split() 71 67 cpp_cmd += ['-E'] 72 elif hasattr(compiler, 'cc'): 68 elif hasattr(compiler, 'cc'): # for msvccompiler 73 69 cpp_cmd = compiler.cc.split() 74 70 cpp_cmd += ['-E'] … … 78 74 cpp_cmd = os.environ.get('CC', 'cc').split() 79 75 cpp_cmd += ['-E'] 80 cpp_cmd += ['-x', 'c'] # force C language (emcc defaults to c++) 76 81 77 return cpp_cmd 82 78 83 84 def get_c_declarations(header=header, usedouble=False): 85 ''' return a dense and preprocessed string of all c declarations implied by aubio.h 86 ''' 79 def get_cpp_objects(header=header, usedouble=False): 87 80 cpp_cmd = get_preprocessor() 88 81 … … 100 93 print("Running command: {:s}".format(" ".join(cpp_cmd))) 101 94 proc = subprocess.Popen(cpp_cmd, 102 103 95 stderr=subprocess.PIPE, 96 stdout=subprocess.PIPE) 104 97 assert proc, 'Proc was none' 105 98 cpp_output = proc.stdout.read() … … 108 101 raise Exception("preprocessor output is empty:\n%s" % err_output) 109 102 elif err_output: 110 print ("Warning: preprocessor produced warnings:\n%s" % err_output)103 print ("Warning: preprocessor produced warnings:\n%s" % err_output) 111 104 if not isinstance(cpp_output, list): 112 105 cpp_output = [l.strip() for l in cpp_output.decode('utf8').split('\n')] … … 117 110 i = 1 118 111 while 1: 119 if i >= len(cpp_output): 120 break 121 if ('{' in cpp_output[i - 1]) and (not '}' in cpp_output[i - 1]) or (not ';' in cpp_output[i - 1]): 122 cpp_output[i] = cpp_output[i - 1] + ' ' + cpp_output[i] 123 cpp_output.pop(i - 1) 124 elif ('}' in cpp_output[i]): 125 cpp_output[i] = cpp_output[i - 1] + ' ' + cpp_output[i] 126 cpp_output.pop(i - 1) 112 if i >= len(cpp_output): break 113 if cpp_output[i-1].endswith(',') or cpp_output[i-1].endswith('{') or cpp_output[i].startswith('}'): 114 cpp_output[i] = cpp_output[i-1] + ' ' + cpp_output[i] 115 cpp_output.pop(i-1) 127 116 else: 128 117 i += 1 129 118 130 # clean pointer notations 131 tmp = [] 132 for l in cpp_output: 133 tmp += [l.replace(' *', ' * ')] 134 cpp_output = tmp 135 136 return cpp_output 137 138 139 def get_cpp_objects_from_c_declarations(c_declarations, skip_objects=None): 140 if skip_objects == None: 141 skip_objects = default_skip_objects 142 typedefs = filter(lambda y: y.startswith('typedef struct _aubio'), c_declarations) 119 typedefs = filter(lambda y: y.startswith ('typedef struct _aubio'), cpp_output) 120 143 121 cpp_objects = [a.split()[3][:-1] for a in typedefs] 144 cpp_objects_filtered = filter(lambda y: not y[6:-2] in skip_objects, cpp_objects) 145 return cpp_objects_filtered 146 147 148 def get_all_func_names_from_lib(lib, depth=0): 149 ''' return flat string of all function used in lib 150 ''' 151 res = [] 152 indent = " " * depth 153 for k, v in lib.items(): 154 if isinstance(v, dict): 155 res += get_all_func_names_from_lib(v, depth + 1) 156 elif isinstance(v, list): 157 for elem in v: 158 e = elem.split('(') 159 if len(e) < 2: 160 continue # not a function 161 fname_part = e[0].strip().split(' ') 162 fname = fname_part[-1] 163 if fname: 164 res += [fname] 165 else: 166 raise NameError('gen_lib : weird function: ' + str(e)) 167 168 return res 169 170 171 def generate_lib_from_c_declarations(cpp_objects, c_declarations): 172 ''' returns a lib from given cpp_object names 173 174 a lib is a dict grouping functions by family (onset,pitch...) 175 each eement is itself a dict of functions grouped by puposes as : 176 struct, new, del, do, get, set and other 177 ''' 122 123 return cpp_output, cpp_objects 124 125 126 def analyze_cpp_output(cpp_objects, cpp_output): 178 127 lib = {} 179 128 180 129 for o in cpp_objects: 181 shortname = o 182 if o[:6] == 'aubio_': 183 shortname = o[6:-2] # without aubio_ prefix and _t suffix 184 130 if o[:6] != 'aubio_': 131 continue 132 shortname = o[6:-2] 133 if shortname in skip_objects: 134 continue 185 135 lib[shortname] = {'struct': [], 'new': [], 'del': [], 'do': [], 'get': [], 'set': [], 'other': []} 186 136 lib[shortname]['longname'] = o 187 137 lib[shortname]['shortname'] = shortname 188 189 fullshortname = o[:-2] # name without _t suffix 190 191 for fn in c_declarations: 192 func_name = fn.split('(')[0].strip().split(' ')[-1] 193 if func_name.startswith(fullshortname + '_') or func_name.endswith(fullshortname): 194 # print "found", shortname, "in", fn 138 for fn in cpp_output: 139 if o[:-1] in fn: 140 #print "found", o[:-1], "in", fn 195 141 if 'typedef struct ' in fn: 196 142 lib[shortname]['struct'].append(fn) … … 206 152 lib[shortname]['set'].append(fn) 207 153 else: 208 # 154 #print "no idea what to do about", fn 209 155 lib[shortname]['other'].append(fn) 210 156 return lib 211 157 212 213 def print_c_declarations_results(lib, c_declarations): 214 for fn in c_declarations: 158 def print_cpp_output_results(lib, cpp_output): 159 for fn in cpp_output: 215 160 found = 0 216 161 for o in lib: … … 219 164 found = 1 220 165 if found == 0: 221 print ("missing", fn)166 print ("missing", fn) 222 167 223 168 for o in lib: 224 169 for family in lib[o]: 225 170 if type(lib[o][family]) == str: 226 print ("{:15s} {:10s} {:s}".format(o, family, lib[o][family]))171 print ( "{:15s} {:10s} {:s}".format(o, family, lib[o][family] ) ) 227 172 elif len(lib[o][family]) == 1: 228 print ("{:15s} {:10s} {:s}".format(o, family, lib[o][family][0]))173 print ( "{:15s} {:10s} {:s}".format(o, family, lib[o][family][0] ) ) 229 174 else: 230 print ("{:15s} {:10s} {:s}".format(o, family, lib[o][family]))175 print ( "{:15s} {:10s} {:s}".format(o, family, lib[o][family] ) ) 231 176 232 177 233 178 def generate_external(header=header, output_path=output_path, usedouble=False, overwrite=True): 234 if not os.path.isdir(output_path): 235 os.mkdir(output_path) 236 elif not overwrite: 237 return sorted(glob.glob(os.path.join(output_path, '*.c'))) 238 239 c_declarations = get_c_declarations(header, usedouble=usedouble) 240 cpp_objects = get_cpp_objects_from_c_declarations(c_declarations) 241 242 lib = generate_lib_from_c_declarations(cpp_objects, c_declarations) 243 # print_c_declarations_results(lib, c_declarations) 179 if not os.path.isdir(output_path): os.mkdir(output_path) 180 elif not overwrite: return sorted(glob.glob(os.path.join(output_path, '*.c'))) 181 182 cpp_output, cpp_objects = get_cpp_objects(header, usedouble=usedouble) 183 184 lib = analyze_cpp_output(cpp_objects, cpp_output) 185 # print_cpp_output_results(lib, cpp_output) 244 186 245 187 sources_list = [] … … 250 192 for o in lib: 251 193 out = source_header 252 mapped = MappedObject(lib[o], usedouble =usedouble)194 mapped = MappedObject(lib[o], usedouble = usedouble) 253 195 out += mapped.gen_code() 254 196 output_file = os.path.join(output_path, 'gen-%s.c' % o) 255 197 with open(output_file, 'w') as f: 256 198 f.write(out) 257 print ("wrote %s" % output_file)199 print ("wrote %s" % output_file ) 258 200 sources_list.append(output_file) 259 201 … … 267 209 return ({pycheck_types}); 268 210 }} 269 """.format(pycheck_types =check_types)211 """.format(pycheck_types = check_types) 270 212 271 213 add_types = "".join([""" 272 214 Py_INCREF (&Py_{name}Type); 273 PyModule_AddObject(m, "{name}", (PyObject *) & Py_{name}Type);""".format(name =o) for o in lib])215 PyModule_AddObject(m, "{name}", (PyObject *) & Py_{name}Type);""".format(name = o) for o in lib]) 274 216 out += """ 275 217 … … 278 220 {add_types} 279 221 }} 280 """.format(add_types =add_types)222 """.format(add_types = add_types) 281 223 282 224 output_file = os.path.join(output_path, 'aubio-generated.c') 283 225 with open(output_file, 'w') as f: 284 226 f.write(out) 285 print ("wrote %s" % output_file)227 print ("wrote %s" % output_file ) 286 228 sources_list.append(output_file) 287 229 … … 301 243 int generated_objects ( void ); 302 244 void add_generated_objects( PyObject *m ); 303 """.format(objlist =objlist)245 """.format(objlist = objlist) 304 246 305 247 output_file = os.path.join(output_path, 'aubio-generated.h') 306 248 with open(output_file, 'w') as f: 307 249 f.write(out) 308 print ("wrote %s" % output_file)250 print ("wrote %s" % output_file ) 309 251 # no need to add header to list of sources 310 252 … … 312 254 313 255 if __name__ == '__main__': 314 if len(sys.argv) > 1: 315 header = sys.argv[1] 316 if len(sys.argv) > 2: 317 output_path = sys.argv[2] 256 if len(sys.argv) > 1: header = sys.argv[1] 257 if len(sys.argv) > 2: output_path = sys.argv[2] 318 258 generate_external(header, output_path) -
scripts/get_waf.sh
r9fa0ed1 r482641d 4 4 set -x 5 5 6 WAFURL=https://waf.io/waf-1.9. 126 WAFURL=https://waf.io/waf-1.9.6 7 7 8 8 ( which wget > /dev/null && wget -qO waf $WAFURL ) || ( which curl > /dev/null && curl $WAFURL > waf ) -
scripts/setenv_local.sh
r9fa0ed1 r482641d 1 1 #! /usr/bin/env bash 2 2 3 # This script sets the LD_LIBRARY_PATH environment variable to ./build/src to 4 # execute aubio binaries without installing libaubio. 5 # 6 # Usage: $ source scripts/setenv_local.sh 7 # 8 # Note: on macOs, the variable is DYLD_LIBRARY_PATH 3 # This script sets the environment to execute aubio binaries and python code 4 # directly from build/ python/build/ without installing libaubio on the system 5 6 # Usage: $ source ./scripts/setenv_local.sh 7 8 # WARNING: this script will *overwrite* existing (DY)LD_LIBRARY_PATH and 9 # PYTHONPATH variables. 10 11 PYTHON_PLATFORM=`python -c "import pkg_resources, sys; print ('%s-%s' % (pkg_resources.get_build_platform(), '.'.join(map(str, sys.version_info[0:2]))))"` 9 12 10 13 AUBIODIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )" 14 AUBIOLIB=$AUBIODIR/build/src 15 AUBIOPYTHON=$AUBIODIR/build/lib.$PYTHON_PLATFORM 11 16 12 AUBIOLIB=$AUBIODIR/build/src 17 if [ "$(dirname $PWD)" == "scripts" ]; then 18 AUBIODIR=$(basename $PWD) 19 else 20 AUBIODIR=$(basename $PWD) 21 fi 13 22 14 23 if [ "$(uname)" == "Darwin" ]; then … … 19 28 echo export LD_LIBRARY_PATH=$LD_LIBRARY_PATH 20 29 fi 30 31 export PYTHONPATH=$AUBIOPYTHON 32 echo export PYTHONPATH=$PYTHONPATH -
src/wscript_build
r9fa0ed1 r482641d 27 27 build_features = ['cstlib', 'cshlib'] 28 28 elif ctx.env['DEST_OS'] in ['emscripten']: 29 build_features = ['cstlib' ,'cshlib']29 build_features = ['cstlib'] 30 30 elif '--static' in ctx.env['LDFLAGS'] or '--static' in ctx.env['LINKFLAGS']: 31 31 # static in cflags, ... -
wscript
r9fa0ed1 r482641d 108 108 ctx.load('gnu_dirs') 109 109 110 target_platform = sys.platform111 if ctx.options.target_platform:112 target_platform = ctx.options.target_platform113 114 115 if target_platform=='emscripten':116 # need to force spaces between flag -o and path117 # inspired from :118 # https://github.com/waf-project/waf/blob/master/waflib/extras/c_emscripten.py (#1885)119 # (OSX /emscripten 1.37.9)120 ctx.env.CC_TGT_F = ['-c', '-o', '']121 ctx.env.CCLNK_TGT_F = ['-o', '']122 110 # check for common headers 123 111 ctx.check(header_name='stdlib.h') … … 130 118 ctx.check(header_name='unistd.h', mandatory = False) 131 119 120 target_platform = sys.platform 121 if ctx.options.target_platform: 122 target_platform = ctx.options.target_platform 132 123 ctx.env['DEST_OS'] = target_platform 133 124 … … 142 133 ctx.env.prepend_value('CFLAGS', ['-O0']) 143 134 else: 144 if target_platform == 'emscripten': 145 # -Oz for small js file generation 146 ctx.env.prepend_value('CFLAGS', ['-Oz']) 147 else: 148 # default to -O2 in release mode 149 ctx.env.prepend_value('CFLAGS', ['-O2']) 135 # default to -O2 in release mode 136 ctx.env.prepend_value('CFLAGS', ['-O2']) 150 137 # enable debug symbols and configure warnings 151 138 ctx.env.prepend_value('CFLAGS', ['-g', '-Wall', '-Wextra']) … … 229 216 import os.path 230 217 ctx.env.CFLAGS += [ '-I' + os.path.join(os.environ['EMSCRIPTEN'], 'system', 'include') ] 231 232 if ctx.options.build_type == "debug": 233 ctx.env.cshlib_PATTERN = '%s.js' 234 ctx.env.LINKFLAGS += ['-s','ASSERTIONS=2'] 235 ctx.env.LINKFLAGS += ['-s','SAFE_HEAP=1'] 236 ctx.env.LINKFLAGS += ['-s','ALIASING_FUNCTION_POINTERS=0'] 237 ctx.env.LINKFLAGS += ['-O0'] 238 else: 239 ctx.env.LINKFLAGS += ['-Oz'] 240 ctx.env.cshlib_PATTERN = '%s.min.js' 241 242 # doesnt ship file system support in lib 243 ctx.env.LINKFLAGS_cshlib += ['-s', 'NO_FILESYSTEM=1'] 244 # put memory file inside generated js files for easier portability 245 ctx.env.LINKFLAGS += ['--memory-init-file', '0'] 218 ctx.env.CFLAGS += ['-Oz'] 246 219 ctx.env.cprogram_PATTERN = "%s.js" 247 ctx.env.cstlib_PATTERN = '%s.a' 248 249 # tell emscripten functions we want to expose 250 from python.lib.gen_external import get_c_declarations, get_cpp_objects_from_c_declarations, get_all_func_names_from_lib, generate_lib_from_c_declarations 251 c_decls = get_c_declarations(usedouble=False) # emscripten can't use double 252 objects = get_cpp_objects_from_c_declarations(c_decls) 253 # ensure that aubio structs are exported 254 objects += ['fvec_t', 'cvec_t', 'fmat_t'] 255 lib = generate_lib_from_c_declarations(objects, c_decls) 256 exported_funcnames = get_all_func_names_from_lib(lib) 257 c_mangled_names = ['_' + s for s in exported_funcnames] 258 ctx.env.LINKFLAGS_cshlib += ['-s', 'EXPORTED_FUNCTIONS=%s' % c_mangled_names] 259 260 if (ctx.options.enable_atlas != True): 261 ctx.options.enable_atlas = False 220 if (ctx.options.enable_atlas != True): 221 ctx.options.enable_atlas = False 262 222 263 223 # check support for C99 __VA_ARGS__ macros
Note: See TracChangeset
for help on using the changeset viewer.