Skip to content

Latest commit

 

History

History
93 lines (68 loc) · 2.75 KB

File metadata and controls

93 lines (68 loc) · 2.75 KB

FIDO

Fido is a minimalistic, IDE agnostic, C/C++ project generator supporting various toolchains and build systems.

Installation


    python setup.py build
    sudo python setup.py install

or

    bash install.bash

Usage

Usage: fido <action> [template] (path)

Available actions:

                   help : Print the usage menu.
                 create : Create a project with the specified template, requires a template and a path.
                    add : Add one or multiple files to the proper folders by their extensions.
                  build : Build the current project.
                  clean : Clean built files for the current project.
                rebuild : Clean + Build.
                  reset : Available only for certain templates, remote every build generated file.

Available templates:

         android-make-c : Create a native Android C project based on Makefile.
       android-make-cpp : Create a native Android C++ project based on Makefile.
    android-ndk-build-c : Create a native Android C project based on the ndk-build utility.
                cmake-c : Create a C project based on CMake.
              cmake-cpp : Create a C++ project based on CMake.
                 make-c : Create a C project based on Makefile.
               make-cpp : Create a C++ project based on Makefile.
                 rospkg : Create a simple ros package.

Example

    $ fido create make-c sample-project

    Creating project 'sample-project' with template 'make-c' ...

    $ cd sample-project
    $ fido add io.h io.c networking.h networking.c

    Creating 'include/io.h' ...
    Creating 'src/io.c' ...
    Creating 'include/networking.h' ...
    Creating 'src/networking.c' ...

    $ fido build
    Building ...

    $ ./sample-project

    Hello World from sample-project !

ROS Example

   $ fido create rospkg simple_node

   Creating project 'simple_node' with template 'rospkg' ...

The rospkg template follows the ros package folder structure convention. It uses the sweet Package Manifest Format Two template for package.xml file, which avoids the redundancy of ros package dependecies declaration.

  simple_node
  ├── CMakeLists.txt
  ├── include
  │   └── simple_node
  │       └── main.hpp
  ├── package.xml
  └── src
      └── main.cpp

Video Example

asciicast

License

This project is copyleft of Simone Margaritelli and released under the GPL 3 license.