Fetching contributors…
Cannot retrieve contributors at this time
199 lines (151 sloc) 6.97 KB
# ===========================================================================
# Project: Abbot - SproutCore Build Tools
# Copyright: ©2009 Apple Inc.
# portions copyright @2006-2011 Strobe Inc.
# and contributors
# ===========================================================================
# Default buildfile loaded by all projects. Any options you put into your
# project buildfile will override these defaults.
# Import all build tasks
import *Dir.glob(File.join(File.dirname(current_path), 'buildtasks', '**', '*.rake'))
mode :all do
config :all,
# You will not usually need to override these configs, but the code
# assumes they will be present, so you must support them.
:build_prefix => 'tmp/build',
:staging_prefix => 'tmp/staging',
:cache_prefix => 'tmp/cache',
:url_prefix => 'static',
# Defines the directories that may contain targets, and maps them to a
# target type. When a project tries to find all of the targets in a
# project, it will use this map to find them.
:target_types => {
:apps => :app,
:clients => :app,
:pages => :app, # used for static pages with your site
:frameworks => :framework,
:themes => :theme,
:modules => :module
# Allows the target to have other targets nested inside of it. Override
# this in your target Buildfile to disable nesting.
:allow_nested_targets => true,
# The default preferred language. Assets will be pulled from this
# language unless otherwise specified.
:preferred_language => :en,
# Do not include fixtures in built project.
:load_fixtures => false,
# Do not include debug directory in built project
:load_debug => false,
# Do not load protocols in production mode
:load_protocols => false,
# Do not build tests.
:load_tests => false,
# Generate a combined javascript and stylesheet
:combine_javascript => true,
:combine_stylesheets => true,
# Use @charset "UTF-8" by default
:css_charset => "UTF-8",
# We do NOT want to pad sprites for debugging in production. This both increases filesize
# and makes the background of the sprite an embarrassing pink.
:pad_sprites_for_debugging => false,
# Optimizing sprites is good, but some apps that (appeared) to work before may break with
# this turned on. :pad_sprites_for_debugging makes the errors very visible, and that IS
# turned on in dev by default, so hopefully we should be able to make this default eventually.
# For reference, optimized sprites lay out sprites horizontally in addition to vertically.
:optimize_sprites => false,
# enable the hack that splits CSS into files with only ~4000 selectors for IE
:split_css_for_ie => true,
# by default all targets autobuild
:autobuild => true,
# by default minify javacript and stylesheets
:minify => true,
# use the default layout defined in SproutCore
:layout => 'sproutcore:lib/index.rhtml',
:test_layout => 'sproutcore:lib/index.rhtml',
# name a framework to use as the theme. will be included in required
# frameworks automatically if found.
:theme => 'sproutcore/ace',
# use default bootstrap framework
:bootstrap_inline => 'sproutcore/bootstrap:javascript',
# In design mode, load the designer
:design_required => ['sproutcore/designer'],
# packs all JavaScript and CSS into one file for reduced HTTP requests
:use_packed => true,
# generates output using sprites rather than data urls. This is default
# for all modes: it is faster to generate and browsers handle sprites better
# than data urls.
:use_sprites => true,
# If set to true, the specified framework, if loaded via the SC.loadBundle
# API, will be set up to be lazily instantiated when loaded.
:lazy_instantiation => false,
# if set to true then the index.html will build into the global language
# and target directory. This can interfere with deploying multiple builds
# at one but it is more convenient.
:overwrite_current => false,
# causes the default index.html file to add an overflow:hidden statement
# to the body tag. This is usually preferred since it makes drag and drop
# look nicer
:hide_body_overflow => true,
# A hash of additional MIME types, i.e. { '.m4a' => 'audio/mp4a-latm' }
:mime_types => {},
# Whether to generate an manifest.appcache file for HTML5 application caching
:html5_manifest => false,
# Which networks/URLs to allow if HTML5 application caching is turned on
:html5_manifest_networks => [],
# Default favicon. You can set your own or set it to nil to not use one.
# If one is set, the path will be evaluated via sc_static() in the
# index.rhtml file.
:favicon => 'favicon.ico',
# Whether to include touch icons in the index.html and other touch related
# properties
:touch_enabled => true,
# If touch graphics are enabled (see above), then these are the paths which
# will be used for the various graphics. The paths will be evaluated via
# sc_static() in the index.rhtml file.
# Note: If you specify both a precomposed icon and a "regular" icon, the
# precomposed version will be used.
:icon => 'sproutcore-logo.png',
:precomposed_icon => nil,
:startup_image_portrait => 'sproutcore-startup-portrait.png',
:startup_image_landscape => 'sproutcore-startup-landscape.png'
mode :debug do
config :all,
# in debug mode, load fixtures, debug, tests, and protocols
:load_fixtures => true,
:load_debug => true,
:load_tests => true,
:load_protocols => true,
# Do not combine javascript and stylesheet
:combine_javascript => false,
:combine_stylesheets => true,
:minify_javascript => false,
:minify_css => false,
:minify_html => false,
# In debug mode, we want to pad sprites for debugging so it is clear
# when the developer messes up their CSS.
:pad_sprites_for_debugging => true,
:build_prefix => 'tmp/debug/build',
:staging_prefix => 'tmp/debug/staging',
# debug settings for sc-server
:serve_exceptions => true,
:reload_project => true,
# In debug mode, we want to simply compute the build number each time
# to ensure the latest version is always loaded.
:build_number => :current,
# Instructs the URL builders to include a timestamp token at the end of
# urls. This option is only useful in development mode since browsers
# will respect the timestamp token as a way to unique the url. This
# should not be used in production as some proxies on the internet do
# not respect tokens.
:timestamp_urls => true,
# Do not pack javascripts in development mode, we want each file to
# load independently.
:use_packed => false,
# Turn off HTML5 application caching by default in debug mode
:html5_manifest => false