Metadata-Version: 2.1
Name: FMSHProjectGenerator
Version: 0.0.1a2
Summary: FMSH(Fudan Microelectronics) general-purpose MCU families IDE project generator.
Home-page: https://gitee.com/thunderbird1997/fmsh-project-generator
Author: Zean Huang
Author-email: huangzean@fmsh.com.cn
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
License-File: LICENSE.rst

FMSH Project Generator
#########################

FMSH Project Generator is a project generation tool for FuDan Microelectronics general-purposed MCU families, including FM33LC0XXX series,
FM33LG0XX series, and much more on their ways. 

FMSH Project Generator allows you to define a project using .YAML files. It can generate IDE project based on the .yaml record, and one should
never spend a lot of time again migrating their projects among these IDEs. it also featured a 'import project' function, which allows user to 
generate their YAML project files more conveniently from presenting IDE projects.

This project is inspired by open-sourced project `project_generator`_.

.. _project_generator: https://github.com/project-generator/project_generator

Installing
-----------

Install and update using `pip`_::

    $ pip install -U FMSHProjectGenerator

.. _pip: https://pip.pypa.io/en/stable/quickstart/

How to use
-------------

User should first create an instance of ProjectGenerator before using any functions::

 from FMSHProjectGenerator import ProjectGenerator

 proj_gen = ProjectGenerator()

Generate IDE Project
^^^^^^^^^^^^^^^^^^^^^^^


Following code example demonstrated how to use FMSHProjectGenerator to generate IDE project (Keil5 project for this
example, wich will generated in *./my_project_path/MDK-ARM*)::

 from FMSHProjectGenerator.generators import Keil5Generator
 from FMSHProjectGenerator import ProjectGenerator

 # create an instance
 proj_gen = ProjectGenerator()

 # generate KEIL5 project using input YAML
 proj_gen.generate(dest_prj_path='./my_project_path',
                    generator=Keil5Generator(),
               	    input_file='./my_project_path/project.yaml')

Import IDE Project
^^^^^^^^^^^^^^^^^^^^^

Following code example demonstrated how to use FMSHProjectGenerator to import IDE project (Keil5 project for this example,
which will generated the project YAML file as *./my_project_path/project.yaml*)::

 from FMSHProjectGenerator.converters import Keil5Converter
 from FMSHProjectGenerator import ProjectGenerator

 # create an instance
 proj_gen = ProjectGenerator()

 # convert KEIL5 project(will automatically search required project files)
 proj_gen.convert(src_prj_path='./my_project_path',
                    converter=Keil5Converter(),
               	    output_file='./my_project_path/project.yaml')


Import and Generate IDE Project
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

After import or generate an IDE project, ProjectGenerator will always retain the latest project information. So it's easy
to import from one IDE Project and generate other IDEs' Project::

 from FMSHProjectGenerator.converters import Keil5Converter
  from FMSHProjectGenerator.generators import IAR832Generator
 from FMSHProjectGenerator import ProjectGenerator

 # create an instance
 proj_gen = ProjectGenerator()

 # convert KEIL5 project
 proj_gen.convert(src_prj_path='./my_project_path',
                    converter=Keil5Converter())

 # generate IAR 8.32 project using retained info
 proj_gen.generate(dest_prj_path='./my_project_path',
                    generator=IAR832Generator())

User should notice that the 'generate' and 'convert' function can both omit the 'input/output_file' option, which tells
the Project Generator to generate/import IDE Project using/updating retained project information only.

Status of the project
------------------------
The project is now in alpha phase. See the TODO list for further information.

TODO List
^^^^^^^^^^^^

Functions
............

- Purposing...

IDE Support
............

- Keil5 5.27 and after
- Keil5 before 5.27
- IAR 8.32
- IAR 8.x
- IAR 7.x
- Eclipse GCC
- ...

MCU Support
............

- FM33LC0 family
- FM33LG0 family
- ...



