GithubHelp home page GithubHelp logo

juprgn / ceedling Goto Github PK

View Code? Open in Web Editor NEW

This project forked from throwtheswitch/ceedling

0.0 0.0 0.0 6.31 MB

Ruby/Rake-based build and test system for C projects

Home Page: http://throwtheswitch.org

License: Other

Ruby 97.85% C 0.76% HTML 1.34% Shell 0.01% Batchfile 0.01% C++ 0.02%

ceedling's Introduction

Ceedling - Build/Test System for C Based on Ruby/Rake

Ceedling Build Status

Ceedling is a build system for C projects that is something of an extension around Ruby’s Rake (make-ish) build system. Ceedling also makes TDD (Test-Driven Development) in C a breeze by integrating CMock, Unity, and CException -- three other awesome open-source projects you can’t live without if you're creating awesomeness in the C language. Ceedling is also extensible with a handy plugin mechanism.

Usage Documentation

Documentation and license info exists in the repo in docs/

Getting Started

First make sure Ruby is installed on your system (if it's not already). Then, from a command prompt:

> gem install ceedling

(Alternate Installation for Those Planning to Be Ceedling Developers)

> git clone --recursive https://github.com/throwtheswitch/ceedling.git
> cd ceedling
> bundle install # Ensures you have all RubyGems needed
> git submodule update --init --recursive # Updates all submodules
> bundle exec rake # Run all Ceedling library tests

If bundler isn't installed on your system or you run into problems, you might have to install it:

> sudo gem install bundler

If you run into trouble running bundler and get messages like this can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException), you may need to install a different version of bundler. For this please reference the version in the Gemfile.lock. An example based on the current Gemfile.lock is as followed:

> sudo gem install bundler -v 1.16.2

Creating A Project

Creating a project with Ceedling is easy. Simply tell ceedling the name of the project, and it will create a subdirectory called that name and fill it with a default directory structure and configuration.

ceedling new YourNewProjectName

You can add files to your src and test directories and they will instantly become part of your test build. Need a different structure? You can start to tweak the project.yml file immediately with your new path or tool requirements.

You can upgrade to the latest version of Ceedling at any time, automatically gaining access to the packaged Unity and CMock that come with it.

gem update ceedling

Documentation

Are you just getting started with Ceedling? Maybe you'd like your project to be installed with some of its handy documentation? No problem! You can do this when you create a new project.

ceedling new --docs MyAwesomeProject

Bonding Your Tools And Project

Ceedling can deploy all of its guts into the project as well. This allows it to be used without having to worry about external dependencies. You don't have to worry about Ceedling changing for this particular project just because you updated your gems... no need to worry about changes in Unity or CMock breaking your build in the future. If you'd like to use Ceedling this way, tell it you want a local copy when you create your project:

ceedling new --local YourNewProjectName

This will install all of Unity, CMock, and Ceedling into a new folder named vendor inside your project YourNewProjectName. It will still create the simple directory structure for you with src and test folders.

SCORE!

If you want to force a locally installed version of Ceedling to upgrade to match your latest gem later, it's easy! Just issue the following command:

ceedling upgrade --local YourNewProjectName

Just like the new command, it's called from the parent directory of your project.

Are you afraid of losing all your local changes when this happens? You can keep Ceedling from updating your project file by issuing no_configs.

ceedling upgrade --local --no_configs TheProject

Git Integration

Are you using Git? You might want to automatically have Ceedling create a gitignore file for you by adding --gitignore to your new call.

HAPPY TESTING!

ceedling's People

Contributors

a-schlicht avatar art-of-dom avatar aschlicht avatar austinbes avatar barneywilliams avatar canton7 avatar carlolars avatar cezarygapinski avatar dpostorivo avatar felipebalbi avatar germouse12 avatar jetm avatar jvranish avatar korigod avatar laurensmiers avatar mchernosky avatar mikedlowis avatar mkarlesky avatar mvandervoord avatar nevis123 avatar pjunger avatar rasup avatar rmja avatar serjche avatar sw17ch avatar swillard avatar tbates-redarc avatar tobyjwebb avatar yanma avatar zanedp avatar

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.