update name

This commit is contained in:
呱呱呱 2025-06-12 21:08:26 +08:00
parent 7c502b360e
commit ada2b6fa1b
504 changed files with 10713 additions and 10874 deletions

View File

@ -1,3 +1,3 @@
EXCLUDE = addon cmake doc examples jquery templates testing deps/iconv_winbuild src/logos.cpp src/lodepng.cpp
FILE_PATTERNS = *.h *.cpp *.md
USE_MDFILE_AS_MAINPAGE = src/doxygen.md
USE_MDFILE_AS_MAINPAGE = src/analyze.md

View File

@ -7,12 +7,12 @@
*.orig
*.pro
/packages/rpm/doxygen.spec
/packages/rpm/analyze.spec
*.idb
*.pdb
/doxygen_docs
/doxygen.tag
/analyze_docs
/analyze.tag
/build*
/qtools_docs
/warnings.log

2
.github/FUNDING.yml vendored
View File

@ -1,6 +1,6 @@
# These are supported funding model platforms
github: doxygen
github: analyze
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username

View File

@ -1,6 +1,6 @@
---
name: Report a bug or issue
about: Create a report to help us improve doxygen
about: Create a report to help us improve analyze
title: ''
labels: ''
assignees: ''
@ -15,16 +15,16 @@ If useful, add screenshots to help explain your problem.
**To Reproduce**
Attach a self contained example that allows us to reproduce the problem.
Such an example typically exist of some source code (can be dummy code) and a doxygen configuration file used (you can strip it using `doxygen -s -u`). After you verified the example demonstrates the problem, put it in a zip (or tarball) and attach it to the bug report. Try to avoid linking to external sources, since they might disappear in the future.
Such an example typically exist of some source code (can be dummy code) and a analyze configuration file used (you can strip it using `analyze -s -u`). After you verified the example demonstrates the problem, put it in a zip (or tarball) and attach it to the bug report. Try to avoid linking to external sources, since they might disappear in the future.
**Expected behavior**
Describe what you would have expected or think is correct.
**Version**
Mention the version of doxygen used (output of `doxygen --version`) and the platform on which you run doxygen (e.g. Windows 10, 64 bit). If you run doxygen under Linux please also mention the name and version of the distribution used (output of `lsb_release -a`) and mention if you compiled doxygen yourself or that you use a binary that comes with the distribution or from the doxygen website.
Mention the version of analyze used (output of `analyze --version`) and the platform on which you run analyze (e.g. Windows 10, 64 bit). If you run analyze under Linux please also mention the name and version of the distribution used (output of `lsb_release -a`) and mention if you compiled analyze yourself or that you use a binary that comes with the distribution or from the analyze website.
**Stack trace**
If you encounter a crash and can build doxygen from sources yourself with debug info (`-DCMAKE_BUILD_TYPE=Debug`), a stack trace can be very helpful (especially if it is not possible to capture the problem in a small example that can be shared).
If you encounter a crash and can build analyze from sources yourself with debug info (`-DCMAKE_BUILD_TYPE=Debug`), a stack trace can be very helpful (especially if it is not possible to capture the problem in a small example that can be shared).
**Additional context**
Add any other context about the problem here.

View File

@ -1,4 +1,4 @@
name: CMake Build for Doxygen
name: CMake Build for analyze
on: [push, pull_request]
@ -107,7 +107,7 @@ jobs:
build_gen: "NMake Makefiles"
}
steps:
- name: Checkout doxygen
- name: Checkout analyze
uses: actions/checkout@v4
with:
fetch-depth: 0
@ -436,7 +436,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: "Latex documentation artifacts"
path: build/latex/doxygen_manual.pdf
path: build/latex/analyze_manual.pdf
if: matrix.config.name == 'Ubuntu Latest GCC Release (Intel)'
- name: Generate Internal documentation
@ -455,8 +455,8 @@ jobs:
uses: peaceiris/actions-gh-pages@v4
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
external_repository: doxygen/doxygen-docs
publish_dir: build/doxygen_docs/html
external_repository: analyze/analyze-docs
publish_dir: build/analyze_docs/html
force_orphan: true
if: ${{ github.event_name == 'push' && matrix.config.name == 'Ubuntu Latest GCC Release (Intel)' }}

View File

@ -1,4 +1,4 @@
name: Coverity for doxygen
name: Coverity for analyze
# Just for tests
#on: [push, pull_request]
@ -39,12 +39,12 @@ jobs:
DEBIAN_FRONTEND: noninteractive
steps:
- name: Checkout doxygen
- name: Checkout analyze
uses: actions/checkout@v4
- name: Download Coverity
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=doxygen%2Fdoxygen" -O coverity_tool.tgz
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=analyze%2Fanalyze" -O coverity_tool.tgz
mkdir cov-scan
tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan
env:
@ -55,7 +55,7 @@ jobs:
echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
echo "NPROC=$(getconf _NPROCESSORS_ONLN)" >> $GITHUB_ENV
- name: Configure doxygen
- name: Configure analyze
run: |
mkdir build
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -G "Unix Makefiles"
@ -73,7 +73,7 @@ jobs:
--form file=@cov-scan.tgz \
--form version="$(git rev-parse HEAD)" \
--form description="Automatic GHA scan" \
'https://scan.coverity.com/builds?project=doxygen%2Fdoxygen'
'https://scan.coverity.com/builds?project=analyze%2Fanalyze'
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}

6
.gitignore vendored
View File

@ -7,12 +7,12 @@
*.orig
*.pro
/packages/rpm/doxygen.spec
/packages/rpm/analyze.spec
*.idb
*.pdb
/doxygen_docs
/doxygen.tag
/analyze_docs
/analyze.tag
/build*
/qtools_docs
/warnings.log

View File

@ -8,18 +8,18 @@
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# Documents produced by analyze are derivative works derived from the
# input used in their production; they are not affected by this license.
cmake_minimum_required(VERSION 3.14)
project(doxygen)
project(analyze)
option("ENABLE_CLANG_TIDY" "Enable static analysis with clang-tidy" OFF)
option(build_wizard "Build the GUI frontend for doxygen." OFF)
option(build_app "Example showing how to embed doxygen in an application." OFF)
option(build_wizard "Build the GUI frontend for analyze." OFF)
option(build_app "Example showing how to embed analyze in an application." OFF)
option(build_parse "Parses source code and dumps the dependencies between the code elements." OFF)
option(build_search "Build external search tools (doxysearch and doxyindexer)" OFF)
option(build_search "Build external search tools (analzsearch and analzindexer)" OFF)
option(build_doc "Build user manual (HTML and PDF)" OFF)
option(build_doc_chm "Build user manual (CHM)" OFF)
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
@ -31,21 +31,21 @@ option(use_sys_fmt "Use system fmt library instead of the one bundled." OFF)
option(use_sys_sqlite3 "Use system sqlite3 library instead of the one bundled." OFF)
option(static_libclang "Link to a statically compiled version of LLVM/libclang." OFF)
option(win_static "Link with /MT in stead of /MD on windows" OFF)
option(enable_console "Enable that executables on Windows get the CONSOLE bit set for the doxywizard executable [development]" OFF)
option(enable_console "Enable that executables on Windows get the CONSOLE bit set for the analzwizard executable [development]" OFF)
option(enable_coverage "Enable coverage reporting for gcc/clang [development]" OFF)
option(enable_tracing "Enable tracing option in release builds [development]" OFF)
option(enable_lex_debug "Enable debugging info for lexical scanners in release builds [development]" OFF)
include(CheckCXXCompilerFlag)
set(force_qt CACHE INTERNAL "Forces doxywizard to build using the specified major version, this can be Qt5 or Qt6")
set(force_qt CACHE INTERNAL "Forces analzwizard to build using the specified major version, this can be Qt5 or Qt6")
set_property(CACHE force_qt PROPERTY STRINGS OFF Qt6 Qt5)
SET(enlarge_lex_buffers "262144" CACHE INTERNAL "Sets the lex input and read buffers to the specified size")
if(enable_coverage)
if ("${PROJECT_BINARY_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
message(FATAL_ERROR "Doxygen cannot be generated in-place, the build directory (${PROJECT_BINARY_DIR}) has to differ from the doxygen main directory (${PROJECT_SOURCE_DIR})\nPlease don't forget to remove the already created file 'CMakeCache.txt' and the directory 'CMakeFiles'!")
message(FATAL_ERROR "analyze cannot be generated in-place, the build directory (${PROJECT_BINARY_DIR}) has to differ from the analyze main directory (${PROJECT_SOURCE_DIR})\nPlease don't forget to remove the already created file 'CMakeCache.txt' and the directory 'CMakeFiles'!")
endif()
endif()
@ -240,7 +240,7 @@ find_program(DOT NAMES dot)
find_package(Python REQUIRED)
find_package(FLEX REQUIRED)
if (FLEX_VERSION VERSION_LESS 2.5.37)
message(SEND_ERROR "Doxygen requires at least flex version 2.5.37 (installed: ${FLEX_VERSION})")
message(SEND_ERROR "analyze requires at least flex version 2.5.37 (installed: ${FLEX_VERSION})")
endif()
if (FLEX_VERSION VERSION_LESS 2.6.0)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dregister=")
@ -250,7 +250,7 @@ if (FLEX_VERSION VERSION_LESS 2.6.0)
endif()
find_package(BISON REQUIRED)
if (BISON_VERSION VERSION_LESS 2.7)
message(SEND_ERROR "Doxygen requires at least bison version 2.7 (installed: ${BISON_VERSION})")
message(SEND_ERROR "analyze requires at least bison version 2.7 (installed: ${BISON_VERSION})")
endif()
find_package(Threads)
find_package(Sanitizers)
@ -263,9 +263,9 @@ find_package(Iconv REQUIRED)
include_directories(${Iconv_INCLUDE_DIRS})
#set(DOXYDOCS ${PROJECT_SOURCE_DIR}/doc CACHE INTERNAL "Path to doxygen docs")
set(DOXYDOCS ${PROJECT_BINARY_DIR}/doc)
set(ENV{DOXYGEN_DOCDIR} ${DOXYDOCS})
#set(analzDOCS ${PROJECT_SOURCE_DIR}/doc CACHE INTERNAL "Path to analyze docs")
set(analzDOCS ${PROJECT_BINARY_DIR}/doc)
set(ENV{analyze_DOCDIR} ${analzDOCS})
set(GENERATED_SRC "${PROJECT_BINARY_DIR}/generated_src" CACHE INTERNAL "Stores generated files")
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)

View File

@ -8,7 +8,7 @@ RUN apt-get update && apt-get install -y \
bison \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /doxygen
WORKDIR /analyze
COPY . .
RUN mkdir build \
@ -22,6 +22,6 @@ FROM ubuntu:jammy
RUN apt-get update && apt-get install --no-install-recommends -y \
graphviz \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /doxygen/build/bin/doxygen /usr/local/bin/
WORKDIR /doxygen
ENTRYPOINT ["doxygen"]
COPY --from=builder /analyze/build/bin/analyze /usr/local/bin/
WORKDIR /analyze
ENTRYPOINT ["analyze"]

View File

@ -1,7 +1,7 @@
DOXYGEN
analyze
Please read the installation section of the manual
(https://www.doxygen.nl/manual/install.html) for instructions.
(https://www.analyze.nl/manual/install.html) for instructions.
--------
Dimitri van Heesch

View File

@ -1,11 +1,11 @@
This short howto explains how to add support for a new language to Doxygen:
This short howto explains how to add support for a new language to analyze:
Just follow these steps:
1) Tell me which language you want to add support for. If no one else
is already working on support for that language, you will be
assigned as the maintainer for the language. I'll create a
list on Doxygen's homepage, so everyone knows who is doing what.
list on analyze's homepage, so everyone knows who is doing what.
2) Edit src/config.xml:
- find the <option> with id='OUTPUT_LANGUAGE'
- add a new value with your language and an optional description:
@ -43,7 +43,7 @@ Just follow these steps:
7) Now you can use OUTPUT_LANGUAGE = your_language_name
in the config file to generate output in your language.
8) Send translator_xx.h to me so I can add it to doxygen.
8) Send translator_xx.h to me so I can add it to analyze.
Send also your name and e-mail address to be included in the
maintainers.txt list.

View File

@ -1,68 +0,0 @@
Doxygen
===============
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9HHLRBCC8B2B8)
Doxygen is the de facto standard tool for generating documentation from
annotated C++ sources, but it also supports other popular programming
languages such as C, Objective-C, C#, PHP, Java, Python, IDL
(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran,
and to some extent D. Doxygen also supports the hardware description language VHDL.
Doxygen can help you in three ways:
1. It can generate an on-line documentation browser (in HTML) and/or an
off-line reference manual (in LaTeX) from a set of documented source files.
There is also support for generating output in RTF (MS-Word), PostScript,
hyperlinked PDF, compressed HTML, DocBook and Unix man pages.
The documentation is extracted directly from the sources, which makes
it much easier to keep the documentation consistent with the source code.
2. You can configure doxygen to extract the code structure from undocumented
source files. This is very useful to quickly find your way in large
source distributions. Doxygen can also visualize the relations between
the various elements by means of include dependency graphs, inheritance
diagrams, and collaboration diagrams, which are all generated automatically.
3. You can also use doxygen for creating normal documentation (as I did for
the doxygen user manual and doxygen web-site).
Download
---------
The latest binaries and source of Doxygen can be downloaded from:
* https://www.doxygen.nl/
Developers
---------
* Linux & Windows and MacOS Build Status: <a href="https://github.com/doxygen/doxygen/actions"><img alt="Github Actions Build Status" src="https://github.com/doxygen/doxygen/workflows/CMake%20Build%20for%20Doxygen/badge.svg"></a>
* Coverity Scan Build Status: <a href="https://scan.coverity.com/projects/2860"> <img alt="Coverity Scan Build Status" src="https://scan.coverity.com/projects/2860/badge.svg"/> </a>
* Doxygen's <a href="https://doxygen.github.io/doxygen-docs/">internal source code documentation</a>
* Install: Please read the installation section of the manual (https://www.doxygen.nl/manual/install.html)
* Project stats: https://www.openhub.net/p/doxygen
Issues, bugs, requests, ideas
----------------------------------
Use the [issue](https://github.com/doxygen/doxygen/issues) tracker to report bugs.
Comms
----------------------------------
### Mailing Lists ###
There are three mailing lists:
* doxygen-announce@lists.sourceforge.net - Announcement of new releases only
* doxygen-users@lists.sourceforge.net - for doxygen users
* doxygen-develop@lists.sourceforge.net - for doxygen developers
* To subscribe follow the link to
* https://sourceforge.net/projects/doxygen/
Source Code
----------------------------------
In May 2013, Doxygen moved from
subversion to git hosted at GitHub
* https://github.com/doxygen/doxygen
Enjoy,
Dimitri van Heesch (doxygen at gmail.com)

View File

@ -1,17 +1,17 @@
add_subdirectory(doxmlparser)
if (build_app)
add_subdirectory(doxyapp)
add_subdirectory(analzapp)
endif ()
if (build_parse)
add_subdirectory(doxyparse)
add_subdirectory(analzparse)
endif ()
if (build_search)
add_subdirectory(doxysearch)
add_subdirectory(analzsearch)
endif ()
if (build_wizard)
add_subdirectory(doxywizard)
add_subdirectory(analzwizard)
endif ()

View File

@ -8,21 +8,21 @@ include_directories(
${CLANG_INCLUDEDIR}
)
add_executable(doxyapp
doxyapp.cpp
${PROJECT_SOURCE_DIR}/templates/icon/doxygen.rc
add_executable(analzapp
analzapp.cpp
${PROJECT_SOURCE_DIR}/templates/icon/analyze.rc
)
include(ApplyEditbin)
apply_editbin(doxyapp console)
add_sanitizers(doxyapp)
apply_editbin(analzapp console)
add_sanitizers(analzapp)
if (use_libclang)
find_package(LLVM REQUIRED CONFIG)
find_package(Clang REQUIRED CONFIG)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
target_compile_features(doxyapp PRIVATE cxx_alignof)
target_compile_features(analzapp PRIVATE cxx_alignof)
if (use_libc++)
target_compile_options(doxyapp PRIVATE -stdlib=libc++)
target_compile_options(analzapp PRIVATE -stdlib=libc++)
endif()
endif()
include_directories(${LLVM_INCLUDE_DIRS})
@ -30,21 +30,21 @@ if (use_libclang)
if (static_libclang)
set(CLANG_LIBS libclang clangTooling)
else() # dynamically linked version of clang
llvm_config(doxymain USE_SHARED support)
llvm_config(analzmain USE_SHARED support)
set(CLANG_LIBS libclang clang-cpp)
endif()
target_compile_definitions(doxyapp PRIVATE ${LLVM_DEFINITIONS})
target_compile_definitions(analzapp PRIVATE ${LLVM_DEFINITIONS})
endif()
target_link_libraries(doxyapp
doxymain
target_link_libraries(analzapp
analzmain
md5
sqlite3
xml
lodepng
mscgen
doxygen_version
doxycfg
analyze_version
analzcfg
vhdlparser
${Iconv_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
@ -54,4 +54,4 @@ ${CLANG_LIBS}
${COVERAGE_LINKER_FLAGS}
)
install(TARGETS doxyapp DESTINATION bin)
install(TARGETS analzapp DESTINATION bin)

View File

@ -1,6 +1,6 @@
This directory contains an example of how to use doxygen as
an "source parsing engine" in an application. It shows how to configure doxygen
from the application and shows how to run doxygen without generating output.
This directory contains an example of how to use analyze as
an "source parsing engine" in an application. It shows how to configure analyze
from the application and shows how to run analyze without generating output.
Practically, it allows you to extract the symbols found in the source code.
Note that if you use this approach your application should be licensed under the GPL.

View File

@ -8,21 +8,21 @@
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* Documents produced by analyze are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/** @file
* @brief Example of how to use doxygen as part of another GPL applications
* @brief Example of how to use analyze as part of another GPL applications
*
* This example shows how to configure and run doxygen programmatically from
* This example shows how to configure and run analyze programmatically from
* within an application without generating the usual output.
*
* If you are running a non-UNIX-like system you should specify `--tempdir`.
*
* This example shows how to use to code parser to get cross-references information
* and it also shows how to look up symbols in a program parsed by doxygen and
* and it also shows how to look up symbols in a program parsed by analyze and
* show some information about them.
*/
@ -30,7 +30,7 @@
#include <map>
#include <string>
#include "dir.h"
#include "doxygen.h"
#include "analyze.h"
#include "outputgen.h"
#include "outputlist.h"
#include "parserintf.h"
@ -91,7 +91,7 @@ class XRefDummyCodeGenerator : public OutputCodeIntf
(dynamic_cast<ClassDef*>(parentContext))->compoundTypeString().data(),
parentContext->name().data());
}
else if (parentContext==Doxygen::globalScope) // it is inside a global member
else if (parentContext==analyze::globalScope) // it is inside a global member
{
ctx.sprintf("inside %s %s",
(dynamic_cast<MemberDef*>(context))->memberTypeName().data(),
@ -106,7 +106,7 @@ class XRefDummyCodeGenerator : public OutputCodeIntf
printf("Found symbol %s at line %d of %s %s\n",
sym,l,m_fd->getDefFileName().data(),ctx.data());
if (symDef && context) // in this case the definition of the symbol is
// known to doxygen.
// known to analyze.
{
printf("-> defined at line %d of %s\n",
symDef->getDefLine(),symDef->getDefFileName().data());
@ -119,7 +119,7 @@ class XRefDummyCodeGenerator : public OutputCodeIntf
static void findXRefSymbols(FileDef *fd)
{
// get the interface to a parser that matches the file extension
auto intf=Doxygen::parserManager->getCodeParser(fd->getDefFileExtension());
auto intf=analyze::parserManager->getCodeParser(fd->getDefFileExtension());
// get the programming language from the file name
SrcLangExt lang = getLanguageFromFileName(fd->name());
@ -145,7 +145,7 @@ static void findXRefSymbols(FileDef *fd)
static void listSymbol(Definition *d)
{
if (d!=Doxygen::globalScope && // skip the global namespace symbol
if (d!=analyze::globalScope && // skip the global namespace symbol
d->name().at(0)!='@' // skip anonymous stuff
)
{
@ -156,7 +156,7 @@ static void listSymbol(Definition *d)
static void listSymbols()
{
for (const auto &kv : *Doxygen::symbolMap)
for (const auto &kv : *analyze::symbolMap)
{
for (const auto &def : kv.second)
{
@ -167,7 +167,7 @@ static void listSymbols()
static void lookupSymbol(const Definition *d)
{
if (d!=Doxygen::globalScope && // skip the global namespace symbol
if (d!=analyze::globalScope && // skip the global namespace symbol
d->name().at(0)!='@' // skip anonymous stuff
)
{
@ -218,7 +218,7 @@ static void lookupSymbols(const QCString &sym)
{
if (!sym.isEmpty())
{
auto range = Doxygen::symbolMap->find(sym);
auto range = analyze::symbolMap->find(sym);
bool found=false;
for (const Definition *def : range)
{
@ -264,11 +264,11 @@ static auto symbolInfo(const Definition *def)
static void locateSymbols()
{
std::map<std::string, std::map<std::string, std::map<std::string, std::map<std::string, int>>>> ret;
for (const auto &kv : *Doxygen::symbolMap)
for (const auto &kv : *analyze::symbolMap)
{
for (const auto &def : kv.second)
{
if (def == Doxygen::globalScope || def->name().at(0) == '@')
if (def == analyze::globalScope || def->name().at(0) == '@')
continue;
QCString args = "";
@ -313,7 +313,7 @@ static void locateSymbols()
int main(int argc,char **argv)
{
std::string tempdir = "/tmp/doxygen";
std::string tempdir = "/tmp/analyze";
std::string usage = "Usage: %s [--version] [--help] [--list] [--locate] [--tempdir ARG] path [path...]\n";
StringVector inputList;
bool list = false;
@ -366,7 +366,7 @@ int main(int argc,char **argv)
}
// initialize data structures
initDoxygen();
initanalyze();
// setup the non-default configuration options
checkConfiguration();
@ -390,7 +390,7 @@ int main(int argc,char **argv)
Config_updateBool(EXTRACT_PRIVATE,TRUE);
Config_updateBool(EXTRACT_LOCAL_METHODS,TRUE);
// Extract source browse information, needed
// to make doxygen gather the cross reference info
// to make analyze gather the cross reference info
Config_updateBool(SOURCE_BROWSER,TRUE);
// In case of a directory take all files on directory and its subdirectories
Config_updateBool(RECURSIVE,TRUE);
@ -402,7 +402,7 @@ int main(int argc,char **argv)
parseInput();
// iterate over the input files
for (const auto &fn : *Doxygen::inputNameLinkedMap)
for (const auto &fn : *analyze::inputNameLinkedMap)
{
for (const auto &fd : *fn)
{

View File

@ -1,38 +1,38 @@
# Viewer for the content of a Doxygen style comment block
# Viewer for the content of a analyze style comment block
## Contents
The directory contains an index.html page and a python3 helper script.
The script can be used to start a local web server that can do life rendering of
the content of a doxygen comment block.
the content of a analyze comment block.
Similar to e.g. https://markdownlivepreview.com/ but using doxygen as render engine.
Similar to e.g. https://markdownlivepreview.com/ but using analyze as render engine.
## To prepare the server
Place a doxygen.css in the same directory as the doxycommentview.py script.
Place a analyze.css in the same directory as the analzcommentview.py script.
This file can be generated running
doxygen -w html /tmp/header.html /tmp/footer.html doxygen.css path/to/Doxyfile
analyze -w html /tmp/header.html /tmp/footer.html analyze.css path/to/analzfile
or, alternatively, copied from an existing HTML output directory generated by doxygen.
or, alternatively, copied from an existing HTML output directory generated by analyze.
## To run the server invoke:
python3 doxycommentview.py --doxyfile /path/to/Doxyfile
python3 analzcommentview.py --analzfile /path/to/analzfile
The relevant settings, such as alias definitions, will be taken from the Doxyfile.
The relevant settings, such as alias definitions, will be taken from the analzfile.
If desired you can set the port for the webserver using `--port` and
point to the location of the doxygen binary using `--doxygen`
point to the location of the analyze binary using `--analyze`
Once the server is started, point your browser to the index page
firefox http://localhost:8000/index.html
You should see a panel to enter text on the left hand side and the output
rendered by doxygen on the right hand side of the page.
rendered by analyze on the right hand side of the page.
You can copy and paste the contents of this README.md file to test it quickly.

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
# python3 helper script to start a web server that can do life rendering of doxygen comments.
# python3 helper script to start a web server that can do life rendering of analyze comments.
#
# Copyright (C) 1997-2024 by Dimitri van Heesch.
#
@ -10,7 +10,7 @@
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# Documents produced by analyze are derivative works derived from the
# input used in their production; they are not affected by this license.
#
@ -25,16 +25,16 @@ import html
def main():
# Set up argument parser
parser = argparse.ArgumentParser(description="Runs the doxygen comment viewer HTTP server.")
parser = argparse.ArgumentParser(description="Runs the analyze comment viewer HTTP server.")
parser.add_argument('--port', type=int, default=8000, help='Port number to run the server on')
parser.add_argument('--doxygen', type=str, default='doxygen', help='Path to doxygen executable')
parser.add_argument('--doxyfile', type=str, default='Doxyfile', help='Path to Doxyfile to use')
parser.add_argument('--analyze', type=str, default='analyze', help='Path to analyze executable')
parser.add_argument('--analzfile', type=str, default='analzfile', help='Path to analzfile to use')
args = parser.parse_args()
PORT = args.port
DOXYGEN = args.doxygen
DOXYFILE = args.doxyfile
VERSION_STR = subprocess.run([DOXYGEN, '-v'], capture_output=True, text=True, encoding="utf-8").stdout
analyze = args.analyze
analzFILE = args.analzfile
VERSION_STR = subprocess.run([analyze, '-v'], capture_output=True, text=True, encoding="utf-8").stdout
class RequestHandler(http.server.SimpleHTTPRequestHandler):
def do_POST(self):
@ -44,14 +44,14 @@ def main():
data = json.loads(post_data)
input_text = data['input']
# Run doxygen in single comment mode, reading from stdin and writing to stdout and stderr
result = subprocess.run([DOXYGEN, '-c', '-', DOXYFILE], \
# Run analyze in single comment mode, reading from stdin and writing to stdout and stderr
result = subprocess.run([analyze, '-c', '-', analzFILE], \
input=input_text, capture_output=True, text=True, encoding="utf-8")
# Prepare the response
response = json.dumps({
'html_output': result.stdout,
'error_output': "<b>Doxygen version "+html.escape(VERSION_STR)+"</b><pre>"+html.escape(result.stderr)+"</pre>"
'error_output': "<b>analyze version "+html.escape(VERSION_STR)+"</b><pre>"+html.escape(result.stderr)+"</pre>"
})
# Send the result to the requesting HTML page

View File

@ -2,8 +2,8 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Doxygen comment viewer</title>
<link rel="stylesheet" type="text/css" href="/doxygen.css"/>
<title>analyze comment viewer</title>
<link rel="stylesheet" type="text/css" href="/analyze.css"/>
<style>
body {
margin: 0;

View File

@ -8,14 +8,14 @@ include_directories(
${CLANG_INCLUDEDIR}
)
add_executable(doxyparse
doxyparse.cpp
${PROJECT_SOURCE_DIR}/templates/icon/doxygen.rc
add_executable(analzparse
analzparse.cpp
${PROJECT_SOURCE_DIR}/templates/icon/analyze.rc
)
include(ApplyEditbin)
apply_editbin(doxyparse console)
add_sanitizers(doxyparse)
apply_editbin(analzparse console)
add_sanitizers(analzparse)
if (use_libclang)
if (static_libclang)
@ -25,15 +25,15 @@ if (use_libclang)
endif()
endif()
target_link_libraries(doxyparse
doxymain
target_link_libraries(analzparse
analzmain
md5
sqlite3
xml
lodepng
mscgen
doxygen_version
doxycfg
analyze_version
analzcfg
vhdlparser
${Iconv_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
@ -43,4 +43,4 @@ ${CLANG_LIBS}
${COVERAGE_LINKER_FLAGS}
)
install(TARGETS doxyparse DESTINATION bin)
install(TARGETS analzparse DESTINATION bin)

View File

@ -1,21 +1,21 @@
# Doxyparse
# analzparse
This directory contains an "source parsing engine" based on doxyapp code.
This directory contains an "source parsing engine" based on analzapp code.
Doxyparse modifies the default output of Doxygen and dumps the dependencies
analzparse modifies the default output of analyze and dumps the dependencies
among code elements in a YAML format, instead of output it in a human-readable
format, as Doxygen does Doxyparse's output is intended to produce a
format, as analyze does analzparse's output is intended to produce a
machine-readable output.
Doxyparse has been used in many software engineering research (as a source-code
analzparse has been used in many software engineering research (as a source-code
static analysis tool) regards on software metrics, quality metrics and so on,
Doxyparse was first used by the [Analizo](https://www.analizo.org) toolkit, a suite
analzparse was first used by the [Analizo](https://www.analizo.org) toolkit, a suite
of source code analysis tools, aimed at being language-independent and
extensible, able to extract and calculate a fair number of source code metrics,
generate dependency graphs, and other software evolution analysis.
Academic publications citing Doxyparse:
* https://scholar.google.com.br/scholar?q=doxyparse
Academic publications citing analzparse:
* https://scholar.google.com.br/scholar?q=analzparse
## build dependencies
@ -32,16 +32,16 @@ Academic publications citing Doxyparse:
## release
* ensure analizo testsuite passing on newer doxyparse version
* ensure analizo testsuite passing on newer analzparse version
* update debian/changelog, commit, push
* create git tag, push to github analizo/doxyparse
* create git tag, push to github analizo/analzparse
* build on amd64 and i386 archs, upload tar.gz to github
* `tar -zcf doxyparse_<VERSION>_amd64.tar.gz -C bin/ doxyparse`
* `tar -zcf doxyparse_<VERSION>_i386.tar.gz -C bin/ doxyparse`
* `tar -zcf analzparse_<VERSION>_amd64.tar.gz -C bin/ analzparse`
* `tar -zcf analzparse_<VERSION>_i386.tar.gz -C bin/ analzparse`
* build debian packages for amd64 and i386, update analizo.org repository
* (see analizo.github.io/README.md file for updating repository instructions)
* upload the deb files to github release tag also
* check if a alien-doxyparse release is necessary and do it on cpan
* check if a alien-analzparse release is necessary and do it on cpan
## Authors

View File

@ -0,0 +1,10 @@
.TH analzPARSE "1" "DATE" "analzparse VERSION" "User Commands"
.SH NAME
analzparse \- parse and dumps information about the code
.SH SYNOPSIS
.B analzparse
[\fIsource file\fR...]
.SH DESCRIPTION
Parses source code and dumps the dependencies between the code elements.
.SH SEE ALSO
analyze(1), analztag(1), analzwizard(1).

View File

@ -8,13 +8,13 @@
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* Documents produced by analyze are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/** @file
* @brief Code parse based on doxyapp by Dimitri van Heesch
* @brief Code parse based on analzapp by Dimitri van Heesch
*
*/
@ -25,7 +25,7 @@
#include <windows.h>
#endif
#include "version.h"
#include "doxygen.h"
#include "analyze.h"
#include "outputgen.h"
#include "outputlist.h"
#include "parserintf.h"
@ -46,16 +46,16 @@
#include "portable.h"
#include "dir.h"
class Doxyparse : public OutputCodeIntf
class analzparse : public OutputCodeIntf
{
public:
Doxyparse(const FileDef *fd) : m_fd(fd) {}
~Doxyparse() {}
analzparse(const FileDef *fd) : m_fd(fd) {}
~analzparse() {}
// these are just null functions, they can be used to produce a syntax highlighted
// and cross-linked version of the source code, but who needs that anyway ;-)
OutputType type() const override { return OutputType::Extension; }
std::unique_ptr<OutputCodeIntf> clone() override { return std::make_unique<Doxyparse>(m_fd); }
std::unique_ptr<OutputCodeIntf> clone() override { return std::make_unique<analzparse>(m_fd); }
void codify(const QCString &) override {}
void stripCodeComments(bool) override {}
void startSpecialComment() override {}
@ -95,7 +95,7 @@ static bool is_c_code = true;
static void findXRefSymbols(FileDef *fd)
{
// get the interface to a parser that matches the file extension
auto intf=Doxygen::parserManager->getCodeParser(fd->getDefFileExtension());
auto intf=analyze::parserManager->getCodeParser(fd->getDefFileExtension());
// get the programming language from the file name
SrcLangExt lang = getLanguageFromFileName(fd->name());
@ -104,7 +104,7 @@ static void findXRefSymbols(FileDef *fd)
intf->resetCodeParserState();
// create a new backend object
std::unique_ptr<OutputCodeIntf> parse = std::make_unique<Doxyparse>(fd);
std::unique_ptr<OutputCodeIntf> parse = std::make_unique<analzparse>(fd);
OutputCodeList parseList;
parseList.add(std::move(parse));
@ -399,10 +399,10 @@ static void detectProgrammingLanguage(FileNameLinkedMap &fnli) {
}
static void listSymbols() {
detectProgrammingLanguage(*Doxygen::inputNameLinkedMap);
detectProgrammingLanguage(*analyze::inputNameLinkedMap);
// iterate over the input files
for (const auto &fn : *Doxygen::inputNameLinkedMap) {
for (const auto &fn : *analyze::inputNameLinkedMap) {
for (const auto &fd : *fn) {
printFile(fd->absFilePath().data());
MemberList *ml = fd->getMemberList(MemberListType::AllMembersList());
@ -448,7 +448,7 @@ int main(int argc,char **argv) {
}
// initialize data structures
initDoxygen();
initanalyze();
// check and finalize the configuration
checkConfiguration();
@ -460,11 +460,11 @@ int main(int argc,char **argv) {
std::ostringstream tmpdir;
unsigned int pid = Portable::pid();
if (!Portable::getenv("TMP").isEmpty())
tmpdir << Portable::getenv("TMP") << "/doxyparse-" << pid;
tmpdir << Portable::getenv("TMP") << "/analzparse-" << pid;
else if (!Portable::getenv("TEMP").isEmpty())
tmpdir << Portable::getenv("TEMP") << "/doxyparse-" << pid;
tmpdir << Portable::getenv("TEMP") << "/analzparse-" << pid;
else
tmpdir << "doxyparse-" << pid;
tmpdir << "analzparse-" << pid;
Config_updateString(OUTPUT_DIRECTORY,tmpdir.str().c_str());
// enable HTML (fake) output to omit warning about missing output format
@ -485,7 +485,7 @@ int main(int argc,char **argv) {
Config_updateBool(EXTRACT_LOCAL_METHODS,TRUE);
Config_updateBool(EXTRACT_PACKAGE,TRUE);
// Extract source browse information, needed
// to make doxygen gather the cross reference info
// to make analyze gather the cross reference info
Config_updateBool(SOURCE_BROWSER,TRUE);
// find functions call between modules
Config_updateBool(CALL_GRAPH,TRUE);
@ -519,7 +519,7 @@ int main(int argc,char **argv) {
parseInput();
// iterate over the input files
for (const auto &fn : *Doxygen::inputNameLinkedMap) {
for (const auto &fn : *analyze::inputNameLinkedMap) {
for (const auto &fd : *fn) {
// get the references (linked and unlinked) found in this file
findXRefSymbols(fd.get());
@ -528,7 +528,7 @@ int main(int argc,char **argv) {
Dir thisDir;
// remove temporary files
if (!Doxygen::filterDBFileName.isEmpty()) thisDir.remove(Doxygen::filterDBFileName.str());
if (!analyze::filterDBFileName.isEmpty()) thisDir.remove(analyze::filterDBFileName.str());
// clean up after us
thisDir.rmdir(Config_getString(OUTPUT_DIRECTORY).str());

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
# python script to search through doxygen_sqlite3.db
# python script to search through analyze_sqlite3.db
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby
@ -50,7 +50,7 @@ def re_fn(expr, item):
def openDb(dbname):
if dbname is None:
dbname = "doxygen_sqlite3.db"
dbname = "analyze_sqlite3.db"
if not os.path.isfile(dbname):
raise BaseException("No such file %s" % dbname )
@ -304,7 +304,7 @@ def serveCgi():
print('{"result": null, "error": "no refid given"}')
sys.exit(0)
cn=openDb('doxygen_sqlite3.db')
cn=openDb('analyze_sqlite3.db')
j = processHref(cn,ref)

View File

@ -11,35 +11,35 @@ include_directories(
${XAPIAN_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}
)
add_executable(doxyindexer
doxyindexer.cpp
${PROJECT_SOURCE_DIR}/templates/icon/doxygen.rc
add_executable(analzindexer
analzindexer.cpp
${PROJECT_SOURCE_DIR}/templates/icon/analyze.rc
)
target_link_libraries(doxyindexer
target_link_libraries(analzindexer
${XAPIAN_LIBRARIES}
${ZLIB_LIBRARIES}
${WIN_EXTRA_LIBS}
${COVERAGE_LINKER_FLAGS}
doxygen_version
analyze_version
xml
)
add_executable(doxysearch.cgi
doxysearch.cpp
${PROJECT_SOURCE_DIR}/templates/icon/doxygen.rc
add_executable(analzsearch.cgi
analzsearch.cpp
${PROJECT_SOURCE_DIR}/templates/icon/analyze.rc
)
target_link_libraries(doxysearch.cgi
doxygen_version
target_link_libraries(analzsearch.cgi
analyze_version
${XAPIAN_LIBRARIES}
${ZLIB_LIBRARIES}
${WIN_EXTRA_LIBS}
)
include(ApplyEditbin)
apply_editbin(doxyindexer console)
apply_editbin(doxysearch.cgi console)
apply_editbin(analzindexer console)
apply_editbin(analzsearch.cgi console)
install(TARGETS doxyindexer doxysearch.cgi DESTINATION bin)
install(TARGETS analzindexer analzsearch.cgi DESTINATION bin)

View File

@ -8,7 +8,7 @@
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* Documents produced by analyze are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
@ -146,7 +146,7 @@ class XMLContentHandler
public:
/** Handler for parsing XML data */
XMLContentHandler(const std::string &path)
: m_db(path+"doxysearch.db",Xapian::DB_CREATE_OR_OVERWRITE),
: m_db(path+"analzsearch.db",Xapian::DB_CREATE_OR_OVERWRITE),
m_stemmer("english")
{
m_curFieldName = UnknownField;

View File

@ -8,7 +8,7 @@
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* Documents produced by analyze are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
@ -374,7 +374,7 @@ int main(int argc,char **argv)
}
}
std::string indexDir = "doxysearch.db";
std::string indexDir = "analzsearch.db";
if (queryString=="test") // user test
{

View File

@ -41,7 +41,7 @@ include_directories(
${GENERATED_SRC}
)
set(GENERATED_SRC_WIZARD ${GENERATED_SRC}/doxywizard)
set(GENERATED_SRC_WIZARD ${GENERATED_SRC}/analzwizard)
file(MAKE_DIRECTORY ${GENERATED_SRC_WIZARD})
add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DUNICODE)
@ -69,7 +69,7 @@ add_custom_command(
)
set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GENERATED 1)
set(LEX_FILES config_doxyw)
set(LEX_FILES config_analzw)
if (NOT depfile_supported)
# In case the DEPFILE possibility is not supported the complete list of lex include files for the dependency has to be used
@ -79,15 +79,15 @@ endif()
foreach(lex_file ${LEX_FILES})
if (depfile_supported)
add_custom_command(
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l
DEPFILE ${GENERATED_SRC_WIZARD}/${lex_file}.d
OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d
)
else()
add_custom_command(
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l ${LEX_INC_FILES}
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l ${LEX_INC_FILES}
OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d
)
endif()
@ -97,15 +97,15 @@ foreach(lex_file ${LEX_FILES})
if (depfile_supported)
add_custom_command(
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l
DEPFILE ${GENERATED_SRC_WIZARD}/${lex_file}.d
OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d
)
else()
add_custom_command(
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l ${LEX_INC_FILES}
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d ${PROJECT_SOURCE_DIR}/src
DEPENDS ${PROJECT_SOURCE_DIR}/src/pre_lex.py ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l ${LEX_INC_FILES}
OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${GENERATED_SRC_WIZARD}/${lex_file}.d
)
endif()
@ -125,14 +125,14 @@ foreach(lex_file ${LEX_FILES})
${GENERATED_SRC_WIZARD}/${lex_file}_intermediate.cpp
COMPILE_FLAGS "${LEX_FLAGS}")
add_custom_command(
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/post_lex.py ${GENERATED_SRC_WIZARD}/${lex_file}_intermediate.cpp ${GENERATED_SRC_WIZARD}/${lex_file}.cpp ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/post_lex.py ${GENERATED_SRC_WIZARD}/${lex_file}_intermediate.cpp ${GENERATED_SRC_WIZARD}/${lex_file}.cpp ${GENERATED_SRC_WIZARD}/${lex_file}.corr ${PROJECT_SOURCE_DIR}/addon/analzwizard/${lex_file}.l ${GENERATED_SRC_WIZARD}/${lex_file}.l
DEPENDS ${PROJECT_SOURCE_DIR}/src/post_lex.py ${GENERATED_SRC_WIZARD}/${lex_file}_intermediate.cpp ${GENERATED_SRC_WIZARD}/${lex_file}.corr
OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.cpp
)
endforeach()
qt_wrap_cpp(doxywizard_MOC
doxywizard.h
qt_wrap_cpp(analzwizard_MOC
analzwizard.h
expert.h
helplabel.h
inputint.h
@ -142,11 +142,11 @@ inputstrlist.h
wizard.h
)
qt_add_resources(doxywizard_RESOURCES_RCC doxywizard.qrc)
qt_add_resources(analzwizard_RESOURCES_RCC analzwizard.qrc)
add_executable(doxywizard WIN32
add_executable(analzwizard WIN32
config_msg.cpp
doxywizard.cpp
analzwizard.cpp
expert.cpp
wizard.cpp
inputbool.cpp
@ -154,29 +154,29 @@ inputstring.cpp
inputint.cpp
inputstrlist.cpp
${GENERATED_SRC_WIZARD}/settings.h
${GENERATED_SRC_WIZARD}/config_doxyw.cpp
${GENERATED_SRC_WIZARD}/config_doxyw.l.h
${GENERATED_SRC_WIZARD}/config_analzw.cpp
${GENERATED_SRC_WIZARD}/config_analzw.l.h
${GENERATED_SRC_WIZARD}/configdoc.cpp
${doxywizard_MOC}
${doxywizard_RESOURCES_RCC}
${PROJECT_SOURCE_DIR}/templates/icon/doxygen.rc
${analzwizard_MOC}
${analzwizard_RESOURCES_RCC}
${PROJECT_SOURCE_DIR}/templates/icon/analyze.rc
)
set_property(TARGET doxywizard PROPERTY WIN32_EXECUTABLE true)
set_property(TARGET analzwizard PROPERTY WIN32_EXECUTABLE true)
include(ApplyEditbin)
if (enable_console)
apply_editbin(doxywizard console)
apply_editbin(analzwizard console)
else()
apply_editbin(doxywizard windows)
apply_editbin(analzwizard windows)
endif()
if(Qt5Core_FOUND)
target_link_libraries(doxywizard Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml doxygen_version)
target_link_libraries(analzwizard Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml analyze_version)
elseif(Qt6Core_FOUND)
target_link_libraries(doxywizard Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Xml doxygen_version)
target_link_libraries(analzwizard Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Xml analyze_version)
else()
target_link_libraries(doxywizard ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} doxygen_version)
target_link_libraries(analzwizard ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} analyze_version)
endif()
install(TARGETS doxywizard DESTINATION bin)
install(TARGETS analzwizard DESTINATION bin)

3
addon/analzwizard/README Normal file
View File

@ -0,0 +1,3 @@
analzwizard is a graphical front-end to read/edit/write analyze configuration
files and to launch analyze. It requires Qt version 4.3 or higher.

View File

@ -10,7 +10,7 @@
*
*/
#include "doxywizard.h"
#include "analzwizard.h"
#include "version.h"
#include "expert.h"
#include "wizard.h"
@ -46,7 +46,7 @@
#define MAX_RECENT_FILES 10
// globally accessible variables
bool DoxygenWizard::debugFlag = false;
bool analyzeWizard::debugFlag = false;
const int messageTimeout = 5000; //!< status bar message timeout in milliseconds.
@ -59,7 +59,7 @@ MainWindow &MainWindow::instance()
}
MainWindow::MainWindow()
: m_settings(QString::fromLatin1("Doxygen.org"), QString::fromLatin1("Doxywizard"))
: m_settings(QString::fromLatin1("analyze.org"), QString::fromLatin1("analzwizard"))
{
QMenu *file = menuBar()->addMenu(tr("File"));
file->addAction(tr("Open..."),
@ -80,8 +80,8 @@ MainWindow::MainWindow()
m_clearRecent = settings->addAction(tr("Clear recent list"),
this,SLOT(clearRecent()));
settings->addSeparator();
m_runMenu = settings->addAction(tr("Run doxygen"),
this,SLOT(runDoxygenMenu()),Qt::CTRL|Qt::Key_R);
m_runMenu = settings->addAction(tr("Run analyze"),
this,SLOT(runanalyzeMenu()),Qt::CTRL|Qt::Key_R);
m_runMenu->setEnabled(false);
QMenu *help = menuBar()->addMenu(tr("Help"));
@ -111,9 +111,9 @@ MainWindow::MainWindow()
m_runTab = new QWidget;
QVBoxLayout *runTabLayout = new QVBoxLayout(m_runTab);
// run doxygen
// run analyze
QHBoxLayout *runLayout = new QHBoxLayout;
m_run = new QPushButton(tr("Run doxygen"));
m_run = new QPushButton(tr("Run analyze"));
m_run->setEnabled(false);
m_runStatus = new QLabel(tr("Status: not running"));
m_saveLog = new QPushButton(tr("Save log..."));
@ -128,7 +128,7 @@ MainWindow::MainWindow()
// select extra run options
m_runOptions = new QLineEdit;
runTabLayout->addWidget(new QLabel(tr("Specify additional command line options for running doxygen")));
runTabLayout->addWidget(new QLabel(tr("Specify additional command line options for running analyze")));
runTabLayout->addWidget(m_runOptions);
QVBoxLayout *runVLayout = new QVBoxLayout;
@ -157,9 +157,9 @@ MainWindow::MainWindow()
saveLayout->setAlignment(Qt::AlignTop);
// saveLayout->addWidget(new QWidget); // to have the save button at the top
// output produced by Doxygen
// output produced by analyze
runTabLayout->addLayout(runLayout);
runTabLayout->addWidget(new QLabel(tr("Output produced by doxygen")));
runTabLayout->addWidget(new QLabel(tr("Output produced by analyze")));
QGridLayout *grid = new QGridLayout;
//m_outputLog = new QTextEdit;
m_outputLog = new QTextBrowser;
@ -177,13 +177,13 @@ MainWindow::MainWindow()
m_tabs->addTab(m_expert,tr("Expert"));
m_tabs->addTab(m_runTab,tr("Run"));
rowLayout->addWidget(new QLabel(tr("Specify the working directory from which doxygen will run")));
rowLayout->addWidget(new QLabel(tr("Specify the working directory from which analyze will run")));
rowLayout->addLayout(dirLayout);
rowLayout->addWidget(new QLabel(tr("Configure doxygen using the Wizard and/or Expert tab, then switch to the Run tab to generate the documentation")));
rowLayout->addWidget(new QLabel(tr("Configure analyze using the Wizard and/or Expert tab, then switch to the Run tab to generate the documentation")));
mainLayout->addWidget(m_tabs);
setCentralWidget(mainPart);
statusBar()->showMessage(tr("Welcome to Doxygen"),messageTimeout);
statusBar()->showMessage(tr("Welcome to analyze"),messageTimeout);
m_runProcess = new QProcess;
m_running = false;
@ -197,7 +197,7 @@ MainWindow::MainWindow()
connect(m_runProcess,SIGNAL(readyReadStandardOutput()),SLOT(readStdout()));
connect(m_runProcess,SIGNAL(finished(int, QProcess::ExitStatus)),SLOT(runComplete()));
connect(m_timer,SIGNAL(timeout()),SLOT(readStdout()));
connect(m_run,SIGNAL(clicked()),SLOT(runDoxygen()));
connect(m_run,SIGNAL(clicked()),SLOT(runanalyze()));
connect(m_launchHtml,SIGNAL(clicked()),SLOT(showHtmlOutput()));
connect(m_saveLog,SIGNAL(clicked()),SLOT(saveLog()));
connect(showSettings,SIGNAL(clicked()),SLOT(showSettings()));
@ -263,15 +263,15 @@ void MainWindow::updateWorkingDir()
void MainWindow::manual()
{
QDesktopServices::openUrl(QUrl(QString::fromLatin1("https://www.doxygen.org/manual/index.html")));
QDesktopServices::openUrl(QUrl(QString::fromLatin1("https://www.analyze.org/manual/index.html")));
}
void MainWindow::about()
{
QString msg;
QTextStream t(&msg,QIODevice::WriteOnly);
t << QString::fromLatin1("<qt><center>A tool to configure and run doxygen version ")+
QString::fromLatin1(getDoxygenVersion().c_str())+
t << QString::fromLatin1("<qt><center>A tool to configure and run analyze version ")+
QString::fromLatin1(getanalyzeVersion().c_str())+
QString::fromLatin1(" on your source files.</center>")+
QString::fromLatin1("<center>(Created with Qt version ")+
QString::fromLatin1(QT_VERSION_STR);
@ -284,7 +284,7 @@ void MainWindow::about()
"<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-");
t << QDate::currentDate().year();
t << QString::fromLatin1("</center><p></qt>");
QMessageBox::about(this,tr("Doxygen GUI"),msg);
QMessageBox::about(this,tr("analyze GUI"),msg);
}
void MainWindow::openConfig()
@ -363,7 +363,7 @@ bool MainWindow::saveConfig()
bool MainWindow::saveConfigAs()
{
QString fileName = QFileDialog::getSaveFileName(this, QString(),
m_workingDir->text()+QString::fromLatin1("/Doxyfile"));
m_workingDir->text()+QString::fromLatin1("/analzfile"));
if (fileName.isEmpty()) return false;
saveConfig(fileName);
return true;
@ -373,7 +373,7 @@ void MainWindow::makeDefaults()
{
if (QMessageBox::question(this,tr("Use current setting at startup?"),
tr("Do you want to save the current settings "
"and use them next time Doxywizard starts?"),
"and use them next time analzwizard starts?"),
QMessageBox::Save|
QMessageBox::Cancel)==QMessageBox::Save)
{
@ -458,7 +458,7 @@ void MainWindow::loadSettings()
void MainWindow::saveSettings()
{
QSettings settings(QString::fromLatin1("Doxygen.org"), QString::fromLatin1("Doxywizard"));
QSettings settings(QString::fromLatin1("analyze.org"), QString::fromLatin1("analzwizard"));
m_settings.setValue(QString::fromLatin1("main/geometry"), saveGeometry());
m_settings.setValue(QString::fromLatin1("main/state"), saveState());
@ -527,34 +527,34 @@ void MainWindow::openRecent(QAction *action)
}
}
void MainWindow::runDoxygenMenu()
void MainWindow::runanalyzeMenu()
{
m_tabs->setCurrentWidget(m_runTab);
runDoxygen();
runanalyze();
}
void MainWindow::runDoxygen()
void MainWindow::runanalyze()
{
if (!m_running)
{
QString doxygenPath;
QString analyzePath;
#if defined(Q_OS_MACX)
doxygenPath = qApp->applicationDirPath()+QString::fromLatin1("/../Resources/");
qDebug() << tr("Doxygen path: ") << doxygenPath;
if ( !QFile(doxygenPath + QString::fromLatin1("doxygen")).exists() )
analyzePath = qApp->applicationDirPath()+QString::fromLatin1("/../Resources/");
qDebug() << tr("analyze path: ") << analyzePath;
if ( !QFile(analyzePath + QString::fromLatin1("analyze")).exists() )
{
// No Doxygen binary in the resources, if there is a system Doxygen binary, use that instead
if ( QFile(QString::fromLatin1("/usr/local/bin/doxygen")).exists() )
// No analyze binary in the resources, if there is a system analyze binary, use that instead
if ( QFile(QString::fromLatin1("/usr/local/bin/analyze")).exists() )
{
doxygenPath = QString::fromLatin1("/usr/local/bin/");
analyzePath = QString::fromLatin1("/usr/local/bin/");
}
else
{
qDebug() << tr("Can't find the doxygen command, make sure it's in your $$PATH");
doxygenPath = QString::fromLatin1("");
qDebug() << tr("Can't find the analyze command, make sure it's in your $$PATH");
analyzePath = QString::fromLatin1("");
}
}
qDebug() << tr("Getting doxygen from: ") << doxygenPath;
qDebug() << tr("Getting analyze from: ") << analyzePath;
#endif
m_runProcess->setReadChannel(QProcess::StandardOutput);
@ -578,11 +578,11 @@ void MainWindow::runDoxygen()
args << QString::fromLatin1("-"); // read config from stdin
m_outputLog->clear();
m_runProcess->start(doxygenPath + QString::fromLatin1("doxygen"), args);
m_runProcess->start(analyzePath + QString::fromLatin1("analyze"), args);
if (!m_runProcess->waitForStarted())
{
m_outputLog->append(APPQT(QString::fromLatin1("*** Failed to run doxygen\n")));
m_outputLog->append(APPQT(QString::fromLatin1("*** Failed to run analyze\n")));
return;
}
QTextStream t(m_runProcess);
@ -592,13 +592,13 @@ void MainWindow::runDoxygen()
if (m_runProcess->state() == QProcess::NotRunning)
{
m_outputLog->append(APPQT(QString::fromLatin1("*** Failed to run doxygen\n")));
m_outputLog->append(APPQT(QString::fromLatin1("*** Failed to run analyze\n")));
}
else
{
m_saveLog->setEnabled(false);
m_running=true;
m_run->setText(tr("Stop doxygen"));
m_run->setText(tr("Stop analyze"));
m_runMenu->setEnabled(false);
m_runStatus->setText(tr("Status: running"));
m_timer->start(1000);
@ -607,7 +607,7 @@ void MainWindow::runDoxygen()
else
{
m_running=false;
m_run->setText(tr("Run doxygen"));
m_run->setText(tr("Run analyze"));
m_runStatus->setText(tr("Status: not running"));
m_runProcess->kill();
m_timer->stop();
@ -651,14 +651,14 @@ void MainWindow::runComplete()
{
if (m_running)
{
m_outputLog->append(APPQT(tr("*** Doxygen has finished\n")));
m_outputLog->append(APPQT(tr("*** analyze has finished\n")));
}
else
{
m_outputLog->append(APPQT(tr("*** Canceled by user\n")));
}
m_outputLog->ensureCursorVisible();
m_run->setText(tr("Run doxygen"));
m_run->setText(tr("Run analyze"));
m_runStatus->setText(tr("Status: not running"));
m_running=false;
m_runMenu->setEnabled(true);
@ -694,7 +694,7 @@ void MainWindow::saveLog()
{
QString fn = QFileDialog::getSaveFileName(this, tr("Save log file"),
m_workingDir->text()+
QString::fromLatin1("/doxygen_log.txt"));
QString::fromLatin1("/analyze_log.txt"));
if (!fn.isEmpty())
{
QFile f(fn);
@ -738,7 +738,7 @@ void MainWindow::configChanged()
void MainWindow::updateTitle()
{
QString title = tr("Doxygen GUI frontend");
QString title = tr("analyze GUI frontend");
m_resetDefault->setEnabled(m_modified);
if (m_modified)
{
@ -832,11 +832,11 @@ int main(int argc,char **argv)
QMessageBox msgBox;
if (!qstrcmp(qVersion(),QT_VERSION_STR))
{
msgBox.setText(QString::fromLatin1("Doxywizard version: %1, Qt version: %2").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QT_VERSION_STR)));
msgBox.setText(QString::fromLatin1("analzwizard version: %1, Qt version: %2").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QT_VERSION_STR)));
}
else
{
msgBox.setText(QString::fromLatin1("Doxywizard version: %1, Qt version: created with %2, running with %3").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QT_VERSION_STR),QString::fromLatin1(qVersion())));
msgBox.setText(QString::fromLatin1("analzwizard version: %1, Qt version: created with %2, running with %3").arg(QString::fromLatin1(getFullVersion().c_str()),QString::fromLatin1(QT_VERSION_STR),QString::fromLatin1(qVersion())));
}
msgBox.exec();
exit(0);
@ -844,7 +844,7 @@ int main(int argc,char **argv)
}
if (!qstrcmp(argv[1],"--debug") && ((locArgc == 2) || (locArgc == 3)))
{
DoxygenWizard::debugFlag = true;
analyzeWizard::debugFlag = true;
locArgc--;
}

View File

@ -10,8 +10,8 @@
*
*/
#ifndef DOXYWIZARD_H
#define DOXYWIZARD_H
#ifndef analzWIZARD_H
#define analzWIZARD_H
#include <QMainWindow>
#include <QSettings>
@ -61,8 +61,8 @@ class MainWindow : public QMainWindow
void openRecent(QAction *action);
void selectWorkingDir();
void updateWorkingDir();
void runDoxygen();
void runDoxygenMenu();
void runanalyze();
void runanalyzeMenu();
void readStdout();
void runComplete();
void showHtmlOutput();
@ -111,11 +111,11 @@ class MainWindow : public QMainWindow
bool m_modified;
};
/*! \brief This class serves as a namespace for global variables used by the doxygen wizard.
/*! \brief This class serves as a namespace for global variables used by the analyze wizard.
*
* All fields in this class are public and static, so they can be used directly.
*/
class DoxygenWizard
class analyzeWizard
{
public:
static bool debugFlag;

View File

@ -11,7 +11,7 @@
*/
%option never-interactive
%option prefix="config_doxywYY"
%option prefix="config_analzwYY"
%top{
#include <stdint.h>
}
@ -98,7 +98,7 @@ static void substEnvVarsInString(QString &s);
static void checkEncoding()
{
Input *option = g_options->value(QString::fromLatin1("DOXYFILE_ENCODING"));
Input *option = g_options->value(QString::fromLatin1("analzFILE_ENCODING"));
if (option && option->value().toString()!=g_codecName)
{
auto newCodec = std::make_unique<TextCodecAdapter>(option->value().toString().toLatin1());
@ -436,7 +436,7 @@ static const char *stateToString(int state);
{
config_warn("Tag '%s' at line %d of file %s has become obsolete.\n"
"To avoid this warning please update your configuration "
"file using \"doxygen -u\"\n", qPrintable(g_cmd),
"file using \"analyze -u\"\n", qPrintable(g_cmd),
yylineno,qPrintable(g_yyFileName));
InputObsolete *obsoleteOpt = dynamic_cast<InputObsolete*>(g_curOption);
if (obsoleteOpt)
@ -490,7 +490,7 @@ static const char *stateToString(int state);
{
config_warn("Tag '%s' at line %d of file %s has become obsolete.\n"
"To avoid this warning please update your configuration "
"file using \"doxygen -u\"\n",
"file using \"analyze -u\"\n",
qPrintable(g_cmd),yylineno,qPrintable(g_yyFileName));
InputObsolete *obsoleteOpt = dynamic_cast<InputObsolete*>(g_curOption);
if (obsoleteOpt && obsoleteOpt->orgKind()==Input::StrList)
@ -759,9 +759,9 @@ bool parseConfig(
g_yyFileName = fileName;
g_includeStack.clear();
g_includeDepth = 0;
config_doxywYYrestart( config_doxywYYin );
config_analzwYYrestart( config_analzwYYin );
BEGIN( Start );
config_doxywYYlex();
config_analzwYYlex();
upgradeConfig(options);
@ -863,5 +863,5 @@ void writeStringValue(QTextStream &t,TextCodecAdapter *codec,const QString &s,bo
}
}
#if USE_STATE2STRING
#include "config_doxyw.l.h"
#include "config_analzw.l.h"
#endif

View File

@ -1,6 +1,6 @@
#include <QString>
#include "config_msg.h"
#include "doxywizard.h"
#include "analzwizard.h"
static QString warning_str = QString::fromLatin1("warning: ");
static QString error_str = QString::fromLatin1("error: ");

View File

@ -1,5 +1,5 @@
#ifndef DOXYW_MSG_H
#define DOXYW_MSG_H
#ifndef analzW_MSG_H
#define analzW_MSG_H
void config_err(const char *fmt, ...);
void config_term(const char *fmt, ...);

View File

@ -168,7 +168,7 @@ static QString getDocsForNode(const QDomElement &child)
while (!docsVal.isNull())
{
if (docsVal.tagName()==SA("docs") &&
docsVal.attribute(SA("doxywizard")) != SA("0"))
docsVal.attribute(SA("analzwizard")) != SA("0"))
{
for (QDomNode n = docsVal.firstChild(); !n.isNull(); n = n.nextSibling())
{
@ -404,9 +404,9 @@ static QString getDocsForNode(const QDomElement &child)
docs+= SA("\" is set to <code>YES</code>.");
}
// Remove / replace doxygen markup strings
// Remove / replace analyze markup strings
// the regular expressions are hard to read so the intention will be given
// Note: see also configgen.py in the src directory for other doxygen parts
// Note: see also configgen.py in the src directory for other analyze parts
QRegularExpression regexp;
// remove \n at end and replace by a space
regexp.setPattern(SA("\\n$"));
@ -435,8 +435,8 @@ static QString getDocsForNode(const QDomElement &child)
docs.replace(regexp,SA("<code>\\1</code> "));
//\ref specials
// \ref <key> -> description
regexp.setPattern(SA("\\\\ref[ ]+doxygen_usage"));
docs.replace(regexp,SA("\"Doxygen usage\""));
regexp.setPattern(SA("\\\\ref[ ]+analyze_usage"));
docs.replace(regexp,SA("\"analyze usage\""));
regexp.setPattern(SA("\\\\ref[ ]+extsearch"));
docs.replace(regexp,SA("\"External Indexing and Searching\""));
regexp.setPattern(SA("\\\\ref[ ]+external"));
@ -846,13 +846,13 @@ void Expert::saveTopic(QTextStream &t,QDomElement &elem,TextCodecAdapter *codec,
bool Expert::writeConfig(QTextStream &t,bool brief, bool condensed, bool convert)
{
// write global header
t << "# Doxyfile " << getDoxygenVersion().c_str() << "\n\n";
t << "# analzfile " << getanalyzeVersion().c_str() << "\n\n";
if (!brief && !condensed)
{
t << convertToComment(m_header);
}
Input *option = m_options[QString::fromLatin1("DOXYFILE_ENCODING")];
Input *option = m_options[QString::fromLatin1("analzFILE_ENCODING")];
TextCodecAdapter codec(option->value().toString().toLatin1());
QDomElement childElem = m_rootElement.firstChildElement();
while (!childElem.isNull())

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -12,7 +12,7 @@
#include "inputstring.h"
#include "helplabel.h"
#include "doxywizard.h"
#include "analzwizard.h"
#include "config_msg.h"
#include "config.h"

View File

@ -12,7 +12,7 @@
#include "inputstrlist.h"
#include "helplabel.h"
#include "doxywizard.h"
#include "analzwizard.h"
#include "config.h"
#include <QToolBar>

View File

@ -12,7 +12,7 @@
#include "wizard.h"
#include "input.h"
#include "doxywizard.h"
#include "analzwizard.h"
#include <math.h>
@ -563,7 +563,7 @@ Step1::Step1(Wizard *wizard,const QHash<QString,Input*> &modelData) : m_wizard(w
layout->addWidget(f);
l = new QLabel(this);
l->setText(tr("Specify the directory where doxygen should "
l->setText(tr("Specify the directory where analyze should "
"put the generated documentation"));
layout->addWidget(l);
row = new QWidget;

View File

@ -1,7 +1,7 @@
Doxmlparser
===========
This is a python package to make it easier to parse the XML output produced by doxygen.
This is a python package to make it easier to parse the XML output produced by analyze.
The API is generated from the index.xsd and compound.xsd XML schema files using
Dave Kuhlman's generateDS https://www.davekuhlman.org/generateDS.html

View File

@ -1236,7 +1236,7 @@ class MemberKind(str, Enum):
SLOT='slot'
class DoxygenType(GeneratedsSuper):
class analyzeType(GeneratedsSuper):
__hash__ = GeneratedsSuper.__hash__
subclass = None
superclass = None
@ -1258,13 +1258,13 @@ class DoxygenType(GeneratedsSuper):
def factory(*args_, **kwargs_):
if CurrentSubclassModule_ is not None:
subclass = getSubclassFromModule_(
CurrentSubclassModule_, DoxygenType)
CurrentSubclassModule_, analyzeType)
if subclass is not None:
return subclass(*args_, **kwargs_)
if DoxygenType.subclass:
return DoxygenType.subclass(*args_, **kwargs_)
if analyzeType.subclass:
return analyzeType.subclass(*args_, **kwargs_)
else:
return DoxygenType(*args_, **kwargs_)
return analyzeType(*args_, **kwargs_)
factory = staticmethod(factory)
def get_ns_prefix_(self):
return self.ns_prefix_
@ -1306,37 +1306,37 @@ class DoxygenType(GeneratedsSuper):
return True
else:
return False
def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DoxygenType', pretty_print=True):
imported_ns_def_ = GenerateDSNamespaceDefs_.get('DoxygenType')
def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='analyzeType', pretty_print=True):
imported_ns_def_ = GenerateDSNamespaceDefs_.get('analyzeType')
if imported_ns_def_ is not None:
namespacedef_ = imported_ns_def_
if pretty_print:
eol_ = '\n'
else:
eol_ = ''
if self.original_tagname_ is not None and name_ == 'DoxygenType':
if self.original_tagname_ is not None and name_ == 'analyzeType':
name_ = self.original_tagname_
if UseCapturedNS_ and self.ns_prefix_:
namespaceprefix_ = self.ns_prefix_ + ':'
showIndent(outfile, level, pretty_print)
outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
already_processed = set()
self.exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DoxygenType')
self.exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='analyzeType')
if self.hasContent_():
outfile.write('>%s' % (eol_, ))
self.exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DoxygenType', pretty_print=pretty_print)
self.exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='analyzeType', pretty_print=pretty_print)
showIndent(outfile, level, pretty_print)
outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
else:
outfile.write('/>%s' % (eol_, ))
def exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DoxygenType'):
def exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='analyzeType'):
if self.version is not None and 'version' not in already_processed:
already_processed.add('version')
outfile.write(' version=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.version), input_name='version')), ))
if self.lang is not None and 'lang' not in already_processed:
already_processed.add('lang')
outfile.write(' xml:lang=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.lang), input_name='lang')), ))
def exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DoxygenType', fromsubclass_=False, pretty_print=True):
def exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='analyzeType', fromsubclass_=False, pretty_print=True):
if pretty_print:
eol_ = '\n'
else:
@ -1371,7 +1371,7 @@ class DoxygenType(GeneratedsSuper):
obj_.build(child_, gds_collector_=gds_collector_)
self.compounddef.append(obj_)
obj_.original_tagname_ = 'compounddef'
# end class DoxygenType
# end class analyzeType
class compounddefType(GeneratedsSuper):
@ -27248,7 +27248,7 @@ class docEmojiType(GeneratedsSuper):
GDSClassesMapping = {
'doxygen': DoxygenType,
'analyze': analyzeType,
}
@ -27295,8 +27295,8 @@ def parse(inFileName, silence=False, print_warnings=True):
rootNode = doc.getroot()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
@ -27327,8 +27327,8 @@ def parseEtree(inFileName, silence=False, print_warnings=True,
rootNode = doc.getroot()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
# Enable Python to collect the space used by the DOM.
@ -27370,8 +27370,8 @@ def parseString(inString, silence=False, print_warnings=True):
gds_collector = GdsCollector_()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
if not SaveElementTreeNode:
@ -27398,8 +27398,8 @@ def parseLiteral(inFileName, silence=False, print_warnings=True):
rootNode = doc.getroot()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
# Enable Python to collect the space used by the DOM.
@ -27444,7 +27444,7 @@ RenameMappings_ = {
NamespaceToDefMappings_ = {'http://www.w3.org/XML/1998/namespace': []}
__all__ = [
"DoxygenType",
"analyzeType",
"MemberType",
"childnodeType",
"codelineType",

View File

@ -1004,7 +1004,7 @@ class MemberKind(str, Enum):
SLOT='slot'
class DoxygenType(GeneratedsSuper):
class analyzeType(GeneratedsSuper):
__hash__ = GeneratedsSuper.__hash__
subclass = None
superclass = None
@ -1026,13 +1026,13 @@ class DoxygenType(GeneratedsSuper):
def factory(*args_, **kwargs_):
if CurrentSubclassModule_ is not None:
subclass = getSubclassFromModule_(
CurrentSubclassModule_, DoxygenType)
CurrentSubclassModule_, analyzeType)
if subclass is not None:
return subclass(*args_, **kwargs_)
if DoxygenType.subclass:
return DoxygenType.subclass(*args_, **kwargs_)
if analyzeType.subclass:
return analyzeType.subclass(*args_, **kwargs_)
else:
return DoxygenType(*args_, **kwargs_)
return analyzeType(*args_, **kwargs_)
factory = staticmethod(factory)
def get_ns_prefix_(self):
return self.ns_prefix_
@ -1063,37 +1063,37 @@ class DoxygenType(GeneratedsSuper):
return True
else:
return False
def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DoxygenType', pretty_print=True):
imported_ns_def_ = GenerateDSNamespaceDefs_.get('DoxygenType')
def export(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='analyzeType', pretty_print=True):
imported_ns_def_ = GenerateDSNamespaceDefs_.get('analyzeType')
if imported_ns_def_ is not None:
namespacedef_ = imported_ns_def_
if pretty_print:
eol_ = '\n'
else:
eol_ = ''
if self.original_tagname_ is not None and name_ == 'DoxygenType':
if self.original_tagname_ is not None and name_ == 'analyzeType':
name_ = self.original_tagname_
if UseCapturedNS_ and self.ns_prefix_:
namespaceprefix_ = self.ns_prefix_ + ':'
showIndent(outfile, level, pretty_print)
outfile.write('<%s%s%s' % (namespaceprefix_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
already_processed = set()
self.exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='DoxygenType')
self.exportAttributes(outfile, level, already_processed, namespaceprefix_, name_='analyzeType')
if self.hasContent_():
outfile.write('>%s' % (eol_, ))
self.exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='DoxygenType', pretty_print=pretty_print)
self.exportChildren(outfile, level + 1, namespaceprefix_, namespacedef_, name_='analyzeType', pretty_print=pretty_print)
showIndent(outfile, level, pretty_print)
outfile.write('</%s%s>%s' % (namespaceprefix_, name_, eol_))
else:
outfile.write('/>%s' % (eol_, ))
def exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='DoxygenType'):
def exportAttributes(self, outfile, level, already_processed, namespaceprefix_='', name_='analyzeType'):
if self.version is not None and 'version' not in already_processed:
already_processed.add('version')
outfile.write(' version=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.version), input_name='version')), ))
if self.lang is not None and 'lang' not in already_processed:
already_processed.add('lang')
outfile.write(' xml:lang=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.lang), input_name='lang')), ))
def exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='DoxygenType', fromsubclass_=False, pretty_print=True):
def exportChildren(self, outfile, level, namespaceprefix_='', namespacedef_='', name_='analyzeType', fromsubclass_=False, pretty_print=True):
if pretty_print:
eol_ = '\n'
else:
@ -1127,7 +1127,7 @@ class DoxygenType(GeneratedsSuper):
obj_.build(child_, gds_collector_=gds_collector_)
self.compound.append(obj_)
obj_.original_tagname_ = 'compound'
# end class DoxygenType
# end class analyzeType
class CompoundType(GeneratedsSuper):
@ -1421,7 +1421,7 @@ class MemberType(GeneratedsSuper):
GDSClassesMapping = {
'doxygenindex': DoxygenType,
'analyzeindex': analyzeType,
}
@ -1468,8 +1468,8 @@ def parse(inFileName, silence=False, print_warnings=True):
rootNode = doc.getroot()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
CapturedNsmap_, namespacedefs = get_required_ns_prefix_defs(rootNode)
@ -1500,8 +1500,8 @@ def parseEtree(inFileName, silence=False, print_warnings=True,
rootNode = doc.getroot()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
# Enable Python to collect the space used by the DOM.
@ -1543,8 +1543,8 @@ def parseString(inString, silence=False, print_warnings=True):
gds_collector = GdsCollector_()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
if not SaveElementTreeNode:
@ -1571,8 +1571,8 @@ def parseLiteral(inFileName, silence=False, print_warnings=True):
rootNode = doc.getroot()
rootTag, rootClass = get_root_tag(rootNode)
if rootClass is None:
rootTag = 'DoxygenType'
rootClass = DoxygenType
rootTag = 'analyzeType'
rootClass = analyzeType
rootObj = rootClass.factory()
rootObj.build(rootNode, gds_collector_=gds_collector)
# Enable Python to collect the space used by the DOM.
@ -1618,6 +1618,6 @@ NamespaceToDefMappings_ = {'http://www.w3.org/XML/1998/namespace': []}
__all__ = [
"CompoundType",
"DoxygenType",
"analyzeType",
"MemberType"
]

View File

@ -1,5 +1,5 @@
# An minimal example showing how to use the python doxmlparser module to read
# the XML output generated by doxygen for a project and dump it to the output again.
# the XML output generated by analyze for a project and dump it to the output again.
import sys

View File

@ -1,5 +1,5 @@
# An example showing how to use the python doxmlparser module to extract some metrics from
# the XML output generated by doxygen for a project.
# the XML output generated by analyze for a project.
import sys

View File

@ -8,7 +8,7 @@
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# Documents produced by analyze are derivative works derived from the
# input used in their production; they are not affected by this license.
import sys

View File

@ -20,11 +20,11 @@ with open('requirements.txt') as f:
setup(
name='doxmlparser',
version=version,
description='Python API to access doxygen generated XML output',
description='Python API to access analyze generated XML output',
long_description=readme,
author='Dimitri van Heesch',
author_email='doxygen@gmail.com',
url='https://github.com/doxygen/doxygen/addon/doxmlparser',
author_email='analyze@gmail.com',
url='https://github.com/analyze/analyze/addon/doxmlparser',
license=license,
packages=find_packages(exclude=('tests', 'docs')),
install_requires=requirements

View File

@ -1,10 +0,0 @@
.TH DOXYPARSE "1" "DATE" "doxyparse VERSION" "User Commands"
.SH NAME
doxyparse \- parse and dumps information about the code
.SH SYNOPSIS
.B doxyparse
[\fIsource file\fR...]
.SH DESCRIPTION
Parses source code and dumps the dependencies between the code elements.
.SH SEE ALSO
doxygen(1), doxytag(1), doxywizard(1).

View File

@ -1,3 +0,0 @@
Doxywizard is a graphical front-end to read/edit/write doxygen configuration
files and to launch doxygen. It requires Qt version 4.3 or higher.

View File

@ -19,7 +19,7 @@ if(enable_coverage)
-P ${PROJECT_SOURCE_DIR}/cmake/SearchReplace.cmake
COMMAND ${GENHTML_PATH} --rc genhtml_branch_coverage=1
--function-coverage --branch-coverage
--title "Doxygen Coverage Report" --num-spaces 2
--title "analyze Coverage Report" --num-spaces 2
--legend --prefix ${PROJECT_SOURCE_DIR} --demangle-cpp
--output-directory cov_output cov.info.final
COMMAND ${CMAKE_COMMAND} -E remove cov.info cov.info.cleaned cov.info.final

View File

@ -0,0 +1,96 @@
# analyze_version.cmake
#
# This file defines the functions and targets needed to monitor
# analyze VERSION file.
#
# The behavior of this script can be modified by defining any of these variables:
#
# PRE_CONFIGURE_analyze_VERSION_FILE (REQUIRED)
# -- The path to the file that'll be configured.
#
# POST_CONFIGURE_analyze_VERSION_FILE (REQUIRED)
# -- The path to the configured PRE_CONFIGURE_analyze_VERSION_FILE.
#
# analz_STATE_FILE (OPTIONAL)
# -- The path to the file used to store the analyze version information.
#
# This file is based on git_watcher.cmake
# Short hand for converting paths to absolute.
macro(PATH_TO_ABSOLUTE var_name)
get_filename_component(${var_name} "${${var_name}}" ABSOLUTE)
endmacro()
# Check that a required variable is set.
macro(CHECK_REQUIRED_VARIABLE var_name)
if(NOT DEFINED ${var_name})
message(FATAL_ERROR "The \"${var_name}\" variable must be defined.")
endif()
PATH_TO_ABSOLUTE(${var_name})
endmacro()
# Check that an optional variable is set, or, set it to a default value.
macro(CHECK_OPTIONAL_VARIABLE var_name default_value)
if(NOT DEFINED ${var_name})
set(${var_name} ${default_value})
endif()
PATH_TO_ABSOLUTE(${var_name})
endmacro()
CHECK_REQUIRED_VARIABLE(PRE_CONFIGURE_analyze_VERSION_FILE)
CHECK_REQUIRED_VARIABLE(POST_CONFIGURE_analyze_VERSION_FILE)
CHECK_OPTIONAL_VARIABLE(analz_STATE_FILE "${PROJECT_SOURCE_DIR}/VERSION")
# Function: analyzeStateChangedAction
# Description: this function is executed when the
# analyze version file has changed.
function(analyzeStateChangedAction _state_as_list)
# Set variables by index, then configure the file w/ these variables defined.
LIST(GET _state_as_list 0 analyze_VERSION)
configure_file("${PRE_CONFIGURE_analyze_VERSION_FILE}" "${POST_CONFIGURE_analyze_VERSION_FILE}" @ONLY)
endfunction()
# Function: SetupanalzMonitoring
# Description: this function sets up custom commands that make the build system
# check the analyze version file before every build. If it has
# changed, then a file is configured.
function(SetupanalzMonitoring)
add_custom_target(check_analyze_version
ALL
DEPENDS ${PRE_CONFIGURE_analyze_VERSION_FILE}
BYPRODUCTS ${POST_CONFIGURE_analyze_VERSION_FILE}
COMMENT "Checking the analyze version for changes..."
COMMAND
${CMAKE_COMMAND}
-D_BUILD_TIME_CHECK_analz=TRUE
-Danalz_STATE_FILE=${analz_STATE_FILE}
-DPRE_CONFIGURE_analyze_VERSION_FILE=${PRE_CONFIGURE_analyze_VERSION_FILE}
-DPOST_CONFIGURE_analyze_VERSION_FILE=${POST_CONFIGURE_analyze_VERSION_FILE}
-P "${CMAKE_CURRENT_LIST_FILE}")
endfunction()
# Function: Main
# Description: primary entry-point to the script. Functions are selected based
# on whether it's configure or build time.
function(Main)
file(STRINGS "${analz_STATE_FILE}" analyze_VERSION)
if(_BUILD_TIME_CHECK_analz)
# Check if the analyze version file has changed.
# If so, run the change action.
if(${analz_STATE_FILE} IS_NEWER_THAN ${POST_CONFIGURE_analyze_VERSION_FILE})
analyzeStateChangedAction("${analyze_VERSION}")
endif()
else()
# >> Executes at configure time.
SetupanalzMonitoring()
analyzeStateChangedAction("${analyze_VERSION}")
endif()
endfunction()
# And off we go...
Main()

View File

@ -1,96 +0,0 @@
# doxygen_version.cmake
#
# This file defines the functions and targets needed to monitor
# doxygen VERSION file.
#
# The behavior of this script can be modified by defining any of these variables:
#
# PRE_CONFIGURE_DOXYGEN_VERSION_FILE (REQUIRED)
# -- The path to the file that'll be configured.
#
# POST_CONFIGURE_DOXYGEN_VERSION_FILE (REQUIRED)
# -- The path to the configured PRE_CONFIGURE_DOXYGEN_VERSION_FILE.
#
# DOXY_STATE_FILE (OPTIONAL)
# -- The path to the file used to store the doxygen version information.
#
# This file is based on git_watcher.cmake
# Short hand for converting paths to absolute.
macro(PATH_TO_ABSOLUTE var_name)
get_filename_component(${var_name} "${${var_name}}" ABSOLUTE)
endmacro()
# Check that a required variable is set.
macro(CHECK_REQUIRED_VARIABLE var_name)
if(NOT DEFINED ${var_name})
message(FATAL_ERROR "The \"${var_name}\" variable must be defined.")
endif()
PATH_TO_ABSOLUTE(${var_name})
endmacro()
# Check that an optional variable is set, or, set it to a default value.
macro(CHECK_OPTIONAL_VARIABLE var_name default_value)
if(NOT DEFINED ${var_name})
set(${var_name} ${default_value})
endif()
PATH_TO_ABSOLUTE(${var_name})
endmacro()
CHECK_REQUIRED_VARIABLE(PRE_CONFIGURE_DOXYGEN_VERSION_FILE)
CHECK_REQUIRED_VARIABLE(POST_CONFIGURE_DOXYGEN_VERSION_FILE)
CHECK_OPTIONAL_VARIABLE(DOXY_STATE_FILE "${PROJECT_SOURCE_DIR}/VERSION")
# Function: DoxygenStateChangedAction
# Description: this function is executed when the
# doxygen version file has changed.
function(DoxygenStateChangedAction _state_as_list)
# Set variables by index, then configure the file w/ these variables defined.
LIST(GET _state_as_list 0 DOXYGEN_VERSION)
configure_file("${PRE_CONFIGURE_DOXYGEN_VERSION_FILE}" "${POST_CONFIGURE_DOXYGEN_VERSION_FILE}" @ONLY)
endfunction()
# Function: SetupDoxyMonitoring
# Description: this function sets up custom commands that make the build system
# check the doxygen version file before every build. If it has
# changed, then a file is configured.
function(SetupDoxyMonitoring)
add_custom_target(check_doxygen_version
ALL
DEPENDS ${PRE_CONFIGURE_DOXYGEN_VERSION_FILE}
BYPRODUCTS ${POST_CONFIGURE_DOXYGEN_VERSION_FILE}
COMMENT "Checking the doxygen version for changes..."
COMMAND
${CMAKE_COMMAND}
-D_BUILD_TIME_CHECK_DOXY=TRUE
-DDOXY_STATE_FILE=${DOXY_STATE_FILE}
-DPRE_CONFIGURE_DOXYGEN_VERSION_FILE=${PRE_CONFIGURE_DOXYGEN_VERSION_FILE}
-DPOST_CONFIGURE_DOXYGEN_VERSION_FILE=${POST_CONFIGURE_DOXYGEN_VERSION_FILE}
-P "${CMAKE_CURRENT_LIST_FILE}")
endfunction()
# Function: Main
# Description: primary entry-point to the script. Functions are selected based
# on whether it's configure or build time.
function(Main)
file(STRINGS "${DOXY_STATE_FILE}" DOXYGEN_VERSION)
if(_BUILD_TIME_CHECK_DOXY)
# Check if the doxygen version file has changed.
# If so, run the change action.
if(${DOXY_STATE_FILE} IS_NEWER_THAN ${POST_CONFIGURE_DOXYGEN_VERSION_FILE})
DoxygenStateChangedAction("${DOXYGEN_VERSION}")
endif()
else()
# >> Executes at configure time.
SetupDoxyMonitoring()
DoxygenStateChangedAction("${DOXYGEN_VERSION}")
endif()
endfunction()
# And off we go...
Main()

View File

@ -6,9 +6,9 @@
# - https://sourceforge.net/p/klusters/klusters/ci/master/tree/CMakeLists.txt
#
# This cmake script should generate same packages (deb,rpm) as:
# - https://mirror.debian.ikoula.com/debian/pool/main/d/doxygen
# - http://archive.ubuntu.com/ubuntu/pool/main/d/doxygen (http://old-releases.ubuntu.com/ubuntu/pool/main/d/doxygen)
# - https://rpmfind.net/linux/rpm2html/search.php?query=doxygen
# - https://mirror.debian.ikoula.com/debian/pool/main/d/analyze
# - http://archive.ubuntu.com/ubuntu/pool/main/d/analyze (http://old-releases.ubuntu.com/ubuntu/pool/main/d/analyze)
# - https://rpmfind.net/linux/rpm2html/search.php?query=analyze
set(CPACK_STRIP_FILES ON)
set(CPACK_PACKAGE_NAME ${PROJECT_NAME} )
@ -16,10 +16,10 @@ set(CPACK_PACKAGE_VERSION ${VERSION})
set(CPACK_PACKAGE_CONTACT "Dimitri van Heesch")
set(CPACK_PACKAGE_VENDOR "Dimitri van Heesch")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Generate documentation from C, C++, Java, Python and other languages")
set(CPACK_PACKAGE_DESCRIPTION "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources.
set(CPACK_PACKAGE_DESCRIPTION "analyze is the de facto standard tool for generating documentation from annotated C++ sources.
But many other popular programming languages are supported:
C, Objective-C, C#, PHP, Java, Python, Fortran, D (some extent), and IDL (Corba, Microsoft, and UNO/OpenOffice flavors).
Doxygen also supports the hardware description language VHDL.
analyze also supports the hardware description language VHDL.
.
Three usages:
.
@ -31,9 +31,9 @@ set(CPACK_PACKAGE_DESCRIPTION "Doxygen is the de facto standard tool for generat
Also generate include dependency graphs, inheritance diagrams, and collaboration diagrams.
Useful to quickly understand code organization in large source distributions.
.
3. Create normal documentation (as the doxygen user manual and web-site http://doxygen.org/)
3. Create normal documentation (as the analyze user manual and web-site http://analyze.org/)
.
Install the doxygen-latex package to build LaTeX based documents.
Install the analyze-latex package to build LaTeX based documents.
Install the libclang1 package to use the 'clang assisted parsing'.")
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
@ -43,28 +43,28 @@ set(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README.md)
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
set(CPACK_RPM_PACKAGE_GROUP "Development/Tools")
set(CPACK_RPM_PACKAGE_URL "https://doxygen.org/")
set(CPACK_RPM_PACKAGE_URL "https://analyze.org/")
set(CPACK_RPM_PACKAGE_REQUIRES "/sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96")
set(CPACK_RPM_PACKAGE_SUGGESTS "doxygen-latex, doxygen-doc, doxygen-gui, graphviz, libclang1")
set(CPACK_RPM_PACKAGE_SUGGESTS "analyze-latex, analyze-doc, analyze-gui, graphviz, libclang1")
# Variables specific to CPack DEB generator
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://doxygen.org/")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://analyze.org/")
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS YES) #set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libclang1-3.6, libgcc1, libstdc++6, libxapian22")
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "doxygen-latex, doxygen-doc, doxygen-gui, graphviz, libclang1")
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "analyze-latex, analyze-doc, analyze-gui, graphviz, libclang1")
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "graphviz (<< 1.12)")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Matthias Klose <doko@debian.org>") # Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
# Variables specific to CPack NSIS generator
set(CPACK_NSIS_MUI_ICON ${CMAKE_CURRENT_SOURCE_DIR}/addon/doxywizard/doxywizard.ico)
set(CPACK_NSIS_URL_INFO_ABOUT "https://doxygen.org/")
set(CPACK_NSIS_MUI_ICON ${CMAKE_CURRENT_SOURCE_DIR}/addon/analzwizard/analzwizard.ico)
set(CPACK_NSIS_URL_INFO_ABOUT "https://analyze.org/")
set(CPACK_NSIS_PACKAGE_NAME ${PROJECT_NAME})
# Variables specific to CPack DragNDrop generator
set(CPACK_DMG_FORMAT "UDBZ") # UDRO=UDIF-Read-Only, UDZO=zlib, UDBZ=bzip2 -- See hdiutil
set(CPACK_DMG_VOLUME_NAME ${PROJECT_NAME})
set(CPACK_DMG_BACKGROUND_IMAGE ${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen_logo.eps)
set(CPACK_DMG_BACKGROUND_IMAGE ${CMAKE_CURRENT_SOURCE_DIR}/doc/analyze_logo.eps)
if(WIN32)
set(CPACK_GENERATOR "ZIP;NSIS")

View File

@ -74,7 +74,7 @@ struct DeflateTrackBothSize: public DeflateTrackTagBase{};
/// The rest of the file is just for the curious about implementation.
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#ifndef analyze_SHOULD_SKIP_THIS
namespace gunzip_ns
{
//#define DO_DEFDB_DUMPING
@ -1427,4 +1427,4 @@ auto Deflate(T&&... args)
return gunzip_ns::DeflateInputDispatch<0>(gunzip_ns::dummy{}, std::forward<T>(args)...);
}
#endif /* #ifndef DOXYGEN_SHOULD_SKIP_THIS */
#endif /* #ifndef analyze_SHOULD_SKIP_THIS */

8
deps/jquery/README vendored
View File

@ -1,4 +1,4 @@
Doxygen's jquery.js script is composed of minified versions of the following
analyze's jquery.js script is composed of minified versions of the following
packages:
- jquery 3.6.0: https://jquery.com/download/
- jquery.ui 1.13.2: https://github.com/jquery/jquery-ui
@ -11,10 +11,10 @@ packages:
- jquery.touchpunch: 0.2.3: http://touchpunch.furf.com/ + fix for issue 303
- jquery.smartmenus: 1.1.0: https://www.smartmenus.org/
The Makefile will built the jquery.js files used by doxygen.
The Makefile will built the jquery.js files used by analyze.
Note that there is a performance issue in the default powertip version.
See https://github.com/stevenbenner/jquery-powertip/issues/178
Until that is fixed a modified version is shipped with doxygen. This version
removes the "destroy" functionality which was not used by doxygen anyway.
Until that is fixed a modified version is shipped with analyze. This version
removes the "destroy" functionality which was not used by analyze anyway.

View File

@ -711,7 +711,7 @@ static unsigned encodeLZ77_brute(uivector* out, const unsigned char* in, size_t
/*using pointer instead of vector for input makes it faster when NOT using optimization when compiling; no influence if optimization is used*/
for(pos = 0; pos < size; pos++)
{
/*Phase 1: doxygen images often have long runs of the same color, try to find them*/
/*Phase 1: analyze images often have long runs of the same color, try to find them*/
const int minLength = 4; // Minimum length for a run to make sense
if(pos < size - minLength * 4)

View File

@ -1,10 +1,10 @@
Issue 6880 (https://github.com/doxygen/doxygen/issues/6880) required fixes to the mscgen tool.
Since this tool is no longer maintained, it was decided to build mscgen as part of doxygen.
Issue 6880 (https://github.com/analyze/analyze/issues/6880) required fixes to the mscgen tool.
Since this tool is no longer maintained, it was decided to build mscgen as part of analyze.
This directory contains the mscgen code.
Since mscgen depends on libgd for PNG output, a part of the gd library is included as well.
Instead of using libpng as PNG generator, the lodepng library is used. This PNG library was
already part of doxygen. Module gd_lodepng.c was added to make libgd use lodepng.
already part of analyze. Module gd_lodepng.c was added to make libgd use lodepng.
Original copyright statement follows:

View File

@ -247,7 +247,7 @@ void lex_resetparser()
lex_utf8 = FALSE;
#ifdef FLEX_DEBUG
// in case of a debug build stll disable debug information
// as it disrupts the normal doxygen output
// as it disrupts the normal analyze output
yy_flex_debug = 0;
#endif
}

View File

@ -4,4 +4,4 @@ This directory contains the "amalgamation" sources of sqlite3 version 3.42.0 as
can be found here: https://www.sqlite.org/download.html
Sqlite3 is used when option `GENERATE_SQLITE3` is enabled to generate sqlite3 database
with the symbols found a project parsed by doxygen.
with the symbols found a project parsed by analyze.

6
deps/svg/README vendored
View File

@ -1,9 +1,9 @@
Doxygen's svg.min.js script is composed of minified versions of the following
analyze's svg.min.js script is composed of minified versions of the following
packages:
- svgdotjs 3.1.2: https://github.com/svgdotjs/svg.js
- svgpan-1.2mod.js 1.2: https://github.com/aleofreddi/svgpan
The Makefile will built the svg.min.js file used by doxygen.
The Makefile will built the svg.min.js file used by analyze.
Note that svgpan.js is heavily modified for use with doxygen,
Note that svgpan.js is heavily modified for use with analyze,
so it cannot easily be upgraded to newer versions.

View File

@ -1,6 +1,6 @@
/*!
@licstart The following is the entire license notice for the JavaScript code in this file.
The code below is based on SVGPan Library 1.2 and was modified for doxygen
The code below is based on SVGPan Library 1.2 and was modified for analyze
to support both zooming and panning via the mouse and via embedded buttons.
This code is licensed under the following BSD license:

View File

@ -8,7 +8,7 @@
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# Documents produced by analyze are derivative works derived from the
# input used in their production; they are not affected by this license.
include (${TOP}/cmake/version.cmake)
@ -17,26 +17,26 @@ string(TIMESTAMP YEAR "%Y")
# Always install man pages
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/man)
configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen.1 ${PROJECT_BINARY_DIR}/man/doxygen.1)
configure_file(${PROJECT_SOURCE_DIR}/doc/doxywizard.1 ${PROJECT_BINARY_DIR}/man/doxywizard.1)
configure_file(${PROJECT_SOURCE_DIR}/doc/doxysearch.1 ${PROJECT_BINARY_DIR}/man/doxysearch.1)
configure_file(${PROJECT_SOURCE_DIR}/doc/doxyindexer.1 ${PROJECT_BINARY_DIR}/man/doxyindexer.1)
configure_file(${PROJECT_SOURCE_DIR}/doc/analyze.1 ${PROJECT_BINARY_DIR}/man/analyze.1)
configure_file(${PROJECT_SOURCE_DIR}/doc/analzwizard.1 ${PROJECT_BINARY_DIR}/man/analzwizard.1)
configure_file(${PROJECT_SOURCE_DIR}/doc/analzsearch.1 ${PROJECT_BINARY_DIR}/man/analzsearch.1)
configure_file(${PROJECT_SOURCE_DIR}/doc/analzindexer.1 ${PROJECT_BINARY_DIR}/man/analzindexer.1)
include(GNUInstallDirs)
install(FILES
"${PROJECT_BINARY_DIR}/man/doxygen.1"
"${PROJECT_BINARY_DIR}/man/analyze.1"
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
if (build_search)
install(FILES
"${PROJECT_BINARY_DIR}/man/doxyindexer.1"
"${PROJECT_BINARY_DIR}/man/doxysearch.1"
"${PROJECT_BINARY_DIR}/man/analzindexer.1"
"${PROJECT_BINARY_DIR}/man/analzsearch.1"
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
endif()
if (build_wizard)
install(FILES
"${PROJECT_BINARY_DIR}/man/doxywizard.1"
"${PROJECT_BINARY_DIR}/man/analzwizard.1"
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
endif()
@ -50,15 +50,15 @@ find_program(EPSTOPDF NAMES epstopdf )
find_program(PDFLATEX NAMES pdflatex )
find_program(MAKEINDEX NAMES makeindex )
if (doxygen_BINARY_DIR)
set(DOXYGEN_EXECUTABLE ${doxygen_BINARY_DIR}/bin/doxygen)
if (analyze_BINARY_DIR)
set(analyze_EXECUTABLE ${analyze_BINARY_DIR}/bin/analyze)
else()
# when building only the doxygen_doc, from the doc/ directory, the
# doxygen project variables are unknown so look for doxygen in PATH
find_package(Doxygen)
# when building only the analyze_doc, from the doc/ directory, the
# analyze project variables are unknown so look for analyze in PATH
find_package(analyze)
endif()
set(DOC_INSTALL_DIR "share/doc/packages/doxygen" CACHE STRING "Relative path where to install the documentation")
set(DOC_INSTALL_DIR "share/doc/packages/analyze" CACHE STRING "Relative path where to install the documentation")
set(DOC_FILES
arch.dox
archoverview.eps
@ -71,21 +71,21 @@ set(DOC_FILES
diagrams.dox
docblocks.dox
additional.dox
Doxyfile
doxygen_manual.css
doxygen_manual_chm.css
doxygen_usage.dox
doxywizard_expert.png
doxywizard_main.png
doxywizard_menu_file.png
doxywizard_menu_settings.png
doxywizard_menu_help.png
doxywizard_page1.png
doxywizard_page2.png
doxywizard_page3.png
doxywizard_page4.png
doxywizard_run.png
doxywizard_usage.dox
analzfile
analyze_manual.css
analyze_manual_chm.css
analyze_usage.dox
analzwizard_expert.png
analzwizard_main.png
analzwizard_menu_file.png
analzwizard_menu_settings.png
analzwizard_menu_help.png
analzwizard_page1.png
analzwizard_page2.png
analzwizard_page3.png
analzwizard_page4.png
analzwizard_run.png
analzwizard_usage.dox
expert_bool.png
expert_enum.png
expert_int.png
@ -133,7 +133,7 @@ set(DOC_FILES
maintainers.txt
translator.py
smile.png
doxygen_logo.svg
analyze_logo.svg
)
set(DOC_FILES_IMAGES
@ -146,7 +146,7 @@ set(DOC_FILES_IMAGES
if (build_doc_chm)
set(DOC_FILES_CHM
Doxyfile_chm
analzfile_chm
)
endif ()
@ -167,8 +167,8 @@ endforeach()
foreach (f ${DOC_FILES_IMAGES})
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/doc/images/${f}
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/addon/doxywizard/images/${f} ${PROJECT_BINARY_DIR}/doc/images/
DEPENDS ${PROJECT_SOURCE_DIR}/addon/doxywizard/images/${f}
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/addon/analzwizard/images/${f} ${PROJECT_BINARY_DIR}/doc/images/
DEPENDS ${PROJECT_SOURCE_DIR}/addon/analzwizard/images/${f}
)
set_source_files_properties(${PROJECT_BINARY_DIR}/doc/images/${f} PROPERTIES GENERATED 1)
list(APPEND OUT_DOC_FILES "${PROJECT_BINARY_DIR}/doc/images/${f}")
@ -184,16 +184,16 @@ list(APPEND OUT_DOC_CHM_FILES "${PROJECT_BINARY_DIR}/doc/${f}")
endforeach()
configure_file(${PROJECT_SOURCE_DIR}/doc/manual.sty ${PROJECT_BINARY_DIR}/doc/manual.sty COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/doc/doxygen_manual.tex ${PROJECT_BINARY_DIR}/doc/doxygen_manual.tex COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/templates/icon/doxygen.ico ${PROJECT_BINARY_DIR}/doc/doxygen.ico COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/doc/analyze_manual.tex ${PROJECT_BINARY_DIR}/doc/analyze_manual.tex COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/templates/icon/analyze.ico ${PROJECT_BINARY_DIR}/doc/analyze.ico COPYONLY)
# Call the main page "Introduction" in LaTeX, which is more appropriate for that format.
set(MAINPAGE_TITLE Doxygen)
set(MAINPAGE_TITLE analyze)
configure_file(${PROJECT_SOURCE_DIR}/doc/index.dox ${PROJECT_BINARY_DIR}/doc/index_html.dox)
set(MAINPAGE_TITLE Introduction)
configure_file(${PROJECT_SOURCE_DIR}/doc/index.dox ${PROJECT_BINARY_DIR}/doc/index_latex.dox)
# doc/language.dox (see tag Doxyfile:INPUT)
# doc/language.dox (see tag analzfile:INPUT)
add_custom_command(
COMMAND ${Python_EXECUTABLE} translator.py --doc ${PROJECT_SOURCE_DIR}
DEPENDS ${PROJECT_SOURCE_DIR}/VERSION ${PROJECT_SOURCE_DIR}/doc/maintainers.txt ${PROJECT_SOURCE_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py ${LANG_FILES}
@ -202,7 +202,7 @@ add_custom_command(
)
set_source_files_properties(language.dox PROPERTIES GENERATED 1)
# doc/config.dox (see tag Doxyfile:INPUT)
# doc/config.dox (see tag analzfile:INPUT)
add_custom_command(
COMMAND ${Python_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.dox
DEPENDS ${TOP}/src/config.xml ${TOP}/src/configgen.py
@ -211,39 +211,39 @@ add_custom_command(
)
set_source_files_properties(config.dox PROPERTIES GENERATED 1)
################################################################################
add_custom_target(run_doxygen
add_custom_target(run_analyze
COMMENT "Generating Latex and HTML documentation."
COMMAND ${CMAKE_COMMAND} -E env VERSION=${VERSION} INDEX_DOC=index_html.dox GENERATE_HTML=YES GENERATE_LATEX=NO ${DOXYGEN_EXECUTABLE}
COMMAND ${CMAKE_COMMAND} -E env VERSION=${VERSION} INDEX_DOC=index_latex.dox GENERATE_HTML=NO GENERATE_LATEX=YES ${DOXYGEN_EXECUTABLE}
COMMAND ${CMAKE_COMMAND} -E env VERSION=${VERSION} INDEX_DOC=index_html.dox GENERATE_HTML=YES GENERATE_LATEX=NO ${analyze_EXECUTABLE}
COMMAND ${CMAKE_COMMAND} -E env VERSION=${VERSION} INDEX_DOC=index_latex.dox GENERATE_HTML=NO GENERATE_LATEX=YES ${analyze_EXECUTABLE}
DEPENDS ${PROJECT_BINARY_DIR}/doc/language.dox ${PROJECT_BINARY_DIR}/doc/config.dox
DEPENDS ${OUT_DOC_FILES}
DEPENDS examples
DEPENDS doxygen
DEPENDS analyze
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
)
add_custom_target(doxygen_pdf
COMMENT "Generating Doxygen Manual PDF."
add_custom_target(analyze_pdf
COMMENT "Generating analyze Manual PDF."
COMMAND ${CMAKE_COMMAND} -E remove refman.tex
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/doc/manual.sty .
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/doxygen_logo.pdf .
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/latex ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/doc/replace_version.py "${PROJECT_BINARY_DIR}/doc/doxygen_manual.tex" "${PROJECT_BINARY_DIR}/latex/doxygen_manual.tex" "${VERSION}"
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/doc/analyze_logo.pdf .
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/latex ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/doc/replace_version.py "${PROJECT_BINARY_DIR}/doc/analyze_manual.tex" "${PROJECT_BINARY_DIR}/latex/analyze_manual.tex" "${VERSION}"
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/latex ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/doc/replace_version.py "${PROJECT_BINARY_DIR}/doc/manual.sty" "${PROJECT_BINARY_DIR}/latex/manual.sty" "${VERSION}"
COMMAND ${PDFLATEX} -shell-escape doxygen_manual.tex || (${CMAKE_COMMAND} -E echo "See ${PROJECT_BINARY_DIR}/latex/doxygen_manual.log for error messages" && ${CMAKE_COMMAND} -E false)
COMMAND ${MAKEINDEX} doxygen_manual.idx
COMMAND ${PDFLATEX} -shell-escape doxygen_manual.tex || (${CMAKE_COMMAND} -E echo "See ${PROJECT_BINARY_DIR}/latex/doxygen_manual.log for error messages" && ${CMAKE_COMMAND} -E false)
COMMAND ${MAKEINDEX} doxygen_manual.idx
COMMAND ${PDFLATEX} -shell-escape doxygen_manual.tex || (${CMAKE_COMMAND} -E echo "See ${PROJECT_BINARY_DIR}/latex/doxygen_manual.log for error messages" && ${CMAKE_COMMAND} -E false)
DEPENDS ${PROJECT_BINARY_DIR}/doc/manual.sty ${PROJECT_SOURCE_DIR}/doc/doxygen_logo.pdf
DEPENDS run_doxygen ${PROJECT_SOURCE_DIR}/doc/replace_version.py ${PROJECT_BINARY_DIR}/doc/doxygen_manual.tex
COMMAND ${PDFLATEX} -shell-escape analyze_manual.tex || (${CMAKE_COMMAND} -E echo "See ${PROJECT_BINARY_DIR}/latex/analyze_manual.log for error messages" && ${CMAKE_COMMAND} -E false)
COMMAND ${MAKEINDEX} analyze_manual.idx
COMMAND ${PDFLATEX} -shell-escape analyze_manual.tex || (${CMAKE_COMMAND} -E echo "See ${PROJECT_BINARY_DIR}/latex/analyze_manual.log for error messages" && ${CMAKE_COMMAND} -E false)
COMMAND ${MAKEINDEX} analyze_manual.idx
COMMAND ${PDFLATEX} -shell-escape analyze_manual.tex || (${CMAKE_COMMAND} -E echo "See ${PROJECT_BINARY_DIR}/latex/analyze_manual.log for error messages" && ${CMAKE_COMMAND} -E false)
DEPENDS ${PROJECT_BINARY_DIR}/doc/manual.sty ${PROJECT_SOURCE_DIR}/doc/analyze_logo.pdf
DEPENDS run_analyze ${PROJECT_SOURCE_DIR}/doc/replace_version.py ${PROJECT_BINARY_DIR}/doc/analyze_manual.tex
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/latex
)
add_custom_target(docs
DEPENDS ${PROJECT_BINARY_DIR}/man/doxygen.1
${PROJECT_BINARY_DIR}/man/doxywizard.1
${PROJECT_BINARY_DIR}/man/doxysearch.1
${PROJECT_BINARY_DIR}/man/doxyindexer.1
doxygen_pdf
DEPENDS ${PROJECT_BINARY_DIR}/man/analyze.1
${PROJECT_BINARY_DIR}/man/analzwizard.1
${PROJECT_BINARY_DIR}/man/analzsearch.1
${PROJECT_BINARY_DIR}/man/analzindexer.1
analyze_pdf
VERBATIM
)
@ -252,44 +252,44 @@ add_custom_target(docs
if (build_doc_chm)
add_custom_target(docs_chm
COMMENT "Generating CHM documentation."
COMMAND ${CMAKE_COMMAND} -E env VERSION=${VERSION} HTML_HELP_COMPILER=${HTML_HELP_COMPILER} INDEX_DOC=index_html.dox ${DOXYGEN_EXECUTABLE} Doxyfile_chm
COMMAND ${CMAKE_COMMAND} -E env VERSION=${VERSION} HTML_HELP_COMPILER=${HTML_HELP_COMPILER} INDEX_DOC=index_html.dox ${analyze_EXECUTABLE} analzfile_chm
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_BINARY_DIR}/chm/html/examples ${PROJECT_BINARY_DIR}/chm/examples
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/chm/index.hhp ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp
COMMAND ${CMAKE_COMMAND} -E echo "import os" > ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo "for root, dirs, files in os.walk('examples'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo " for file in files:" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo " if file.endswith('.html') or file.endswith('.png') or file.endswith('.svg') or file.endswith('.css') or file.endswith('.gif'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo " print(os.path.join(root, file))" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${Python_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm "${HTML_HELP_COMPILER}" doxygen_manual.hhp || echo > nul
COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_BINARY_DIR}/chm/index.hhp ${PROJECT_BINARY_DIR}/chm/analyze_manual.hhp
COMMAND ${CMAKE_COMMAND} -E echo "import os" > ${PROJECT_BINARY_DIR}/chm/analyze_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo "for root, dirs, files in os.walk('examples'):" >> ${PROJECT_BINARY_DIR}/chm/analyze_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo " for file in files:" >> ${PROJECT_BINARY_DIR}/chm/analyze_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo " if file.endswith('.html') or file.endswith('.png') or file.endswith('.svg') or file.endswith('.css') or file.endswith('.gif'):" >> ${PROJECT_BINARY_DIR}/chm/analyze_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E echo " print(os.path.join(root, file))" >> ${PROJECT_BINARY_DIR}/chm/analyze_manual_examples_chm.py
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${Python_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/analyze_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/analyze_manual.hhp
COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm "${HTML_HELP_COMPILER}" analyze_manual.hhp || echo > nul
COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/analyze_manual.chm
DEPENDS ${PROJECT_BINARY_DIR}/doc/language.dox ${PROJECT_BINARY_DIR}/doc/config.dox
DEPENDS ${OUT_DOC_FILES}
DEPENDS ${OUT_DOC_CHM_FILES}
DEPENDS examples_chm
DEPENDS doxygen
DEPENDS analyze
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
)
endif ()
################################################################################
install(CODE "if(NOT EXISTS \"${PROJECT_BINARY_DIR}/latex/doxygen_manual.pdf\")
install(CODE "if(NOT EXISTS \"${PROJECT_BINARY_DIR}/latex/analyze_manual.pdf\")
message(FATAL_ERROR \"\nTerminating:\n documentation has not been generated, \n create documentation by using the 'docs' target followed by an 'install'\n\")
endif()"
)
install(FILES
"${PROJECT_BINARY_DIR}/latex/doxygen_manual.pdf"
"${PROJECT_BINARY_DIR}/latex/analyze_manual.pdf"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}"
)
if (build_doc_chm)
install(CODE "if(NOT EXISTS \"${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm\")
install(CODE "if(NOT EXISTS \"${PROJECT_BINARY_DIR}/chm/analyze_manual.chm\")
message(FATAL_ERROR \"\nTerminating:\n CHM documentation has not been generated, \n create CHM documentation by using the 'docs_chm' target followed by an 'install'\n\")
endif()"
)
install(FILES
"${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm"
"${PROJECT_BINARY_DIR}/chm/analyze_manual.chm"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${DOC_INSTALL_DIR}"
)
endif ()

View File

@ -9,12 +9,12 @@
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# Documents produced by analyze are derivative works derived from the
# input used in their production; they are not affected by this license.
PROJECT_NAME = "Manual"
PROJECT_LOGO = doxygen_logo.svg height=35px
PROJECT_ICON = ../doc/doxygen.ico
PROJECT_LOGO = analyze_logo.svg height=35px
PROJECT_ICON = ../doc/analyze.ico
OUTPUT_DIRECTORY = ..
HTML_HEADER =
HTML_FOOTER =
@ -41,7 +41,7 @@ IMAGE_PATH = . images
INPUT = $(INDEX_DOC) install.dox starting.dox docblocks.dox additional.dox \
markdown.dox lists.dox grouping.dox formulas.dox tables.dox diagrams.dox preprocessing.dox \
autolink.dox output.dox searching.dox extsearch.dox customize.dox custcmd.dox \
external.dox faq.dox trouble.dox features.dox doxygen_usage.dox doxywizard_usage.dox \
external.dox faq.dox trouble.dox features.dox analyze_usage.dox analzwizard_usage.dox \
config.dox commands.dox htmlcmds.dox xmlcmds.dox emojisup.dox language.dox \
perlmod.dox arch.dox changelog.dox
FILE_PATTERNS = *.cpp *.h
@ -53,8 +53,8 @@ SEARCHENGINE = YES
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
STRIP_CODE_COMMENTS = NO
HTML_EXTRA_STYLESHEET = doxygen_manual.css
HTML_EXTRA_FILES = doxygen_logo.svg
HTML_EXTRA_STYLESHEET = analyze_manual.css
HTML_EXTRA_FILES = analyze_logo.svg
HTML_EXTRA_FILES += translator_report.txt
ALIASES = LaTeX="\f({\LaTeX}\f)"
ALIASES += TeX="\f({\TeX}\f)"
@ -66,4 +66,4 @@ LATEX_BATCHMODE = YES
LATEX_EXTRA_STYLESHEET = manual.sty
LATEX_EMOJI_DIRECTORY = ../doc
WARN_AS_ERROR = FAIL_ON_WARNINGS
HTML_PROJECT_COOKIE = doxygen_docs
HTML_PROJECT_COOKIE = analyze_docs

View File

@ -7,10 +7,10 @@
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# Documents produced by Doxygen are derivative works derived from the
# Documents produced by analyze are derivative works derived from the
# input used in their production; they are not affected by this license.
@INCLUDE = Doxyfile
@INCLUDE = analzfile
GENERATE_LATEX = NO
HTML_OUTPUT = chm
HTML_COPY_CLIPBOARD = NO
@ -21,8 +21,8 @@
CHM_FILE = index.chm
BINARY_TOC = YES
FULL_SIDEBAR = NO
PROJECT_NAME = "Doxygen"
PROJECT_NAME = "analyze"
PROJECT_LOGO =
HTML_COLORSTYLE = LIGHT
SEARCHENGINE = NO
HTML_EXTRA_STYLESHEET = doxygen_manual_chm.css
HTML_EXTRA_STYLESHEET = analyze_manual_chm.css

View File

@ -8,7 +8,7 @@
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* Documents produced by analyze are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
@ -17,13 +17,13 @@
\section custom_pages Custom Pages
Doxygen can be also be used to create custom pages that are not part of the API of your library/program.
analyze can be also be used to create custom pages that are not part of the API of your library/program.
The purpose of such pages is to enrich your documentation with anything else that you think the user may find useful.
To create custom pages, use one of the supported file extension: `.dox`, `.txt`, or `.md`.
Doxygen will treat a .dox or .txt file as a C/C++ source file, and a .md file as a Markdown file.
analyze will treat a .dox or .txt file as a C/C++ source file, and a .md file as a Markdown file.
For a .dox or .txt file, one can use a single Doxygen comment, like so:
For a .dox or .txt file, one can use a single analyze comment, like so:
\c manual/index.dox
\code
@ -34,18 +34,18 @@ For a .dox or .txt file, one can use a single Doxygen comment, like so:
*/
\endcode
You'll note that the \ref cmdmainpage "\\mainpage" command was used, which tells Doxygen to use this page as, well, the main page.
You'll note that the \ref cmdmainpage "\\mainpage" command was used, which tells analyze to use this page as, well, the main page.
For other pages, prefix them with the \ref cmdpage "\\page" command.
By default Doxygen will not know about these custom files, so we'll need to let it know through the `INPUT` attribute in our
Doxyfile. For the about example add this line to your Doxyfile:
By default analyze will not know about these custom files, so we'll need to let it know through the `INPUT` attribute in our
analzfile. For the about example add this line to your analzfile:
\code
INPUT = manual/index.dox
\endcode
Next, we may want to add the instructions on how to build the project, so we create `manual/building/index.dox`.
As you read a bit more of the documentation, you will find out that Doxygen supports a
As you read a bit more of the documentation, you will find out that analyze supports a
subset of the \ref htmlcmds "HTML" tags, so we can write the following:
\code
@ -112,7 +112,7 @@ This is easy enough to set up, turn it on with
GENERATE_TREEVIEW = YES
\endcode
In your `Doxyfile`.
In your `analzfile`.
You'll recall that our \c manual/index.dox file is pretty bland, without any links pointing anywhere,
by using the \ref cmdref "\\ref" command we can add links between various topics, and doing so will automatically

86
doc/analzgen.1 Normal file
View File

@ -0,0 +1,86 @@
.TH analyze "1" "@DATE@" "analyze @VERSION@" "User Commands"
.SH NAME
analyze \- documentation system for various programming languages
.SH DESCRIPTION
analyze is a documentation system for C++, C, Java, Objective-C, IDL
(Corba and Microsoft flavors), Fortran, Python, VHDL and to some extent PHP, C#, and D.
.PP
You can use analyze in a number of ways:
.TP
1) Use analyze to generate a template configuration file*:
.IP
analyze [-s] \fB\-g\fR [configName]
.TP
2) Use analyze to update an old configuration file*:
.IP
analyze [-s] \fB\-u\fR [configName]
.TP
3) Use analyze to generate documentation using an existing configuration file*:
.IP
analyze [configName]
.TP
4) Use analyze to generate a template file controlling the layout of the generated documentation:
.IP
analyze \fB\-l\fR [layoutFileName]
.IP
.RS 0
In case layoutFileName is omitted analyzeLayout.xml will be used as filename.
If - is used for layoutFileName analyze will write to standard output.
.RE
.TP
5) Use analyze to generate a template style sheet file for RTF, HTML or Latex.
.IP
RTF:
analyze \fB\-w\fR rtf styleSheetFile
.IP
HTML:
analyze \fB\-w\fR html headerFile footerFile styleSheetFile [configFile]
.IP
LaTeX: analyze \fB\-w\fR latex headerFile footerFile styleSheetFile [configFile]
.TP
6) Use analyze to generate an rtf extensions file
.IP
RTF:
analyze \fB\-e\fR rtf extensionsFile
.IP
.RS 0
If - is used for extensionsFile analyze will write to standard output.
.RE
.TP
7) Use analyze to compare the used configuration file with the template configuration file
.IP
analyze \fB\-x\fR [configFile]
.TP
Use analyze to compare the used configuration file with the template configuration file
.RS 0
without replacing the environment variables or CMake type replacement variables
.RE
.IP
analyze \fB\-x_noenv\fR [configFile]
.TP
8) Use analyze to show a list of built-in emojis.
.IP
analyze \fB\-f\fR emoji outputFileName
.IP
.RS 0
If - is used for outputFileName analyze will write to standard output.
.RE
.PP
.RS 0
*) If \fB\-s\fR is specified the comments of the configuration items in the config file will be omitted.
If configName is omitted 'analzfile' will be used as a default.
If - is used for configFile analyze will write / read the configuration to /from standard output / input.
.RE
.PP
If \fB\-q\fR is used for a analyze documentation run, analyze will see this as if QUIET=YES has been set.
.PP
\fB\-v\fR print version string, \fB\-V\fR print extended version information
.PP
\fB\-h\fR,\fB\-?\fR prints usage help information
.PP
analyze \fB\-d\fR prints additional usage flags for debugging purposes
.PP
.SH AUTHOR
analyze version @VERSION@, Copyright Dimitri van Heesch 1997-@YEAR@
.SH SEE ALSO
analzwizard(1).

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -9,14 +9,14 @@
% for any purpose. It is provided "as is" without express or implied warranty.
% See the GNU General Public License for more details.
%
% Documents produced by Doxygen are derivative works derived from the
% Documents produced by analyze are derivative works derived from the
% input used in their production; they are not affected by this license.
\batchmode
\pdfminorversion=7
\pdfsuppresswarningpagegroup=1
\documentclass{book}
%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
%% moved from analyze.sty due to workaround for LaTex 2019 version and unmaintained tabu package
\usepackage{ifthen}
\ifx\requestedLaTeXdate\undefined
\usepackage{array}
@ -72,39 +72,39 @@
\usepackage{courier}
\usepackage[titles]{tocloft}
\usepackage{amssymb}
\usepackage{doxygen}
\usepackage{analyze}
\usepackage{manual}
%%
%gave problems when in doxygen.sty
%gave problems when in analyze.sty
\makeatletter
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
\makeatother
%%
% unfortunately constructs like:
% \renewcommand{\doxysection}[1]{\doxysubsection{##1}}
% using values from book.cls (see also doxygen.sty) and redefining sections to correct level.
% \renewcommand{\analzsection}[1]{\analzsubsection{##1}}
% using values from book.cls (see also analyze.sty) and redefining sections to correct level.
\makeatletter
\newenvironment{DoxygenSubAppendix}{%
\renewcommand\doxysection{\@startsection{subsection}{2}{\z@}%
\newenvironment{analyzeSubAppendix}{%
\renewcommand\analzsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\large\bfseries}}
\renewcommand\doxysubsection{\@startsection{subsubsection}{3}{\z@}%
\renewcommand\analzsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\renewcommand\doxysubsubsection{\@startsection{paragraph}{8}{\z@}%
\renewcommand\analzsubsubsection{\@startsection{paragraph}{8}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\raggedright\normalfont\normalsize\bfseries}}
\renewcommand\doxyparagraph{\@startsection{subparagraph}{9}{\parindent}%
\renewcommand\analzparagraph{\@startsection{subparagraph}{9}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\raggedright\normalfont\normalsize\bfseries}}
%%\renewcommand{\doxysection}[1]{\doxysubsection{##1}}
%%\renewcommand{\doxysubsection}[1]{\doxysubsubsection{##1}}
%%\renewcommand{\doxysubsubsection}[1]{\doxyparagraph{##1}}
%%\renewcommand{\doxyparagraph}[1]{\doxysubparagraph{##1}}
%%\renewcommand{\analzsection}[1]{\analzsubsection{##1}}
%%\renewcommand{\analzsubsection}[1]{\analzsubsubsection{##1}}
%%\renewcommand{\analzsubsubsection}[1]{\analzparagraph{##1}}
%%\renewcommand{\analzparagraph}[1]{\analzsubparagraph{##1}}
}{}
\makeatother
%%
@ -121,18 +121,18 @@
\hfuzz=15pt
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0pt}
\newcommand{\doxynormalparskip}{\setlength{\parskip}{0.2cm}}
\newcommand{\doxytocparskip}{\setlength{\parskip}{0.2cm}}
\newcommand{\doxygenemoji}[2]{%
\newcommand{\analznormalparskip}{\setlength{\parskip}{0.2cm}}
\newcommand{\analztocparskip}{\setlength{\parskip}{0.2cm}}
\newcommand{\analyzeemoji}[2]{%
\IfFileExists{../doc/#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{../doc/#2.png}}}{#1}}
\doxynormalparskip
\analznormalparskip
\hbadness=750
\tolerance=750
\makeatletter
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\makeatother
\IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_doxygen}}
\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
\IfFormatAtLeastTF{2023/05/01}{\usepackage[deeplevels]{etoc}}{\usepackage[deeplevels]{etoc_analyze}}
\etocsettocstyle{\analztocparskip}{\analznormalparskip}
\etocsetlevel{subsubsubsection}{4}
\etocsetlevel{subsubsubsubsection}{5}
\etocsetlevel{subsubsubsubsubsection}{6}
@ -143,7 +143,7 @@
\raggedbottom
\pagenumbering{alph}
\begin{titlepage}
\includegraphics[width=\textwidth]{doxygen_logo}
\includegraphics[width=\textwidth]{analyze_logo}
\begin{center}
Manual for version @VERSION@\\[2ex]
Written by Dimitri van Heesch\\[2ex]
@ -179,8 +179,8 @@ Written by Dimitri van Heesch\\[2ex]
\input{trouble}
\part{Reference Manual}
\input{features}
\input{doxygen_usage}
\input{doxywizard_usage}
\input{analyze_usage}
\input{analzwizard_usage}
\input{config}
\input{commands}
\input{htmlcmds}
@ -211,37 +211,37 @@ Written by Dimitri van Heesch\\[2ex]
\chapter{Member Groups Example}\label{memgrp_example}\hypertarget{memgrp_example}{}
\subinputfrom{examples/memgrp/latex/}{refman_doc}
\chapter{Style Examples}
\doxysection{After Block Example}\label{afterdoc_example}\hypertarget{afterdoc_example}{}
\begin{DoxygenSubAppendix}
\analzsection{After Block Example}\label{afterdoc_example}\hypertarget{afterdoc_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/afterdoc/latex/}{refman_doc}
\end{DoxygenSubAppendix}
\doxysection{QT Style Example}\label{qtstyle_example}\hypertarget{qtstyle_example}{}
\begin{DoxygenSubAppendix}
\end{analyzeSubAppendix}
\analzsection{QT Style Example}\label{qtstyle_example}\hypertarget{qtstyle_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/qtstyle/latex/}{refman_doc}
\end{DoxygenSubAppendix}
\doxysection{Javadoc Style Example}\label{jdstyle_example}\hypertarget{jdstyle_example}{}
\begin{DoxygenSubAppendix}
\end{analyzeSubAppendix}
\analzsection{Javadoc Style Example}\label{jdstyle_example}\hypertarget{jdstyle_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/jdstyle/latex/}{refman_doc}
\end{DoxygenSubAppendix}
\doxysection{Javadoc Banner Example}\label{javadoc_banner_example}\hypertarget{javadoc_banner_example}{}
\begin{DoxygenSubAppendix}
\end{analyzeSubAppendix}
\analzsection{Javadoc Banner Example}\label{javadoc_banner_example}\hypertarget{javadoc_banner_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/javadoc-banner/latex/}{refman_doc}
\end{DoxygenSubAppendix}
\end{analyzeSubAppendix}
\chapter{Structural Commands Example}\label{structcmd_example}\hypertarget{structcmd_example}{}
\subinputfrom{examples/structcmd/latex/}{refman_doc}
\chapter{Language Examples}
\doxysection{Python Docstring Example}\label{python_example}\hypertarget{python_example}{}
\begin{DoxygenSubAppendix}
\analzsection{Python Docstring Example}\label{python_example}\hypertarget{python_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/docstring/latex/}{refman_doc}
\end{DoxygenSubAppendix}
\doxysection{Python Example}\label{py_example}\hypertarget{py_example}{}
\begin{DoxygenSubAppendix}
\end{analyzeSubAppendix}
\analzsection{Python Example}\label{py_example}\hypertarget{py_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/pyexample/latex/}{refman_doc}
\end{DoxygenSubAppendix}
\doxysection{VHDL Example}\label{vhdl_example}\hypertarget{vhdl_example}{}
\begin{DoxygenSubAppendix}
\end{analyzeSubAppendix}
\analzsection{VHDL Example}\label{vhdl_example}\hypertarget{vhdl_example}{}
\begin{analyzeSubAppendix}
\subinputfrom{examples/mux/latex/}{refman_doc}
\end{DoxygenSubAppendix}
\end{analyzeSubAppendix}
\chapter{Class Example}\label{class_example}\hypertarget{class_example}{}
\subinputfrom{examples/class/latex/}{refman_doc}

View File

@ -1,4 +1,4 @@
/* The standard CSS for doxygen 1.8.12 */
/* The standard CSS for analyze 1.8.12 */
body, table, div, p, dl {
font: 400 14px/22px Roboto,sans-serif;

View File

@ -10,13 +10,13 @@
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* Documents produced by analyze are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
/*! \page doxygen_usage Doxygen usage
/*! \page analyze_usage analyze usage
Doxygen is a command line based utility. Calling \c doxygen with the
analyze is a command line based utility. Calling \c analyze with the
`--help` option at the command line will give you a brief description of the
usage of the program.
@ -29,33 +29,33 @@ need to follow these steps:
<li> You document your source code with
special documentation blocks (see section \ref specialblock).
<li> You generate a configuration file (see section \ref config) by
calling Doxygen with the \c -g option:
calling analyze with the \c -g option:
\verbatim
doxygen -g <config_file>
analyze -g <config_file>
\endverbatim
<li> You edit the configuration file so it matches your project.
In the configuration file you can specify the input files and
a lot of optional information.
<li> You let Doxygen generate the documentation, based on the settings in the
<li> You let analyze generate the documentation, based on the settings in the
configuration file:
\verbatim
doxygen <config_file>
analyze <config_file>
\endverbatim
</ol>
If you have a configuration file generated with an older version of
Doxygen, you can upgrade it to the current version by running Doxygen
analyze, you can upgrade it to the current version by running analyze
with the -u option.
\verbatim
doxygen -u <config_file>
analyze -u <config_file>
\endverbatim
All configuration settings in the original configuration file will be copied
to the new configuration file. Any new options will have their default value.
Note that comments that you may have added in the original configuration file
will be lost.
\section doxygen_finetune Fine-tuning the output
If you want to fine-tune the way the output looks, Doxygen allows you
\section analyze_finetune Fine-tuning the output
If you want to fine-tune the way the output looks, analyze allows you
generate default style sheet, header, and footer files that you can edit
afterwards:
<ul>
@ -65,19 +65,19 @@ afterwards:
sheet (see \ref cfg_html_stylesheet "HTML_STYLESHEET"), using the
following command:
\verbatim
doxygen -w html header.html footer.html stylesheet.css <config_file>
analyze -w html header.html footer.html stylesheet.css <config_file>
\endverbatim
The `config_file` is optional. When omitted Doxygen will search for
a file named `Doxyfile` and process that. When this is also not found it
The `config_file` is optional. When omitted analyze will search for
a file named `analzfile` and process that. When this is also not found it
will used the default settings.
<li>For \LaTeX output, you can generate the first and last part of \c refman.tex
(see \ref cfg_latex_header "LATEX_HEADER" and
\ref cfg_latex_footer "LATEX_FOOTER") and the style sheet included
by that header (normally <code>doxygen.sty</code>), using the following
by that header (normally <code>analyze.sty</code>), using the following
command:
\verbatim
doxygen -w latex header.tex footer.tex doxygen.sty <config_file>
analyze -w latex header.tex footer.tex analyze.sty <config_file>
\endverbatim
If you need non-default options (for instance to use extra \LaTeX packages)
you need to make a configuration file with those options set correctly and then specify
@ -87,13 +87,13 @@ output files).
<li>For RTF output, you can generate the default style sheet file (see
\ref cfg_rtf_stylesheet_file "RTF_STYLESHEET_FILE") using:
\verbatim
doxygen -w rtf rtfstyle.cfg
analyze -w rtf rtfstyle.cfg
\endverbatim
</ul>
\warning When using a custom header you are responsible
for the proper inclusion of any scripts and style sheets that Doxygen
for the proper inclusion of any scripts and style sheets that analyze
needs, which is dependent on the configuration options and may change
when upgrading to a new Doxygen release.
when upgrading to a new analyze release.
\note
<ul>
@ -102,17 +102,17 @@ doxygen -w rtf rtfstyle.cfg
used in combination with the \c -u option, to add or strip the
documentation from an existing configuration file.
To get a minimal configuration file use the \c -x or \-x_noenv option to
show only the differences from the default Doxygen configuration file.
show only the differences from the default analyze configuration file.
Please use the \c -s or \c -x or \c -x_noenv option if you send me a
configuration file as part of a bug report or post an issue on GitHub!
(see also: \ref bug_reports "How to report a bug")
<li> To make Doxygen read/write to standard input/output instead of from/to
<li> To make analyze read/write to standard input/output instead of from/to
a file, use \c - for the file name.
</ul>
\htmlonly
Go to the <a href="doxywizard_usage.html">next</a> section or return to the
Go to the <a href="analzwizard_usage.html">next</a> section or return to the
<a href="index.html">index</a>.
\endhtmlonly

17
doc/analzindexer.1 Normal file
View File

@ -0,0 +1,17 @@
.TH analzINDEXER "1" "@DATE@" "analzindexer @VERSION@" "User Commands"
.SH NAME
analzindexer \- creates a search index from raw search data
.SH SYNOPSIS
.B analzindexer
[\fI-o output_dir\fR] \fIsearchdata.xml \fR[\fIsearchdata2.xml\fR...]
.SH DESCRIPTION
Generates a search index called \fBanalzsearch.db\fR from one or more
search data files produced by analyze. Use
analzsearch.cgi as a CGI program to search the data indexed by analzindexer.
.SH OPTIONS
.TP
\fB\-o\fR <output_dir>
The directory where to write the analzsearch.db to.
If omitted the current directory is used.
.SH SEE ALSO
analyze(1), analzsearch(1), analzwizard(1).

11
doc/analzsearch.1 Normal file
View File

@ -0,0 +1,11 @@
.TH analzSEARCH "1" "@DATE@" "analzsearch.cgi @VERSION@" "User Commands"
.SH NAME
analzsearch.cgi \- search engine used for searching in analyze documentation.
.SH SYNOPSIS
.B analzsearch.cgi
.SH DESCRIPTION
CGI binary that is used by analyze generated HTML output to search for words.
The tool uses the search index called \fBanalzsearch.db\fR produced by
analzindexer.
.SH SEE ALSO
analyze(1), analzindexer(1), analzwizard(1).

13
doc/analzwizard.1 Normal file
View File

@ -0,0 +1,13 @@
.TH analzWIZARD "1" "@DATE@" "analzwizard @VERSION@" "User Commands"
.SH NAME
analzwizard \- a tool to configure and run analyze on your source files
.SH SYNOPSIS
.B analzwizard
.SH DESCRIPTION
analzwizard is an interactive frontend to the analyze tool to configure
and run analyze on your source files.
.PP
You can optionally pass the name of a configuration file as the first argument
to load it at startup.
.SH SEE ALSO
analyze(1)

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Some files were not shown because too many files have changed in this diff Show More