Giter Site home page Giter Site logo

1434cga / cgadoxygen Goto Github PK

View Code? Open in Web Editor NEW
10.0 4.0 4.0 18.74 MB

Doxygen PERLMOD to Markdown converter(v0.9) to support ASPICE (Automotive SPICE)

License: GNU General Public License v3.0

Perl 32.42% Shell 9.06% Makefile 1.67% Python 0.63% Prolog 34.25% CSS 7.05% C++ 14.31% Dockerfile 0.61%
aspice markdown doxygen perlmod plantuml

cgadoxygen's Introduction

1. About CGADOXYGEN
1.1. Purpose
1.2. Backgrounds
2. Environment of Development
2.1. Prerequisition
2.2. docker to make an environment easily
3. How to Run
3.1. make a documents automatically
3.1.1. If you have unsolved problems in installing tools
3.2. example
3.3. clean
4. Docker
4.1. How to use docker in detail
5. What is the result

    ___   ___    __      ____   _____  _  _  _  _   ___  ____  _  _
   / __) / __)  /__\    (  _ \ (  _  )( \/ )( \/ ) / __)( ___)( \( )
  ( (__ ( (_-. /(__)\    )(_) ) )(_)(  )  (  \  / ( (_-. )__)  )  (
   \___) \___/(__)(__)  (____/ (_____)(_/\_) (__)  \___/(____)(_)\_)

1. About CGADOXYGEN

  • Doxygen PERLMOD to Markdown & Word & Excel converter for supporting ASPICE
    • It is helpful to make a documents from source code and your doxygen comments.
    • It is helper of doxygen.

1.1. Purpose

  • Reduce the tedious jobs (LLD : Low level Design documents). When we make a document for customer , we should make a markdown & word & excel documents with detailed class information.
  • and I hop it is helpful to save your time for your life.
    • Some customer Wants
      • want detailed documents like LLD (Low Level Design).
      • LLD should include the detailed information for Class and your source code.
    • Deliverables
      • upport word and xlsx file for detailed documents.

1.2. Backgrounds

  • Doxygen comments is the best method as a good programmer
  • Always synchronize source and documents
  • Doxygen gives some warning to you when your comments mismatch with your code.
    • it is helpful for us to make a better source and comments (documents)
  • I think that doxygen is a de facto standard in open source.
  • It gives improving your international skills.

2. Environment of Development

2.1. Prerequisition

  • ubuntu package : python-dev python-pip python-setuptools javacc java-common pandoc doxygen vim python3-pip python3-setuptools graphviz
  • perl module ( Excel::Writer::XLSX )
    • cpan Excel::Writer::XLSX
  • hpp2plantuml
  • markdown-pp

2.2. docker to make an environment easily

  • docker pull cheoljoo/ubuntu16:cgadoxygen

3. How to Run

  • How to make a document (LLD & SDD) automatically

3.1. make a documents automatically

  • (optional) if you have many subdirectories , you try to run copy.sh at first.
    • sh copy.sh [SOURCE DIRECTORY] [DESTINATION STORAGE Name]
      sh copy.sh ../../OUTPUT/stc  ./src
  • sh run.sh { lists of directories including your codes (cpp and h) }
    • if you run copy.sh (destination : ./src)
      $ sh run.sh ./src
    • ex) if you have sources in ../.. ../../inc /home/user/src , then
      $ sh run.sh ../..  ../../inc  /home/user/src
    • directory list is not recursive
      • you can verify in ./CGADoxygen/build_doxygen/src as soft-link files.
  • OUTPUT will be generated in "[git repository directory]/build_perlmod/OUTPUT"
    • LLD (Low Level Design) Document : it is full document
    • NECE (Necessary) LLD : it is necessary document. I remove the doc when they do not have doxygen comments.
    • SEQU (Sequential) LLD : it solves the detailed information each function sequentially. it will support multiple plantuml and note and details.
OUTPUT HTML Markdown
Low Level Design (LLD) LLD.css.html LLD.md
NECE (Necessary) LLD nece.css.html nece.html.md
SEQU (Sequential) LLD sequ.css.html sequ.html.md

3.1.1. If you have unsolved problems in installing tools

3.2. example

    $ sh run.sh ./example/A  ./exampleC   ./exampleD/Source
    or 
    $ sh run.sh example/B

3.3. clean

    $ sh run.sh clean

4. Docker

4.1. How to use docker in detail

  • docker image pull

    • $ docker pull cheoljoo/ubuntu16:cgadoxygen
    • $ docker run -it -v /home/username/doxygen:/docker --name cga1 cheoljoo/ubuntu16:cgadoxygen /bin/bash
      • /home/username/doxygen : is your host directory to use for your code
      • /docker : is directory in docker shell
    • $ docker ps -all
      CONTAINER ID        IMAGE                          COMMAND     CREATED             STATUS                   PORTS               NAMES
      74027e97f2b8        cheoljoo/ubuntu16:cgadoxygen   "/bin/bash" 12 days ago         Exited (1) 12 days ago                       cga1
      
    • $ docker start cga1
    • $ docker attach cga1
  • docker shell

    • cd /docker
      • you can see files in host (/homeusername/doxygen)
    • cd /tmp/CGADoxygen
      • copy your source_code in /tmp/CGADoxygen/YourName
      • sh run.sh YourName
      • you can find the result (SDD.html) in /tmp/CGADoxygen/build_perlmod/
  • How to make Docker Environment in detail - NEW

5. What is the result

  • Architecture
    • Architecture Component
  • Deliverables (SDD Component)
    • HLD Documents (HLD.md HLD.docx) : High Level Design from HLD.plantuml.md
      • HLD.docx SDD Document
    • LLD Documents (LLD.md LLD.docx LLD.xlsx) : Low Level Design generated from doxygen comments automatically
      • LLD.docx SDD Document
      • LLD.xlsx LLD Excel
    • SDD Documents (SDD.md SDD.docx) : It is final result combined with HLD and LLD
      • SDD.docx SDD Document
  • screenshot

working note

cgadoxygen's People

Contributors

1434cga avatar cheoljoo avatar younghho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cgadoxygen's Issues

Some target-specific paths are used

I found a target-specific path from the warning log:

warning: source /home/cheoljoo/code/common_telltale/GP/Apps/Src/MgrTelltale/CGADOXYGEN/build_doxygen is not a readable file or directory... skipping.

They should be removed (if not needed) or replaced to the correct path.

Stuck on installing hpp2plantuml

I am stuck on the very 1st step. When I ran run.sh, I got the following error:

Do install hpp2plantuml
Method-1. run setting_env_user_mode.sh in current directory
Method-2. Install by  yourself  from URL)   https://github.com/thibaultmarin/hpp2plantuml

so I did Method-1. Then, I got another error:

hpp2plantuml
#### Checking < hpp2plantuml > Package ####
#### Install hpp2plantuml package ####
Cloning into 'hpp2plantuml'...
remote: Enumerating objects: 295, done.
remote: Total 295 (delta 0), reused 0 (delta 0), pack-reused 295
Receiving objects: 100% (295/295), 129.42 KiB | 0 bytes/s, done.
Resolving deltas: 100% (148/148), done.
Checking connectivity... done.
Traceback (most recent call last):
  File "setup.py", line 7, in <module>
    from setuptools import setup, find_packages, Command
ImportError: No module named 'setuptools'

To resolve this, I installed setuptools by pip:

pip install setuptools --user

but got the error above again.

(Actually, I got another error first (fatal: destination path 'hpp2plantuml' already exists and is not an empty directory.) It was resolved after I removed ./tmp directory. You had better fix setting_env_user_mode.sh to remove ./tmp before cloning http2plantuml)

How can I resolve this dependency issue?

  • IMHO, describing prerequisites at README.md (or INSTALL.md) is very useful.

doxygen : Can I remove doxygen document with @cond?

EXTRACT_ALL = NO
HIDE_NODOC_CLASS = YES

Verify whether it makes doxygen documents or not when we use @cond
210 /**
211 * @cond TTT
212 * test
213 * @endcond
214 */

result : make doxygen documents without any comments in /** /
So we should remove /
* */ not to show doxygen documents

Could we support to remove the doxygen documents when contents is empty?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.