0.01
No commit activity in last 3 years
No release in over 3 years
Rake tasks for compiling C projects.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.5.4
~> 0.7.0
~> 1.3.15
~> 2.5.0
~> 4.2.1
~> 2.6.1
~> 4.2.9
~> 0.4.6
~> 0.0.6
~> 0.9.4
~> 0.9.3
~> 1.3.7
~> 0.7
~> 3.0.0
~> 3.5.4
~> 0.23.0
~> 0.8.7.4

Runtime

~> 0.1.4
>= 0
 Project Readme

Paper House

Gem Version Build Status Code Climate Coverage Status Dependency Status Inline docs

paper houses - 3d woodcut prints

Paper House is a ruby gem to easily build C projects using Rake. It supports the following build targets:

Features Overview

  • Provides a simple yet a powerful syntax to build above mentioned targets using predefined Rake tasks.
  • Pure Ruby. No additional dependency on other external tools (makedepend etc.) to resolve file dependencies.
  • Multi-Platform. Runs on both Linux and MacOSX, and supports all major version of Ruby (1.9.3, 2.0.0, 2.1.0).

Example

Its usage is dead simple: to build an executable from all the *.c and *.h files in the current directory, just add the following lines to your Rakefile.

require 'paper_house'

PaperHouse::ExecutableTask.new :hello

This defines a new task hello, and rake hello will automatically analyze all file dependencies of the source files, compile them into an executable named hello.

If you wish to customize the build process more, please set the following options defined in PaperHouse::ExecutableTask:

PaperHouse::ExecutableTask.new :hello do |task|
  task.executable_name = 'hello_world'
  task.target_directory = 'objects'
  task.cc = 'llvm-gcc'
  task.includes = 'includes'
  task.sources = 'sources'
  task.cflags = %w(-Werror -Wall -Wextra)
  task.ldflags = '-L/some/path'
  task.library_dependencies = 'm'
end

You can find more examples in the examples/ directory.

Installation

The simplest way to install Paper House is to use Bundler.

Add Paper House to your Gemfile:

gem 'paper_house'

and install it by running Bundler:

$ bundle

Documents

Author

Yasuhito Takamiya (@yasuhito)

Contributors

https://github.com/trema/paper-house/contributors

Alternatives

License

Trema is released under the GNU General Public License version 3.0: